{"version":3,"mappings":"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;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,QAAI,OAAO;AAAA,MACT,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AACA,QAAI,WAAW;AAAA,MACb,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL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,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG,OAAO;AAAA,QAChC,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG,OAAO;AAAA,QAChC,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG,OAAO;AAAA,QAChC,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG,OAAO;AAAA,QAChC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAA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AAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;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AA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAClC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,MACpC;AAAA,MACD,aAAa;AAAA,QACX,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,KAAK;AAAA,QACjC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,KAAK;AAAA,QAC3B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAC/B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,KAAK;AAAA,QACvC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,KAAK;AAAA,QAC3C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,MAAM,SAAS,GAAG,GAAG,KAAK;AAAA,QAClC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACtC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACtC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACtC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACtC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,KAAK;AAAA,QACnC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC9C,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,QAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,QAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,QAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACvC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;AAAA,QAC/B,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,SAAS,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC/B,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,CAAC;AAAA,MACpC;AAAA,MACD,mBAAmB;AAAA,QACjB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,SAAS,MAAM,SAAS,GAAG,OAAO;AAAA,QACzC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,MAAM,SAAS,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,UAAU,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,OAAO,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,OAAO;AAAA,QACzC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,OAAO,GAAG,OAAO;AAAA,QACrC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,GAAG;AAAA,QACzC,OAAO,CAAC,SAAS,SAAS,OAAO,GAAG,OAAO;AAAA,QAC3C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,QAAQ,GAAG,OAAO;AAAA,QAC5C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,OAAO,GAAG,OAAO;AAAA,QAC3C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,OAAO,GAAG,OAAO;AAAA,QAC3C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,MAAM,SAAS,SAAS,GAAG,OAAO;AAAA,QAC1C,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,KAAK;AAAA,QAC3C,OAAO,CAAC,GAAG,SAAS,OAAO,GAAG,OAAO;AAAA,QACrC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,OAAO,GAAG,OAAO;AAAA,QACrC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,KAAK;AAAA,QAC3C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,MACzC;AAAA,MACD,eAAe;AAAA,QACb,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,SAAS,MAAM,SAAS,GAAG,OAAO;AAAA,QACzC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,MAAM,SAAS,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,SAAS,SAAS,QAAQ,GAAG,OAAO;AAAA,QAC3C,MAAM,CAAC,UAAU,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,OAAO;AAAA,QACzC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACpC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,IAAI;AAAA,QAC1C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACtC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACpC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,IAAI;AAAA,QAC1C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACpC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,MAAM,SAAS,SAAS,GAAG,OAAO;AAAA,QAC1C,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,MACnC;AAAA,MACD,gBAAgB;AAAA,QACd,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG;AAAA,QAC/B,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG;AAAA,QACzB,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,MAAM,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,OAAO,GAAG,IAAI;AAAA,QACjC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,GAAG;AAAA,QACzC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,MAAM,SAAS,GAAG,GAAG,GAAG;AAAA,QAChC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,OAAO,GAAG,GAAG,KAAK;AAAA,QAC9B,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC9C,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,CAAG;AAAA,QAChC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,CAAG;AAAA,QAChC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,SAAS,SAAS,MAAM;AAAA,QAC7C,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG;AAAA,QACjC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,KAAK,KAAK,GAAG,GAAG,OAAO;AAAA,QAChC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,CAAG;AAAA,QAC9B,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC9C,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,QAAQ,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,QAAQ,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,CAAG;AAAA,QAClC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,CAAG;AAAA,QAClC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,OAAO,MAAM,GAAG,GAAG,KAAK;AAAA,QACjC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,MAAO,OAAO,GAAG,GAAG,GAAG;AAAA,QAChC,QAAQ,CAAC,MAAM,OAAO,GAAG,GAAG,KAAK;AAAA,QACjC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,QAAQ,CAAC,MAAM,OAAO,GAAG,GAAG,KAAK;AAAA,QACjC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,CAAG;AAAA,QACrC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,QAAQ,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,UAAU,SAAS,GAAG,GAAG,GAAG;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;AAAA,QAC/B,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACxC,SAAS,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,OAAO,OAAO,GAAG,GAAG,KAAK;AAAA,QACnC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAChC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,CAAC;AAAA,MACpC;AAAA,MACD,mBAAmB;AAAA,QACjB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,QAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM;AAAA,QAC5C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAChC,OAAO,CAAC,SAAS,SAAS,QAAQ,GAAG,OAAO;AAAA,QAC5C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,OAAQ,GAAG,OAAO;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,GAAG;AAAA,QACzC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACrC,QAAQ,CAAC,SAAS,SAAS,GAAG,GAAG,MAAM;AAAA,QACvC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACnC,SAAS,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,MAC1C;AAAA,MACD,eAAe;AAAA,QACb,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,IAAI;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,MAAM;AAAA,QAC3C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,QAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,MAAM;AAAA,QAC3C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC5C,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,MAAM,SAAS,OAAO;AAAA,QAC1C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,MAAM;AAAA,QAC5C,OAAO,CAAC,GAAG,SAAS,OAAQ,SAAS,MAAM;AAAA,QAC3C,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,MAAM;AAAA,QAClD,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,MAAM;AAAA,QAClD,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,QAAQ,SAAS,OAAO;AAAA,QAC5C,OAAO,CAAC,GAAG,SAAS,SAAS,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,QACnD,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,QAC9C,QAAQ,CAAC,GAAG,SAAS,GAAG,SAAS,MAAM;AAAA,QACvC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,OAAO;AAAA,QACzC,SAAS,CAAC,SAAS,SAAS,GAAG,SAAS,OAAO;AAAA,MAChD;AAAA,MACD,kBAAkB;AAAA,QAChB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI;AAAA,QAChC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI;AAAA,QAC1B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC7B,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,IAAI;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,IAAI;AAAA,QAC1C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,GAAG;AAAA,QACzC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,MAAM,SAAS,GAAG,GAAG,IAAI;AAAA,QACjC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,IAAI;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,IAAI;AAAA,QACrC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,MACnC;AAAA,MACD,oBAAoB;AAAA,QAClB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,QAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,SAAS,MAAM,SAAS,GAAG,GAAG;AAAA,QACrC,MAAM,CAAC,SAAS,MAAM,SAAS,GAAG,OAAO;AAAA,QACzC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,MAAM,SAAS,GAAG,GAAG;AAAA,QAC/B,MAAM,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC5C,MAAM,CAAC,OAAO,SAAS,GAAG,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QAClC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,OAAO,SAAS,SAAS,GAAG,OAAO;AAAA,QAC1C,MAAM,CAAC,OAAO,MAAM,SAAS,GAAG,OAAO;AAAA,QACvC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,OAAO,SAAS,SAAS,GAAG,OAAO;AAAA,QAC1C,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,MAAM;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,QAAQ,GAAG,GAAG;AAAA,QACjC,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,QAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,GAAG;AAAA,QACzC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,SAAS,SAAS,QAAQ,GAAG,OAAO;AAAA,QAC5C,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,QAAQ,GAAG,OAAO;AAAA,QACtC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;AAAA,QACtC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,QAAQ,GAAG,GAAG;AAAA,QAClC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACnC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACxC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,QAAS,GAAG,GAAG;AAAA,MACrC;AAAA,MACD,qBAAqB;AAAA,QACnB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG;AAAA,QAC/B,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG;AAAA,QACzB,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,OAAO,SAAS,GAAG,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,OAAO,SAAS,GAAG,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,OAAO,MAAM,GAAG,GAAG,OAAO;AAAA,QACjC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,OAAO,SAAS,GAAG,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,MAAM;AAAA,QAC/B,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACtC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,OAAO,GAAG,OAAO;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC5B,MAAM,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAChC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,GAAG;AAAA,QACzC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,SAAS,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,SAAS,GAAG,OAAO;AAAA,QAC7C,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,MAAM,SAAS,GAAG,GAAG,GAAG;AAAA,QAChC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,OAAO;AAAA,QACvC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC7B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,GAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,SAAS,GAAG,CAAG;AAAA,QACpC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,QAC9B,QAAQ,CAAC,GAAG,SAAS,GAAG,GAAG,GAAG;AAAA,MAC/B;AAAA,MACD,kBAAkB;AAAA,QAChB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,QAAQ,GAAG,OAAO;AAAA,QACjC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,SAAS,KAAK,SAAS,GAAG,OAAO;AAAA,QACxC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,QAAQ,GAAG,MAAM;AAAA,QAChC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,IAAI;AAAA,QAC/B,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,OAAO;AAAA,QAClC,MAAM,CAAC,GAAG,KAAK,QAAQ,GAAG,OAAO;AAAA,QACjC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,MAAM;AAAA,QACjC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,MACzB;AAAA,MACD,iBAAiB;AAAA,QACf,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACpC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACpC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,OAAO;AAAA,QACjC,QAAQ,CAAC,QAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,CAAG;AAAA,QACjC,QAAQ,CAAC,SAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,SAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,SAAS,OAAO,SAAS,GAAG,OAAO;AAAA,QAC5C,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG,OAAO;AAAA,QAC1C,QAAQ,CAAC,OAAO,OAAO,SAAS,GAAG,OAAO;AAAA,QAC1C,QAAQ,CAAC,SAAS,OAAO,SAAS,GAAG,OAAO;AAAA,QAC5C,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,QAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACvC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,MACvC;AAAA,MACD,iBAAiB;AAAA,QACf,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACpC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACpC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,CAAG;AAAA,QAC1B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,CAAG;AAAA,QAC1B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,CAAG;AAAA,QAC1B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,CAAG;AAAA,QAC1B,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,CAAG;AAAA,QACjC,QAAQ,CAAC,SAAS,MAAM,SAAS,GAAG,OAAO;AAAA,QAC3C,QAAQ,CAAC,OAAO,MAAM,SAAS,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,OAAO,MAAM,SAAS,GAAG,OAAO;AAAA,QACzC,QAAQ,CAAC,SAAS,MAAM,SAAS,GAAG,OAAO;AAAA,QAC3C,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,MACvC;AAAA,MACD,iBAAiB;AAAA,QACf,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI;AAAA,QACjC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI;AAAA,QACjC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;AAAA,QAC9B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;AAAA,QAC9B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;AAAA,QAC9B,OAAO,CAAC,GAAG,MAAM,GAAG,GAAG,OAAO;AAAA,QAC9B,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,CAAG;AAAA,QACjC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI;AAAA,QACnC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI;AAAA,MACpC;AAAA,MACD,iBAAiB;AAAA,QACf,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACvB,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,MAAM,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACnC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACpC,OAAO,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACpC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;AAAA,QACxB,OAAO,CAAC,GAAG,OAAO,GAAG,GAAG,MAAM;AAAA,QAC9B,OAAO,CAAC,GAAG,OAAO,GAAG,GAAG,MAAM;AAAA,QAC9B,OAAO,CAAC,GAAG,OAAO,GAAG,GAAG,MAAM;AAAA,QAC9B,OAAO,CAAC,GAAG,OAAO,GAAG,GAAG,MAAM;AAAA,QAC9B,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,CAAG;AAAA,QACjC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,KAAK;AAAA,QACpC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,KAAK;AAAA,QACpC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,KAAK;AAAA,QACpC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,KAAK;AAAA,QAChC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,KAAK;AAAA,QACpC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,QAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,QAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACvC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACtC,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,GAAG,KAAK,GAAG,GAAG,OAAO;AAAA,QAC9B,QAAQ,CAAC,MAAO,KAAK,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACrC,QAAQ,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO;AAAA,QAClC,QAAQ,CAAC,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAS,MAAM,GAAG,GAAG,OAAO;AAAA,QACtC,SAAS,CAAC,SAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACxC,SAAS,CAAC,SAAU,OAAO,GAAG,GAAG,OAAO;AAAA,QACxC,SAAS,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI;AAAA,QAC7B,SAAS,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI;AAAA,QAC7B,SAAS,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI;AAAA,QAC7B,SAAS,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI;AAAA,MAC9B;AAAA,MACD,sBAAsB;AAAA,QACpB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK;AAAA,QACxB,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,MAAM,CAAC,SAAS,OAAO,GAAG,GAAG,KAAK;AAAA,QAClC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,MAAM,CAAC,GAAG,OAAO,GAAG,GAAG,KAAK;AAAA,QAC5B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,MAAM,CAAC,UAAU,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACpC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC9B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK;AAAA,QACzB,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,SAAS,SAAS,GAAG,GAAG,KAAK;AAAA,QACrC,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAAK;AAAA,QAC/B,OAAO,CAAC,GAAG,SAAS,GAAG,GAAG,KAA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A,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,MACV,KAAU;AAAA,IACZ,CAAC;AAID,QAAI,iBAAiB;AAAA,MACnB,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,QACR,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,MACT;AAAA,MACD,KAAK;AAAA,QACH,QAAQ;AAAA,MACT;AAAA,IACH;AACA,QAAI,iBAAiB;AAAA,MACnB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AA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CA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,UACD,wBAAwB;AAAA;AAAA,YAEtB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,UACD,qBAAqB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA,UACD,gBAAgB;AAAA,YACd;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD;AAAA;AAAA,QAEF;AAED,eAAO,KAAK,QAAQ,EAAE,QAAQ,SAAU,GAAG;AACzC,UAAAwQ,QAAO,CAAC,EAAE,UAAU,iBAAiB,SAAS,CAAC,CAAC;AAAA,QACtD,CAAK;AACD,YAAI,cAAc;AAAA;AAAA,UAEhB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UA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ACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AACD,YAAI,mBAAmB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UAC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","names":["set","key","extend","i","hasOwnProperty","hasOwn","isArray","isDate","isFunction","isString","isObject","isPromise","isPlainObject","_","c","hyphenate","s","n","name","style","a","v","_a","warn","l","effect","scope","trigger","computed","key2","get","isReadonly","isShallow","wrap","has","add","proto","forEach","raw","self","r","warn$1","_b","open","close","keys","values","p","id","seen","diff","count","map","app","version","validator","isValid","isModelListener","number","trim","raw2","emit","render","render2","root","index","path","dir","enterCbKey","state","callHook","hooks","remove","register","h","mergeOptions","to","from","createApp","required","types","valid","isBoolean","normalizeSlot","ref","supported","perf","startTag","endTag","patch","u","nextChild","j","prevChild","remove2","isFlushing","text","content","setup","compile","delimiters","is","node","resolve","styles","d","clone","checked","assign","option","now","list","noop","decode","parseQuery","location","stringifyQuery","position","NavigationType","NavigationDirection","offset","search","replace","history","push","go","NavigationFailureType","token","optional","re","parse","stringify","tokenizePath","buffer","tokens","parser","routes","aliases","alias","defaults","value","handlers","router","link","inner","addDevtools","api","route","filter","matchedRoute","href","failure","assert","store","module","getNestedState","getters","Module","addChild","ModuleCollection","update","assertOptions","Store","dispatch","commit","options","sub","mutations","actions","namespaced","toString","isUndefined","isNumber","prototype","merge","descriptors","toArray","replacer","delimiter","size","stack","visit","code","utils","toJSON","encode","URLSearchParams","FormData","Blob","platform","isFormData","isFileList","normalizeValue","format","AxiosHeaders","transform","domain","isURLSameOrigin","min","head","handleError","reason","adapters","validators","Axios","create","CancelToken","all","HttpStatusCode","define_process_env_default","define_import_meta_env_default","user","s2a","days","months","D","q","tt","ee","sign","rr","dd","x","oa","dt","hr","bt","f","H","S","CRC32","table","T","Tc","exports","R","dirname","parse_zip","filename","write_zip","cfb","file","flen","L","find","a2s","_deflateRaw","row","mt","e","wt","split_regex","def","str_match_xml_ns","str_remove_xml_ns_g","unescapexml","xlml_fixstr","htmldecode","cpp","cell","color","rel","xml","pad","pr","rt","ft","hidden","strs","body","comment","env","lo","v2","parse_rs","html","pt","fill","parse_sty_xml","scheme","flow","rc_to_a1","a1_to_rc","tab","parse_ws_xml_data","cells","_r","ai","cap","N","codes","xmlns","opening","_o","addcell","_t","footer","element","ia","_a2","_b2","_i","csp","as","ref2","root2","doc","sa","da","R2","dfile","bookings","XLSX","locale","ordinal","string","regex","localeData","DATE","ms","hours","minutes","meridiem","years","weeks","seconds","milliseconds","direction","properties","lang","proto$1","add$1","thresholds","lastSearch","moment","i18n.getCurrentLanguage","i18n.setLanguage","__default__","_sfc_main","_normalizeClass","_hoisted_2","_createElementVNode","_hoisted_4","_hoisted_7","_hoisted_10","_openBlock","_createElementBlock","_hoisted_1","_mergeProps","_withKeys","_renderSlot","_hoisted_3","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_9","_Fragment","_renderList","_createCommentVNode","_hoisted_11","_toDisplayString","ze","Jt","ve","xe","Be","Ve","xt","Le","De","io","se","J","ot","_e","Ge","ue","We","de","Se","Pt","et","$","he","fe","te","Et","tr","z","Z","Y","me","pe","ae","Ke","$e","le","ye","qe","eo","Fe","Te","yt","br","Je","ht","He","U","it","Ue","ct","oo","ro","_withModifiers","csv","P","y","G","O","I","Me","B","X","Q","Ze","Ne","C","point","lat","lng","_createStaticVNode","_createTextVNode","_hoisted_12","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_30","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_36","_hoisted_13","_hoisted_29","_hoisted_31","_createBlock","_withCtx","_hoisted_35","_createVNode","_hoisted_37","attributes","cookies","converter","Cookies","assertPath","normalize","isUint8Array","prop","basename","extname","setProperty","getProperty","ok","own","parseTree","tree","compiler","parameters","rest","isPlainObj","constants","convert","test","castFactory","anyFactory","propsFactory","typeFactory","checks","empty","CONTINUE","EXIT","SKIP","visitParents","factory","toResult","siblings","escape","previous","trail","footnoteReference","exit","blank","sizes","columnIndex","serialize","one","blockquote","hardBreak","max","definition","emphasis","emptyOptions","heading","subexit","image","imageReference","inlineCode","linkReference","listItem","paragraph","strong","thematicBreak","handle","characterReference","defaultHandlers","extension","dot","constructs","attentionMarkers","effects","nok","start","furtherStart","titleBefore","tokenizeIndent","strikethrough","insideSpan","at","firstChild","document","createDebug","disable","enabled","require$$0","debug","main","resolveText","blockQuote","codeText","data","fragment","sup","spread","result","ignore","json","structuredClone","createState","unknown","space","attribute","svg","htmlBase","svgBase","parseSelector","buttonTypes","createAdjustMap","isProperties","addProperty","spaces","commas","parsePrimitive","doctype","whitespace","join","Token","contains","deflt","getBaseElem","isCharacterBox","protocolFromUrl","text$1","sqrtMain","hLinePad","sqrtSize1","sqrtSize2","sqrtSize3","sqrtSize4","phasePath","sqrtTall","sqrtPath","innerPath","tallDelim","className","markup","toText","ch","sizeAtStyle","validUnit","calculateSize","makeEm","createClass","initNode","toNode","toMarkup","svgNS","wideCharacterFont","wideChar","lookupSymbol","makeSymbol","mathsym","boldsymbol","makeOrd","sizeElementFromChildren","makeSpan","makeLineSpan","makeAnchor","makeFragment","wrapFragment","getVListChildrenAndDepth","makeVList","_i2","retrieveTextFontName","staticSvg","htmlBuilder","mathmlBuilder","normalizeArgument","ordargument","buildExpression","traverseNonSpaceNodes","checkPartialGroup","getOutermostNode","getTypeOfDomTree","makeNullDelimiter","buildGroup","makeText","makeRow","getVariant","lastChild","buildExpressionRow","math","optionsFromSettings","displayWrap","buildTree","buildHTMLTree","mathMLnode","groupLength","svgSpan","encloseSpan","accent","global","getMetrics","styleWrap","centerSpan","makeSmallDelim","mathrmSize","makeLargeDelim","makeGlyphSpan","makeInner","makeStackedDelim","sqrtSvg","makeSqrtImage","makeSizedDelim","delimTypeToFont","traverseSequence","makeCustomSizedDelim","makeLeftRightDelim","nr","gap","tag","spacing","_i3","alignedHandler","textord","_i4","_i5","delimFromValue","sizeData","child","htmlBuilderDelegate","context","Parser","renderToString","generateParseTree","renderError","renderToDomTree","renderToHTMLTree","closing","CODE_POINTS","ERR","TokenType","CharCodes","BinTrieFlags","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","NS","ATTRS","DOCUMENT_MODE","TAG_NAMES","TAG_ID","State","$$","EntryType","entry","prefixes","InsertionMode","TN","foreignContent.isIntegrationPoint","unicode.CODE_POINTS","doctype.getDocumentMode","doctype.isConforming","foreignContent.adjustTokenMathMLAttrs","foreignContent.adjustTokenXMLAttrs","foreignContent.adjustTokenSVGAttrs","unicode.REPLACEMENT_CHARACTER","foreignContent.causesExit","foreignContent.adjustTokenSVGTagName","stitch","Token.TokenType","html.getTagID","type","__assign","spaces.parse","spaces.stringify","boolbase","nthCheck","fauxEsmNthCheck","_2","nest","core","basic","omit","emptyChildren","increment","tbody","str","Prism","refractorClike","refractorC","refractorCpp","refractorCss","markdown","refractorMarkup","tableCell","tableRow","refractorMarkupTemplating","refractorJavascript","refractorBasic","queue","indent","following","characters","refractorSql","asciidoc","refractorCsharp","refractorRuby","markupTemplating","refractorLua","factor","ftl","textile","contentType","refractorHaskell","refractorJava","refractorJavadoclike","jq","refractorTypescript","javascript","refractorJson","refractorPhp","refractorScheme","lilypond","pascaligo","powershell","round","refractorJsx","typescript","refractorBash","refractorTurtle","refractorMata","refractorPython","createBlock","refractorT4Templating","refractorVbnet","refractorYaml","velocity","t","o","rehypePrism","rehypeAttrs","rehypeIgnore","V","M","m","c2","s2","a2","H2","n2","f2","u2","d2","p2","S2","q2","j2","N2","T2","i18n.locales","i18n.translate"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,59,62,69,74,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684],"sources":["../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/vue/dist/vue.runtime.esm-bundler.js","../../node_modules/@vue/devtools-api/lib/esm/env.js","../../node_modules/@vue/devtools-api/lib/esm/const.js","../../node_modules/@vue/devtools-api/lib/esm/time.js","../../node_modules/@vue/devtools-api/lib/esm/proxy.js","../../node_modules/@vue/devtools-api/lib/esm/index.js","../../node_modules/vue-router/dist/vue-router.mjs","../../node_modules/vuex/dist/vuex.esm-bundler.js","../../node_modules/typed-vuex/dist/index.mjs","../../node_modules/axios/lib/helpers/bind.js","../../node_modules/axios/lib/utils.js","../../node_modules/axios/lib/core/AxiosError.js","../../node_modules/axios/lib/helpers/null.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/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/browser/index.js","../../node_modules/axios/lib/platform/common/utils.js","../../node_modules/axios/lib/platform/index.js","../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/axios/lib/defaults/index.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/core/settle.js","../../node_modules/axios/lib/helpers/cookies.js","../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/axios/lib/core/buildFullPath.js","../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/axios/lib/helpers/parseProtocol.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/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/spread.js","../../node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/axios/lib/axios.js","../../src/api/index.ts","../../src/i18n/index.js","../../src/store/user.js","../../node_modules/xlsx/xlsx.mjs","../../src/store/countryCodes.js","../../src/store/bookings.js","../../node_modules/moment/dist/moment.js","../../src/store/search.js","../../src/store/ai.js","../../src/store/index.js","../../src/components/Drawer.vue","../../src/components/Autocomplete.vue","../../src/components/Assistant.vue","../../node_modules/vue-tailwind-datepicker/dist/vue-tailwind-datepicker.js","../../src/components/bookings/Voucher.vue","../../src/components/Modal.vue","../../src/utils/transformBooking.ts","../../src/components/bookings/BookingList.vue","../../node_modules/vue3-google-map/dist/index.mjs","../../src/components/search/GMap.vue","../../src/components/search/PlaceList.vue","../../src/views/Booking.vue","../../src/components/admin/UserManagement.vue","../../src/views/Admin.vue","../../src/components/search/SearchResult.vue","../../src/components/search/Searcher.vue","../../src/components/search/Booker.vue","../../src/components/Profile.vue","../../src/views/LegalDocs.vue","../../src/router/index.js","../../src/components/Login.vue","../../src/components/CookiesConsent.vue","../../node_modules/js-cookie/dist/js.cookie.mjs","../../src/App.vue","../../node_modules/unist-util-stringify-position/lib/index.js","../../node_modules/vfile-message/lib/index.js","../../node_modules/vfile/lib/minpath.browser.js","../../node_modules/vfile/lib/minproc.browser.js","../../node_modules/vfile/lib/minurl.shared.js","../../node_modules/vfile/lib/minurl.browser.js","../../node_modules/vfile/lib/index.js","../../node_modules/bail/index.js","../../node_modules/extend/index.js","../../node_modules/devlop/lib/development.js","../../node_modules/is-plain-obj/index.js","../../node_modules/trough/lib/index.js","../../node_modules/unified/lib/callable-instance.js","../../node_modules/unified/lib/index.js","../../node_modules/ccount/index.js","../../node_modules/micromark-util-symbol/lib/codes.js","../../node_modules/micromark-util-symbol/lib/constants.js","../../node_modules/micromark-util-symbol/lib/types.js","../../node_modules/micromark-util-symbol/lib/values.js","../../node_modules/micromark-util-character/dev/index.js","../../node_modules/escape-string-regexp/index.js","../../node_modules/unist-util-is/lib/index.js","../../node_modules/unist-util-visit-parents/lib/color.js","../../node_modules/unist-util-visit-parents/lib/index.js","../../node_modules/mdast-util-find-and-replace/lib/index.js","../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../../node_modules/micromark-util-normalize-identifier/dev/index.js","../../node_modules/mdast-util-gfm-footnote/lib/index.js","../../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../../node_modules/markdown-table/index.js","../../node_modules/zwitch/index.js","../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../../node_modules/mdast-util-to-markdown/lib/handle/break.js","../../node_modules/longest-streak/index.js","../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../../node_modules/mdast-util-to-markdown/lib/handle/code.js","../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../../node_modules/unist-util-visit/lib/index.js","../../node_modules/mdast-util-to-string/lib/index.js","../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../../node_modules/mdast-util-to-markdown/lib/handle/html.js","../../node_modules/mdast-util-to-markdown/lib/handle/image.js","../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../../node_modules/mdast-util-to-markdown/lib/handle/link.js","../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../../node_modules/mdast-util-to-markdown/lib/handle/list.js","../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../../node_modules/mdast-util-phrasing/lib/index.js","../../node_modules/mdast-util-to-markdown/lib/handle/root.js","../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../../node_modules/mdast-util-to-markdown/lib/handle/text.js","../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../../node_modules/mdast-util-to-markdown/lib/handle/index.js","../../node_modules/decode-named-character-reference/index.dom.js","../../node_modules/micromark-util-decode-numeric-character-reference/dev/index.js","../../node_modules/micromark-util-decode-string/dev/index.js","../../node_modules/mdast-util-gfm-table/lib/index.js","../../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../../node_modules/mdast-util-gfm/lib/index.js","../../node_modules/micromark-util-chunked/dev/index.js","../../node_modules/micromark-util-combine-extensions/index.js","../../node_modules/micromark-extension-gfm-autolink-literal/dev/lib/syntax.js","../../node_modules/micromark-util-sanitize-uri/dev/index.js","../../node_modules/micromark-util-classify-character/dev/index.js","../../node_modules/micromark-util-resolve-all/index.js","../../node_modules/micromark-core-commonmark/dev/lib/attention.js","../../node_modules/micromark-core-commonmark/dev/lib/autolink.js","../../node_modules/micromark-factory-space/dev/index.js","../../node_modules/micromark-core-commonmark/dev/lib/blank-line.js","../../node_modules/micromark-core-commonmark/dev/lib/block-quote.js","../../node_modules/micromark-core-commonmark/dev/lib/character-escape.js","../../node_modules/micromark-core-commonmark/dev/lib/character-reference.js","../../node_modules/micromark-core-commonmark/dev/lib/code-fenced.js","../../node_modules/micromark-core-commonmark/dev/lib/code-indented.js","../../node_modules/micromark-core-commonmark/dev/lib/code-text.js","../../node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js","../../node_modules/micromark-util-subtokenize/dev/index.js","../../node_modules/micromark-core-commonmark/dev/lib/content.js","../../node_modules/micromark-factory-destination/dev/index.js","../../node_modules/micromark-factory-label/dev/index.js","../../node_modules/micromark-factory-title/dev/index.js","../../node_modules/micromark-factory-whitespace/dev/index.js","../../node_modules/micromark-core-commonmark/dev/lib/definition.js","../../node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/dev/lib/heading-atx.js","../../node_modules/micromark-util-html-tag-name/index.js","../../node_modules/micromark-core-commonmark/dev/lib/html-flow.js","../../node_modules/micromark-core-commonmark/dev/lib/html-text.js","../../node_modules/micromark-core-commonmark/dev/lib/label-end.js","../../node_modules/micromark-core-commonmark/dev/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/dev/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/dev/lib/line-ending.js","../../node_modules/micromark-core-commonmark/dev/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/dev/lib/list.js","../../node_modules/micromark-core-commonmark/dev/lib/setext-underline.js","../../node_modules/micromark-extension-gfm-footnote/dev/lib/syntax.js","../../node_modules/micromark-extension-gfm-strikethrough/dev/lib/syntax.js","../../node_modules/micromark-extension-gfm-table/dev/lib/edit-map.js","../../node_modules/micromark-extension-gfm-table/dev/lib/infer.js","../../node_modules/micromark-extension-gfm-table/dev/lib/syntax.js","../../node_modules/micromark-extension-gfm-task-list-item/dev/lib/syntax.js","../../node_modules/micromark-extension-gfm/index.js","../../node_modules/remark-gfm/lib/index.js","../../node_modules/rehype-attr/lib/utils.js","../../node_modules/rehype-attr/lib/index.js","../../node_modules/micromark/dev/lib/initialize/content.js","../../node_modules/micromark/dev/lib/initialize/document.js","../../node_modules/micromark/dev/lib/initialize/flow.js","../../node_modules/micromark/dev/lib/initialize/text.js","../../node_modules/debug/node_modules/ms/index.js","../../node_modules/debug/src/common.js","../../node_modules/debug/src/browser.js","../../node_modules/micromark/dev/lib/create-tokenizer.js","../../node_modules/micromark/dev/lib/constructs.js","../../node_modules/micromark/dev/lib/parse.js","../../node_modules/micromark/dev/lib/postprocess.js","../../node_modules/micromark/dev/lib/preprocess.js","../../node_modules/mdast-util-from-markdown/dev/lib/index.js","../../node_modules/remark-parse/lib/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/unist-util-position/lib/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../node_modules/trim-lines/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/@ungap/structured-clone/esm/types.js","../../node_modules/@ungap/structured-clone/esm/deserialize.js","../../node_modules/@ungap/structured-clone/esm/serialize.js","../../node_modules/@ungap/structured-clone/esm/index.js","../../node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/mdast-util-to-hast/lib/state.js","../../node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/remark-rehype/lib/index.js","../../node_modules/rehype-video/lib/detailsNode.js","../../node_modules/rehype-video/lib/index.js","../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/index.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/hast-util-parse-selector/lib/index.js","../../node_modules/space-separated-tokens/index.js","../../node_modules/hastscript/lib/create-h.js","../../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../../node_modules/hastscript/lib/index.js","../../node_modules/web-namespaces/index.js","../../node_modules/hast-util-from-dom/lib/index.js","../../node_modules/hast-util-from-html-isomorphic/lib/browser.js","../../node_modules/unist-util-find-after/lib/index.js","../../node_modules/hast-util-is-element/lib/index.js","../../node_modules/hast-util-to-text/lib/index.js","../../node_modules/katex/dist/katex.mjs","../../node_modules/rehype-katex/lib/index.js","../../node_modules/rehype-ignore/lib/index.js","../../node_modules/vfile-location/lib/index.js","../../node_modules/hast-util-from-parse5/lib/index.js","../../node_modules/hast-util-to-parse5/lib/index.js","../../node_modules/html-void-elements/index.js","../../node_modules/parse5/dist/common/unicode.js","../../node_modules/parse5/dist/common/error-codes.js","../../node_modules/parse5/dist/tokenizer/preprocessor.js","../../node_modules/parse5/dist/common/token.js","../../node_modules/entities/lib/esm/generated/decode-data-html.js","../../node_modules/entities/lib/esm/generated/decode-data-xml.js","../../node_modules/entities/lib/esm/decode_codepoint.js","../../node_modules/entities/lib/esm/decode.js","../../node_modules/parse5/dist/common/html.js","../../node_modules/parse5/dist/tokenizer/index.js","../../node_modules/parse5/dist/parser/open-element-stack.js","../../node_modules/parse5/dist/parser/formatting-element-list.js","../../node_modules/parse5/dist/tree-adapters/default.js","../../node_modules/parse5/dist/common/doctype.js","../../node_modules/parse5/dist/common/foreign-content.js","../../node_modules/parse5/dist/parser/index.js","../../node_modules/parse5/dist/serializer/index.js","../../node_modules/hast-util-raw/lib/index.js","../../node_modules/rehype-raw/lib/index.js","../../node_modules/css-selector-parser/dist/mjs/indexes.js","../../node_modules/css-selector-parser/dist/mjs/pseudo-signatures.js","../../node_modules/css-selector-parser/dist/mjs/syntax-definitions.js","../../node_modules/css-selector-parser/dist/mjs/utils.js","../../node_modules/css-selector-parser/dist/mjs/parser.js","../../node_modules/css-selector-parser/dist/mjs/ast.js","../../node_modules/hast-util-select/lib/parse.js","../../node_modules/direction/index.js","../../node_modules/hast-util-to-string/lib/index.js","../../node_modules/hast-util-select/lib/enter-state.js","../../node_modules/hast-util-select/lib/attribute.js","../../node_modules/hast-util-select/lib/class-name.js","../../node_modules/hast-util-select/lib/id.js","../../node_modules/hast-util-select/lib/name.js","../../node_modules/bcp-47-match/index.js","../../node_modules/hast-util-has-property/lib/index.js","../../node_modules/hast-util-whitespace/lib/index.js","../../node_modules/nth-check/lib/esm/parse.js","../../node_modules/boolbase/index.js","../../node_modules/nth-check/lib/esm/compile.js","../../node_modules/nth-check/lib/esm/index.js","../../node_modules/hast-util-select/lib/pseudo.js","../../node_modules/hast-util-select/lib/test.js","../../node_modules/hast-util-select/lib/walk.js","../../node_modules/hast-util-select/lib/index.js","../../node_modules/rehype-rewrite/lib/index.js","../../node_modules/stringify-entities/lib/core.js","../../node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../node_modules/stringify-entities/lib/util/to-decimal.js","../../node_modules/character-entities-legacy/index.js","../../node_modules/character-entities-html4/index.js","../../node_modules/stringify-entities/lib/constant/dangerous.js","../../node_modules/stringify-entities/lib/util/to-named.js","../../node_modules/stringify-entities/lib/util/format-smart.js","../../node_modules/stringify-entities/lib/index.js","../../node_modules/hast-util-to-html/lib/handle/comment.js","../../node_modules/hast-util-to-html/lib/handle/doctype.js","../../node_modules/hast-util-to-html/lib/omission/util/siblings.js","../../node_modules/hast-util-to-html/lib/omission/omission.js","../../node_modules/hast-util-to-html/lib/omission/closing.js","../../node_modules/hast-util-to-html/lib/omission/opening.js","../../node_modules/hast-util-to-html/lib/handle/element.js","../../node_modules/hast-util-to-html/lib/handle/text.js","../../node_modules/hast-util-to-html/lib/handle/raw.js","../../node_modules/hast-util-to-html/lib/handle/root.js","../../node_modules/hast-util-to-html/lib/handle/index.js","../../node_modules/hast-util-to-html/lib/index.js","../../node_modules/rehype-stringify/lib/index.js","../../node_modules/rehype-prism-plus/node_modules/unist-util-is/lib/index.js","../../node_modules/rehype-prism-plus/node_modules/unist-util-visit-parents/lib/color.browser.js","../../node_modules/rehype-prism-plus/node_modules/unist-util-visit-parents/lib/index.js","../../node_modules/rehype-prism-plus/node_modules/unist-util-visit/lib/index.js","../../node_modules/rehype-prism-plus/node_modules/hast-util-to-string/index.js","../../node_modules/unist-util-filter/node_modules/unist-util-is/lib/index.js","../../node_modules/unist-util-filter/lib/index.js","../../node_modules/parse-numeric-range/index.js","../../node_modules/refractor/lang/clike.js","../../node_modules/refractor/lang/c.js","../../node_modules/refractor/lang/cpp.js","../../node_modules/refractor/lang/arduino.js","../../node_modules/refractor/lang/bash.js","../../node_modules/refractor/lang/csharp.js","../../node_modules/refractor/lang/markup.js","../../node_modules/refractor/lang/css.js","../../node_modules/refractor/lang/diff.js","../../node_modules/refractor/lang/go.js","../../node_modules/refractor/lang/ini.js","../../node_modules/refractor/lang/java.js","../../node_modules/refractor/lang/regex.js","../../node_modules/refractor/lang/javascript.js","../../node_modules/refractor/lang/json.js","../../node_modules/refractor/lang/kotlin.js","../../node_modules/refractor/lang/less.js","../../node_modules/refractor/lang/lua.js","../../node_modules/refractor/lang/makefile.js","../../node_modules/refractor/lang/yaml.js","../../node_modules/refractor/lang/markdown.js","../../node_modules/refractor/lang/objectivec.js","../../node_modules/refractor/lang/perl.js","../../node_modules/refractor/lang/markup-templating.js","../../node_modules/refractor/lang/php.js","../../node_modules/refractor/lang/python.js","../../node_modules/refractor/lang/r.js","../../node_modules/refractor/lang/ruby.js","../../node_modules/refractor/lang/rust.js","../../node_modules/refractor/lang/sass.js","../../node_modules/refractor/lang/scss.js","../../node_modules/refractor/lang/sql.js","../../node_modules/refractor/lang/swift.js","../../node_modules/refractor/lang/typescript.js","../../node_modules/refractor/lang/basic.js","../../node_modules/refractor/lang/vbnet.js","../../node_modules/refractor/node_modules/hast-util-parse-selector/lib/index.js","../../node_modules/refractor/node_modules/hastscript/lib/core.js","../../node_modules/refractor/node_modules/hastscript/lib/html.js","../../node_modules/character-reference-invalid/index.js","../../node_modules/is-decimal/index.js","../../node_modules/is-hexadecimal/index.js","../../node_modules/is-alphabetical/index.js","../../node_modules/is-alphanumerical/index.js","../../node_modules/parse-entities/lib/index.js","../../node_modules/refractor/lib/prism-core.js","../../node_modules/refractor/lib/core.js","../../node_modules/refractor/lib/common.js","../../node_modules/refractor/lang/abap.js","../../node_modules/refractor/lang/abnf.js","../../node_modules/refractor/lang/actionscript.js","../../node_modules/refractor/lang/ada.js","../../node_modules/refractor/lang/agda.js","../../node_modules/refractor/lang/al.js","../../node_modules/refractor/lang/antlr4.js","../../node_modules/refractor/lang/apacheconf.js","../../node_modules/refractor/lang/apex.js","../../node_modules/refractor/lang/apl.js","../../node_modules/refractor/lang/applescript.js","../../node_modules/refractor/lang/aql.js","../../node_modules/refractor/lang/arff.js","../../node_modules/refractor/lang/armasm.js","../../node_modules/refractor/lang/arturo.js","../../node_modules/refractor/lang/asciidoc.js","../../node_modules/refractor/lang/aspnet.js","../../node_modules/refractor/lang/asm6502.js","../../node_modules/refractor/lang/asmatmel.js","../../node_modules/refractor/lang/autohotkey.js","../../node_modules/refractor/lang/autoit.js","../../node_modules/refractor/lang/avisynth.js","../../node_modules/refractor/lang/avro-idl.js","../../node_modules/refractor/lang/awk.js","../../node_modules/refractor/lang/batch.js","../../node_modules/refractor/lang/bbcode.js","../../node_modules/refractor/lang/bbj.js","../../node_modules/refractor/lang/bicep.js","../../node_modules/refractor/lang/birb.js","../../node_modules/refractor/lang/bison.js","../../node_modules/refractor/lang/bnf.js","../../node_modules/refractor/lang/bqn.js","../../node_modules/refractor/lang/brainfuck.js","../../node_modules/refractor/lang/brightscript.js","../../node_modules/refractor/lang/bro.js","../../node_modules/refractor/lang/bsl.js","../../node_modules/refractor/lang/cfscript.js","../../node_modules/refractor/lang/chaiscript.js","../../node_modules/refractor/lang/cil.js","../../node_modules/refractor/lang/cilkc.js","../../node_modules/refractor/lang/cilkcpp.js","../../node_modules/refractor/lang/clojure.js","../../node_modules/refractor/lang/cmake.js","../../node_modules/refractor/lang/cobol.js","../../node_modules/refractor/lang/coffeescript.js","../../node_modules/refractor/lang/concurnas.js","../../node_modules/refractor/lang/csp.js","../../node_modules/refractor/lang/cooklang.js","../../node_modules/refractor/lang/coq.js","../../node_modules/refractor/lang/crystal.js","../../node_modules/refractor/lang/css-extras.js","../../node_modules/refractor/lang/csv.js","../../node_modules/refractor/lang/cue.js","../../node_modules/refractor/lang/cypher.js","../../node_modules/refractor/lang/d.js","../../node_modules/refractor/lang/dart.js","../../node_modules/refractor/lang/dataweave.js","../../node_modules/refractor/lang/dax.js","../../node_modules/refractor/lang/dhall.js","../../node_modules/refractor/lang/django.js","../../node_modules/refractor/lang/dns-zone-file.js","../../node_modules/refractor/lang/docker.js","../../node_modules/refractor/lang/dot.js","../../node_modules/refractor/lang/ebnf.js","../../node_modules/refractor/lang/editorconfig.js","../../node_modules/refractor/lang/eiffel.js","../../node_modules/refractor/lang/ejs.js","../../node_modules/refractor/lang/elixir.js","../../node_modules/refractor/lang/elm.js","../../node_modules/refractor/lang/etlua.js","../../node_modules/refractor/lang/erb.js","../../node_modules/refractor/lang/erlang.js","../../node_modules/refractor/lang/excel-formula.js","../../node_modules/refractor/lang/fsharp.js","../../node_modules/refractor/lang/factor.js","../../node_modules/refractor/lang/false.js","../../node_modules/refractor/lang/firestore-security-rules.js","../../node_modules/refractor/lang/flow.js","../../node_modules/refractor/lang/fortran.js","../../node_modules/refractor/lang/ftl.js","../../node_modules/refractor/lang/gml.js","../../node_modules/refractor/lang/gap.js","../../node_modules/refractor/lang/gcode.js","../../node_modules/refractor/lang/gdscript.js","../../node_modules/refractor/lang/gedcom.js","../../node_modules/refractor/lang/gettext.js","../../node_modules/refractor/lang/gherkin.js","../../node_modules/refractor/lang/git.js","../../node_modules/refractor/lang/glsl.js","../../node_modules/refractor/lang/gn.js","../../node_modules/refractor/lang/linker-script.js","../../node_modules/refractor/lang/go-module.js","../../node_modules/refractor/lang/gradle.js","../../node_modules/refractor/lang/graphql.js","../../node_modules/refractor/lang/groovy.js","../../node_modules/refractor/lang/textile.js","../../node_modules/refractor/lang/haml.js","../../node_modules/refractor/lang/handlebars.js","../../node_modules/refractor/lang/haskell.js","../../node_modules/refractor/lang/haxe.js","../../node_modules/refractor/lang/hcl.js","../../node_modules/refractor/lang/hlsl.js","../../node_modules/refractor/lang/hoon.js","../../node_modules/refractor/lang/hpkp.js","../../node_modules/refractor/lang/hsts.js","../../node_modules/refractor/lang/uri.js","../../node_modules/refractor/lang/http.js","../../node_modules/refractor/lang/ichigojam.js","../../node_modules/refractor/lang/icon.js","../../node_modules/refractor/lang/icu-message-format.js","../../node_modules/refractor/lang/idris.js","../../node_modules/refractor/lang/ignore.js","../../node_modules/refractor/lang/inform7.js","../../node_modules/refractor/lang/io.js","../../node_modules/refractor/lang/j.js","../../node_modules/refractor/lang/javadoclike.js","../../node_modules/refractor/lang/scala.js","../../node_modules/refractor/lang/javadoc.js","../../node_modules/refractor/lang/javastacktrace.js","../../node_modules/refractor/lang/jexl.js","../../node_modules/refractor/lang/jolie.js","../../node_modules/refractor/lang/jq.js","../../node_modules/refractor/lang/js-templates.js","../../node_modules/refractor/lang/jsdoc.js","../../node_modules/refractor/lang/n4js.js","../../node_modules/refractor/lang/js-extras.js","../../node_modules/refractor/lang/json5.js","../../node_modules/refractor/lang/jsonp.js","../../node_modules/refractor/lang/jsstacktrace.js","../../node_modules/refractor/lang/julia.js","../../node_modules/refractor/lang/keepalived.js","../../node_modules/refractor/lang/keyman.js","../../node_modules/refractor/lang/kumir.js","../../node_modules/refractor/lang/kusto.js","../../node_modules/refractor/lang/latex.js","../../node_modules/refractor/lang/latte.js","../../node_modules/refractor/lang/scheme.js","../../node_modules/refractor/lang/lilypond.js","../../node_modules/refractor/lang/liquid.js","../../node_modules/refractor/lang/lisp.js","../../node_modules/refractor/lang/livescript.js","../../node_modules/refractor/lang/llvm.js","../../node_modules/refractor/lang/log.js","../../node_modules/refractor/lang/lolcode.js","../../node_modules/refractor/lang/magma.js","../../node_modules/refractor/lang/mata.js","../../node_modules/refractor/lang/matlab.js","../../node_modules/refractor/lang/maxscript.js","../../node_modules/refractor/lang/mel.js","../../node_modules/refractor/lang/mermaid.js","../../node_modules/refractor/lang/metafont.js","../../node_modules/refractor/lang/mizar.js","../../node_modules/refractor/lang/mongodb.js","../../node_modules/refractor/lang/monkey.js","../../node_modules/refractor/lang/moonscript.js","../../node_modules/refractor/lang/n1ql.js","../../node_modules/refractor/lang/nand2tetris-hdl.js","../../node_modules/refractor/lang/naniscript.js","../../node_modules/refractor/lang/nasm.js","../../node_modules/refractor/lang/neon.js","../../node_modules/refractor/lang/nevod.js","../../node_modules/refractor/lang/nginx.js","../../node_modules/refractor/lang/nim.js","../../node_modules/refractor/lang/nix.js","../../node_modules/refractor/lang/nsis.js","../../node_modules/refractor/lang/ocaml.js","../../node_modules/refractor/lang/odin.js","../../node_modules/refractor/lang/opencl.js","../../node_modules/refractor/lang/openqasm.js","../../node_modules/refractor/lang/oz.js","../../node_modules/refractor/lang/parigp.js","../../node_modules/refractor/lang/parser.js","../../node_modules/refractor/lang/pascal.js","../../node_modules/refractor/lang/pascaligo.js","../../node_modules/refractor/lang/psl.js","../../node_modules/refractor/lang/pcaxis.js","../../node_modules/refractor/lang/peoplecode.js","../../node_modules/refractor/lang/phpdoc.js","../../node_modules/refractor/lang/php-extras.js","../../node_modules/refractor/lang/plant-uml.js","../../node_modules/refractor/lang/plsql.js","../../node_modules/refractor/lang/powerquery.js","../../node_modules/refractor/lang/powershell.js","../../node_modules/refractor/lang/processing.js","../../node_modules/refractor/lang/prolog.js","../../node_modules/refractor/lang/promql.js","../../node_modules/refractor/lang/properties.js","../../node_modules/refractor/lang/protobuf.js","../../node_modules/refractor/lang/stylus.js","../../node_modules/refractor/lang/twig.js","../../node_modules/refractor/lang/pug.js","../../node_modules/refractor/lang/puppet.js","../../node_modules/refractor/lang/pure.js","../../node_modules/refractor/lang/purebasic.js","../../node_modules/refractor/lang/purescript.js","../../node_modules/refractor/lang/qsharp.js","../../node_modules/refractor/lang/q.js","../../node_modules/refractor/lang/qml.js","../../node_modules/refractor/lang/qore.js","../../node_modules/refractor/lang/racket.js","../../node_modules/refractor/lang/cshtml.js","../../node_modules/refractor/lang/jsx.js","../../node_modules/refractor/lang/tsx.js","../../node_modules/refractor/lang/reason.js","../../node_modules/refractor/lang/rego.js","../../node_modules/refractor/lang/renpy.js","../../node_modules/refractor/lang/rescript.js","../../node_modules/refractor/lang/rest.js","../../node_modules/refractor/lang/rip.js","../../node_modules/refractor/lang/roboconf.js","../../node_modules/refractor/lang/robotframework.js","../../node_modules/refractor/lang/sas.js","../../node_modules/refractor/lang/shell-session.js","../../node_modules/refractor/lang/smali.js","../../node_modules/refractor/lang/smalltalk.js","../../node_modules/refractor/lang/smarty.js","../../node_modules/refractor/lang/sml.js","../../node_modules/refractor/lang/solidity.js","../../node_modules/refractor/lang/solution-file.js","../../node_modules/refractor/lang/soy.js","../../node_modules/refractor/lang/turtle.js","../../node_modules/refractor/lang/sparql.js","../../node_modules/refractor/lang/splunk-spl.js","../../node_modules/refractor/lang/sqf.js","../../node_modules/refractor/lang/squirrel.js","../../node_modules/refractor/lang/stan.js","../../node_modules/refractor/lang/stata.js","../../node_modules/refractor/lang/iecst.js","../../node_modules/refractor/lang/supercollider.js","../../node_modules/refractor/lang/systemd.js","../../node_modules/refractor/lang/t4-templating.js","../../node_modules/refractor/lang/t4-cs.js","../../node_modules/refractor/lang/t4-vb.js","../../node_modules/refractor/lang/tap.js","../../node_modules/refractor/lang/tcl.js","../../node_modules/refractor/lang/tt2.js","../../node_modules/refractor/lang/toml.js","../../node_modules/refractor/lang/tremor.js","../../node_modules/refractor/lang/typoscript.js","../../node_modules/refractor/lang/unrealscript.js","../../node_modules/refractor/lang/uorazor.js","../../node_modules/refractor/lang/v.js","../../node_modules/refractor/lang/vala.js","../../node_modules/refractor/lang/velocity.js","../../node_modules/refractor/lang/verilog.js","../../node_modules/refractor/lang/vhdl.js","../../node_modules/refractor/lang/vim.js","../../node_modules/refractor/lang/visual-basic.js","../../node_modules/refractor/lang/warpscript.js","../../node_modules/refractor/lang/wasm.js","../../node_modules/refractor/lang/web-idl.js","../../node_modules/refractor/lang/wgsl.js","../../node_modules/refractor/lang/wiki.js","../../node_modules/refractor/lang/wolfram.js","../../node_modules/refractor/lang/wren.js","../../node_modules/refractor/lang/xeora.js","../../node_modules/refractor/lang/xml-doc.js","../../node_modules/refractor/lang/xojo.js","../../node_modules/refractor/lang/xquery.js","../../node_modules/refractor/lang/yang.js","../../node_modules/refractor/lang/zig.js","../../node_modules/refractor/lib/all.js","../../node_modules/rehype-prism-plus/dist/index.es.js","../../node_modules/@wcj/markdown-to-html/lib/index.js","../../src/components/Markdown.vue","../../src/assets/fontawesome-free-6.5.1-web/js/all.min.js","../../src/mixins/i18n.js","../../src/main.js"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length)\n return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(\n {},\n PublicInstanceProxyHandlers,\n {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n }\n);\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\"))\n continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b)\n return a || b;\n if (isArray(a) && isArray(b))\n return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components)\n instance.components = components;\n if (directives)\n instance.directives = directives;\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n const getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n watch(getter, handler);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n watch(getter, raw.bind(publicThis));\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to)\n return from;\n if (!from)\n return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getExposeProxy(vnode.component) || vnode.component.proxy;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n unmount() {\n if (isMounted) {\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = {};\n def(attrs, InternalObjectKey, 1);\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId)\n return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance, \"set\", \"$attrs\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys)\n needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n if (prop) {\n const booleanIndex = getTypeIndex(Boolean, prop.type);\n const stringIndex = getTypeIndex(String, prop.type);\n prop[0 /* shouldCast */] = booleanIndex > -1;\n prop[1 /* shouldCastTrue */] = stringIndex < 0 || booleanIndex < stringIndex;\n if (booleanIndex > -1 || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction isSameType(a, b) {\n return getType(a) === getType(b);\n}\nfunction getTypeIndex(type, expectedTypes) {\n if (isArray(expectedTypes)) {\n return expectedTypes.findIndex((t) => isSameType(t, type));\n } else if (isFunction(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n return -1;\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null)\n continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"null\") {\n valid = value === null;\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key))\n continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst initSlots = (instance, children) => {\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n instance.slots = toRaw(children);\n def(children, \"_\", type);\n } else {\n normalizeObjectSlots(\n children,\n instance.slots = {});\n }\n } else {\n instance.slots = {};\n if (children) {\n normalizeVNodeSlots(instance, children);\n }\n }\n def(instance.slots, InternalObjectKey, 1);\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n extend(slots, children);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n extend(slots, children);\n if (!optimized && type === 1) {\n delete slots._;\n }\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (hasOwn(setupState, oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (hasOwn(setupState, ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k)\n refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (hasOwn(setupState, ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k)\n refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasMismatch = false;\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (isSVGContainer(container))\n return \"svg\";\n if (isMathMLContainer(container))\n return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hasMismatch = false;\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n if (hasMismatch && true) {\n console.error(`Hydration completed but contains mismatches.`);\n }\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n if (!(\"__vnode\" in node)) {\n Object.defineProperty(node, \"__vnode\", {\n value: vnode,\n enumerable: false\n });\n }\n if (!(\"__vueParentComponent\" in node)) {\n Object.defineProperty(node, \"__vueParentComponent\", {\n value: parentComponent,\n enumerable: false\n });\n }\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3 /* TEXT */) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 /* COMMENT */ || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 /* ELEMENT */ || domType === 3 /* TEXT */) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 /* ELEMENT */ ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 /* ELEMENT */ || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8 /* COMMENT */) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n hasMismatch = true;\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n if (el.textContent !== vnode.children) {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || !optimized || patchFlag & (16 | 32)) {\n for (const key in props) {\n if (!!(process.env.NODE_ENV !== \"production\") && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n hasMismatch = true;\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\") {\n patchProp(\n el,\n key,\n null,\n props[key],\n void 0,\n void 0,\n parentComponent\n );\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n void 0,\n parentComponent\n );\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n if (node) {\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (vnode.type === Text && !vnode.children) {\n continue;\n } else {\n hasMismatch = true;\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n hasMismatch = true;\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n hasMismatch = true;\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open)\n match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 /* ELEMENT */ && node.tagName.toLowerCase() === \"template\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n var _a;\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\");\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n const root = instance == null ? void 0 : instance.subTree;\n if (vnode === root || (root == null ? void 0 : root.type) === Fragment && root.children.includes(vnode)) {\n const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);\n for (const key2 in cssVars) {\n expectedMap.set(`--${key2}`, String(cssVars[key2]));\n }\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = `attribute`;\n mismatchKey = key;\n }\n }\n if (mismatchType) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${mismatchType} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key == null ? void 0 : key.trim();\n value = value == null ? void 0 : value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(\n el,\n key,\n null,\n props[key],\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n Object.defineProperty(el, \"__vnode\", {\n value: vnode,\n enumerable: false\n });\n Object.defineProperty(el, \"__vueParentComponent\", {\n value: parentComponent,\n enumerable: false\n });\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(\n el,\n n2,\n oldProps,\n newProps,\n parentComponent,\n parentSuspense,\n namespace\n );\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(\n el,\n key,\n prev,\n next,\n namespace,\n n1.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(\n el,\n n2,\n oldProps,\n newProps,\n parentComponent,\n parentSuspense,\n namespace\n );\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key))\n continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(\n el,\n key,\n prev,\n next,\n namespace,\n vnode.children,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n invalidateJob(instance.update);\n instance.effect.dirty = true;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode) {\n initialVNode.type.__asyncLoader().then(\n // note: we are moving the render call into an async callback,\n // which means it won't track dependencies - but it's ok because\n // a server-rendered async wrapper is already in resolved state\n // and it will never need to change.\n () => !instance.isUnmounted && hydrateSubTree()\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n const effect = instance.effect = new ReactiveEffect(\n componentUpdateFn,\n NOOP,\n () => queueJob(update),\n instance.scope\n // track it in component's effect scope\n );\n const update = instance.update = () => {\n if (effect.dirty) {\n effect.run();\n }\n };\n update.id = instance.uid;\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n update.ownerInstance = instance;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++)\n newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs\n } = vnode;\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n optimized,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, update, subTree, um } = instance;\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (update) {\n update.active = false;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n return hostNextSibling(vnode.anchor || vnode.el);\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n container._vnode = vnode;\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, update }, allowed) {\n effect.allowRecurse = update.allowRecurse = allowed;\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\n\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!target) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = n2.targetAnchor = createText(\"\");\n if (target) {\n insert(targetAnchor, target);\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n } else if (target) {\n mount(target, targetAnchor);\n }\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n }\n updateCssVars(n2);\n },\n remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;\n if (target) {\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetAnchor = targetNode;\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n targetAnchor = nextSibling(targetAnchor);\n if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n hydrateChildren(\n targetNode,\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.children[0].el;\n while (node && node !== vnode.targetAnchor) {\n if (node.nodeType === 1)\n node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && hmrDirtyComponents.has(n2.type)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst InternalObjectKey = `__vInternal`;\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag |= -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props)\n return null;\n return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false) {\n const { props, ref, patchFlag, children } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition: vnode.transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !(InternalObjectKey in children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n attrsProxy: null,\n slotsProxy: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key]))\n setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1)\n setters.forEach((set) => set(v));\n else\n setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function.`);\n }\n }\n}\nfunction getAttrsProxy(instance) {\n return instance.attrsProxy || (instance.attrsProxy = new Proxy(\n instance.attrs,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(instance, \"get\", \"$attrs\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n } : {\n get(target, key) {\n track(instance, \"get\", \"$attrs\");\n return target[key];\n }\n }\n ));\n}\nfunction getSlotsProxy(instance) {\n return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n }));\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n return Object.freeze({\n get attrs() {\n return getAttrsProxy(instance);\n },\n get slots() {\n return getSlotsProxy(instance);\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n get attrs() {\n return getAttrsProxy(instance);\n },\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getExposeProxy(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const camelizedName = camelize(name);\n const hyphenatedName = hyphenate(name);\n const res = customRef((track, trigger) => {\n let localValue;\n watchSyncEffect(() => {\n const propValue = props[name];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps)) && hasChanged(value, localValue)) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, options.set ? options.set(value) : value);\n }\n };\n });\n const modifierKey = name === \"modelValue\" ? \"modelModifiers\" : `${name}Modifiers`;\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? props[modifierKey] || {} : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(obj.value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.4.21\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useModel, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/**\n* @vue/runtime-dom v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { h, BaseTransition, BaseTransitionPropsValidators, assertNumber, getCurrentInstance, warn, watchPostEffect, onMounted, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { extend, isObject, toNumber, isArray, isString, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isOn, isModelListener, isFunction, camelize as camelize$1, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? { is } : void 0);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling))\n break;\n }\n } else {\n templateContainer.innerHTML = namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content;\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);\nTransition.displayName = \"Transition\";\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\")\n return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOriginalDisplay = Symbol(\"_vod\");\nconst vShowHidden = Symbol(\"_vsh\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue)\n return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.getCssVars = () => getter(instance.proxy);\n }\n const setVars = () => {\n const vars = getter(instance.proxy);\n setVarsOnVNode(instance.subTree, vars);\n updateTeleports(vars);\n };\n watchPostEffect(setVars);\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor)\n break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n cssText += `--${key}: ${vars[key]};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nconst displayRE = /(^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n let hasControlledDisplay = false;\n if (next && !isCssString) {\n if (prev) {\n if (!isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n } else {\n for (const prevStyle of prev.split(\";\")) {\n const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n }\n for (const key in next) {\n if (key === \"display\") {\n hasControlledDisplay = true;\n }\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n hasControlledDisplay = displayRE.test(next);\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOriginalDisplay in el) {\n el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n if (el[vShowHidden]) {\n style.display = \"none\";\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null)\n val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n const isBoolean = isSpecialBooleanAttr(key);\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(key, isBoolean ? \"\" : value);\n }\n }\n}\n\nfunction patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (prevChildren) {\n unmountChildren(prevChildren, parentComponent, parentSuspense);\n }\n el[key] = value == null ? \"\" : value;\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n const newValue = value == null ? \"\" : value;\n if (oldValue !== newValue || !(\"_value\" in el)) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n el._value = value;\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(nextValue, instance);\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(\n el,\n key,\n nextValue,\n prevChildren,\n parentComponent,\n parentSuspense,\n unmountChildren\n );\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, hydrate2) {\n const Comp = defineComponent(options);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, hydrate2);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {\n return /* @__PURE__ */ defineCustomElement(options, hydrate);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, hydrate2) {\n super();\n this._def = _def;\n this._props = _props;\n /**\n * @internal\n */\n this._instance = null;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._ob = null;\n if (this.shadowRoot && hydrate2) {\n hydrate2(this._createVNode(), this.shadowRoot);\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n this.attachShadow({ mode: \"open\" });\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n }\n connectedCallback() {\n this._connected = true;\n if (!this._instance) {\n if (this._resolved) {\n this._update();\n } else {\n this._resolveDef();\n }\n }\n }\n disconnectedCallback() {\n this._connected = false;\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n nextTick(() => {\n if (!this._connected) {\n render(null, this.shadowRoot);\n this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n this._resolved = true;\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n this._applyStyles(styles);\n this._update();\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n asyncDef().then((def) => resolve(def, true));\n } else {\n resolve(this._def);\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key], true, false);\n }\n }\n for (const key of declaredPropKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val);\n }\n });\n }\n }\n _setAttr(key) {\n let value = this.getAttribute(key);\n const camelKey = camelize$1(key);\n if (this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = true) {\n if (val !== this._props[key]) {\n this._props[key] = val;\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this.shadowRoot);\n }\n _createVNode() {\n const vnode = createVNode(this._def, extend({}, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this.shadowRoot.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(event, {\n detail: args\n })\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n instance.parent = parent._instance;\n instance.provides = parent._instance.provides;\n break;\n }\n }\n };\n }\n return vnode;\n }\n _applyStyles(styles) {\n if (styles) {\n styles.forEach((css) => {\n const s = document.createElement(\"style\");\n s.textContent = css;\n this.shadowRoot.appendChild(s);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (this._styles || (this._styles = [])).push(s);\n }\n });\n }\n }\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst TransitionGroupImpl = {\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = children;\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n if (prevChildren) {\n for (let i = 0; i < prevChildren.length; i++) {\n const child = prevChildren[i];\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n positionMap.set(child, child.el.getBoundingClientRect());\n }\n }\n return createVNode(tag, null, children);\n };\n }\n};\nconst removeMode = (props) => delete props.mode;\n/* @__PURE__ */ removeMode(TransitionGroupImpl.props);\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing)\n return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing)\n return;\n const elValue = number || el.type === \"number\" ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n if (isArray(value)) {\n el.checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n el.checked = value.has(vnode.props.value);\n } else if (value !== oldValue) {\n el.checked = looseEqual(value, getCheckboxValue(el, true));\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value, modifiers: { number } }) {\n setSelected(el, value, number);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value, modifiers: { number } }) {\n if (!el._assigning) {\n setSelected(el, value, number);\n }\n }\n};\nfunction setSelected(el, value, number) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.includes(\n number ? looseToNumber(optionValue) : optionValue\n );\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i)\n el.selectedIndex = i;\n return;\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers))\n return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {\n return fn(event);\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container)\n return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n }\n container.innerHTML = \"\";\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","/**\n* vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { initCustomFormatter, warn } from '@vue/runtime-dom';\nexport * from '@vue/runtime-dom';\n\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nconst compile = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n }\n};\n\nexport { compile };\n","export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-expect-error navigator and windows are not available in all environments\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof globalThis !== 'undefined' && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = globalThis.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const.js';\nimport { now } from './time.js';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise((resolve) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","import { getDevtoolsGlobalHook, getTarget, isProxyAvailable } from './env.js';\nimport { HOOK_SETUP } from './const.js';\nimport { ApiProxy } from './proxy.js';\nexport * from './api/index.js';\nexport * from './plugin.js';\nexport * from './time.js';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy) {\n setupFn(proxy.proxiedTarget);\n }\n }\n}\n","/*!\n * vue-router v4.3.0\n * (c) 2024 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, shallowReactive, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof document !== 'undefined';\n\nfunction isESModule(obj) {\n return obj.__esModule || obj[Symbol.toStringTag] === 'Module';\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n const newParams = {};\n for (const key in params) {\n const value = params[key];\n newParams[key] = isArray(value)\n ? value.map(fn)\n : fn(value);\n }\n return newParams;\n}\nconst noop = () => { };\n/**\n * Typesafe alternative to Array.isArray\n * https://github.com/microsoft/TypeScript/pull/48228\n */\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\n // avoid using ...args as it breaks in older Edge builds\n const args = Array.from(arguments).slice(1);\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\n}\n\n/**\n * Encoding Rules ⣠= Space Path: ⣠\" < > # ? { } Query: ⣠\" < > # & = Hash: ⣠\"\n * < > `\n *\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n * defines some extra characters to be encoded. Most browsers do not encode them\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n * plus `-._~`. This extra safety should be applied to query by patching the\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\n * encoded everywhere because some browsers like FF encode it when directly\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n */\n// const EXTRA_RESERVED_RE = /[!'()*]/g\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\nconst HASH_RE = /#/g; // %23\nconst AMPERSAND_RE = /&/g; // %26\nconst SLASH_RE = /\\//g; // %2F\nconst EQUAL_RE = /=/g; // %3D\nconst IM_RE = /\\?/g; // %3F\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\n * seems to be less flexible than not doing so and I can't find out the legacy\n * systems requiring this for regular requests like text/html. In the standard,\n * the encoding of the plus character is only mentioned for\n * application/x-www-form-urlencoded\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n * leave the plus character as is in queries. To be more flexible, we allow the\n * plus character on the query, but it can also be manually encoded by the user.\n *\n * Resources:\n * - https://url.spec.whatwg.org/#urlencoded-parsing\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n */\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\nconst ENC_CARET_RE = /%5E/g; // ^\nconst ENC_BACKTICK_RE = /%60/g; // `\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\nconst ENC_PIPE_RE = /%7C/g; // |\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\nconst ENC_SPACE_RE = /%20/g; // }\n/**\n * Encode characters that need to be encoded on the path, search and hash\n * sections of the URL.\n *\n * @internal\n * @param text - string to encode\n * @returns encoded string\n */\nfunction commonEncode(text) {\n return encodeURI('' + text)\n .replace(ENC_PIPE_RE, '|')\n .replace(ENC_BRACKET_OPEN_RE, '[')\n .replace(ENC_BRACKET_CLOSE_RE, ']');\n}\n/**\n * Encode characters that need to be encoded on the hash section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeHash(text) {\n return commonEncode(text)\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^');\n}\n/**\n * Encode characters that need to be encoded query values on the query\n * section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeQueryValue(text) {\n return (commonEncode(text)\n // Encode the space as +, encode the + to differentiate it from the space\n .replace(PLUS_RE, '%2B')\n .replace(ENC_SPACE_RE, '+')\n .replace(HASH_RE, '%23')\n .replace(AMPERSAND_RE, '%26')\n .replace(ENC_BACKTICK_RE, '`')\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^'));\n}\n/**\n * Like `encodeQueryValue` but also encodes the `=` character.\n *\n * @param text - string to encode\n */\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodePath(text) {\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL as a\n * param. This function encodes everything {@link encodePath} does plus the\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n * string instead.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeParam(text) {\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) {\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\n }\n return '' + text;\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\n/**\n * Transforms a URI into a normalized history location\n *\n * @param parseQuery\n * @param location - URI to normalize\n * @param currentLocation - current absolute location. Allows resolving relative\n * paths. Must start with `/`. Defaults to `/`\n * @returns a normalized history location\n */\nfunction parseURL(parseQuery, location, currentLocation = '/') {\n let path, query = {}, searchString = '', hash = '';\n // Could use URL and URLSearchParams but IE 11 doesn't support it\n // TODO: move to new URL()\n const hashPos = location.indexOf('#');\n let searchPos = location.indexOf('?');\n // the hash appears before the search, so it's not part of the search string\n if (hashPos < searchPos && hashPos >= 0) {\n searchPos = -1;\n }\n if (searchPos > -1) {\n path = location.slice(0, searchPos);\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\n query = parseQuery(searchString);\n }\n if (hashPos > -1) {\n path = path || location.slice(0, hashPos);\n // keep the # character\n hash = location.slice(hashPos, location.length);\n }\n // no search and no query\n path = resolveRelativePath(path != null ? path : location, currentLocation);\n // empty path means a relative query or hash `?foo=f`, `#thing`\n return {\n fullPath: path + (searchString && '?') + searchString + hash,\n path,\n query,\n hash: decode(hash),\n };\n}\n/**\n * Stringifies a URL object\n *\n * @param stringifyQuery\n * @param location\n */\nfunction stringifyURL(stringifyQuery, location) {\n const query = location.query ? stringifyQuery(location.query) : '';\n return location.path + (query && '?') + query + (location.hash || '');\n}\n/**\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n *\n * @param pathname - location.pathname\n * @param base - base to strip off\n */\nfunction stripBase(pathname, base) {\n // no base or base is not found at the beginning\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n return pathname;\n return pathname.slice(base.length) || '/';\n}\n/**\n * Checks if two RouteLocation are equal. This means that both locations are\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\n * parameters and `hash` are the same\n *\n * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n * @param a - first {@link RouteLocation}\n * @param b - second {@link RouteLocation}\n */\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n const aLastIndex = a.matched.length - 1;\n const bLastIndex = b.matched.length - 1;\n return (aLastIndex > -1 &&\n aLastIndex === bLastIndex &&\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\n isSameRouteLocationParams(a.params, b.params) &&\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\n a.hash === b.hash);\n}\n/**\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\n * considered equal to the `RouteRecord` they are aliasing.\n *\n * @param a - first {@link RouteRecord}\n * @param b - second {@link RouteRecord}\n */\nfunction isSameRouteRecord(a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\n return false;\n }\n return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n return isArray(a)\n ? isEquivalentArray(a, b)\n : isArray(b)\n ? isEquivalentArray(b, a)\n : a === b;\n}\n/**\n * Check if two arrays are the same or if an array with one single entry is the\n * same as another primitive value. Used to check query and parameters\n *\n * @param a - array of values\n * @param b - array of values or a single value\n */\nfunction isEquivalentArray(a, b) {\n return isArray(b)\n ? a.length === b.length && a.every((value, i) => value === b[i])\n : a.length === 1 && a[0] === b;\n}\n/**\n * Resolves a relative path that starts with `.`.\n *\n * @param to - path location we are resolving\n * @param from - currentLocation.path, should start with `/`\n */\nfunction resolveRelativePath(to, from) {\n if (to.startsWith('/'))\n return to;\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n return to;\n }\n if (!to)\n return from;\n const fromSegments = from.split('/');\n const toSegments = to.split('/');\n const lastToSegment = toSegments[toSegments.length - 1];\n // make . and ./ the same (../ === .., ../../ === ../..)\n // this is the same behavior as new URL()\n if (lastToSegment === '..' || lastToSegment === '.') {\n toSegments.push('');\n }\n let position = fromSegments.length - 1;\n let toPosition;\n let segment;\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n segment = toSegments[toPosition];\n // we stay on the same position\n if (segment === '.')\n continue;\n // go up in the from array\n if (segment === '..') {\n // we can't go below zero, but we still need to increment toPosition\n if (position > 1)\n position--;\n // continue\n }\n // we reached a non-relative path, we stop here\n else\n break;\n }\n return (fromSegments.slice(0, position).join('/') +\n '/' +\n toSegments.slice(toPosition).join('/'));\n}\n\nvar NavigationType;\n(function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\n/**\n * Starting location for Histories\n */\nconst START = '';\n// Generic utils\n/**\n * Normalizes a base by removing any trailing slash and reading the base tag if\n * present.\n *\n * @param base - base to normalize\n */\nfunction normalizeBase(base) {\n if (!base) {\n if (isBrowser) {\n // respect <base> tag\n const baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\n }\n else {\n base = '/';\n }\n }\n // ensure leading slash when it was removed by the regex above avoid leading\n // slash with hash because the file could be read from the disk like file://\n // and the leading slash would cause problems\n if (base[0] !== '/' && base[0] !== '#')\n base = '/' + base;\n // remove the trailing slash so all other method can just do `base + fullPath`\n // to build an href\n return removeTrailingSlash(base);\n}\n// remove any character before the hash\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n return base.replace(BEFORE_HASH_RE, '#') + location;\n}\n\nfunction getElementPosition(el, offset) {\n const docRect = document.documentElement.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n behavior: offset.behavior,\n left: elRect.left - docRect.left - (offset.left || 0),\n top: elRect.top - docRect.top - (offset.top || 0),\n };\n}\nconst computeScrollPosition = () => ({\n left: window.scrollX,\n top: window.scrollY,\n});\nfunction scrollToPosition(position) {\n let scrollToOptions;\n if ('el' in position) {\n const positionEl = position.el;\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\n /**\n * `id`s can accept pretty much any characters, including CSS combinators\n * like `>` or `~`. It's still possible to retrieve elements using\n * `document.getElementById('~')` but it needs to be escaped when using\n * `document.querySelector('#\\\\~')` for it to be valid. The only\n * requirements for `id`s are them to be unique on the page and to not be\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\n * be properly escaped for it to work with `querySelector`. We could check\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\n * would make things inconsistent since they are valid characters for an\n * `id` but would need to be escaped when using `querySelector`, breaking\n * their usage and ending up in no selector returned. Selectors need to be\n * escaped:\n *\n * - `#1-thing` becomes `#\\31 -thing`\n * - `#with~symbols` becomes `#with\\\\~symbols`\n *\n * - More information about the topic can be found at\n * https://mathiasbynens.be/notes/html5-id-class.\n * - Practical example: https://mathiasbynens.be/demo/html5-id\n */\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n try {\n const foundEl = document.querySelector(position.el);\n if (isIdSelector && foundEl) {\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n // return to avoid other warnings\n return;\n }\n }\n catch (err) {\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n // return to avoid other warnings\n return;\n }\n }\n }\n const el = typeof positionEl === 'string'\n ? isIdSelector\n ? document.getElementById(positionEl.slice(1))\n : document.querySelector(positionEl)\n : positionEl;\n if (!el) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n return;\n }\n scrollToOptions = getElementPosition(el, position);\n }\n else {\n scrollToOptions = position;\n }\n if ('scrollBehavior' in document.documentElement.style)\n window.scrollTo(scrollToOptions);\n else {\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n }\n}\nfunction getScrollKey(path, delta) {\n const position = history.state ? history.state.position - delta : -1;\n return position + path;\n}\nconst scrollPositions = new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n const scroll = scrollPositions.get(key);\n // consume it so it's not used again\n scrollPositions.delete(key);\n return scroll;\n}\n// TODO: RFC about how to save scroll position\n/**\n * ScrollBehavior instance used by the router to compute and restore the scroll\n * position when navigating.\n */\n// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\n// // returns a scroll position that can be saved in history\n// compute(): ScrollPositionEntry\n// // can take an extended ScrollPositionEntry\n// scroll(position: ScrollPosition): void\n// }\n// export const scrollHandler: ScrollHandler<ScrollPosition> = {\n// compute: computeScroll,\n// scroll: scrollToPosition,\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\n/**\n * Creates a normalized history location from a window.location object\n * @param base - The base path\n * @param location - The window.location object\n */\nfunction createCurrentLocation(base, location) {\n const { pathname, search, hash } = location;\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\n const hashPos = base.indexOf('#');\n if (hashPos > -1) {\n let slicePos = hash.includes(base.slice(hashPos))\n ? base.slice(hashPos).length\n : 1;\n let pathFromHash = hash.slice(slicePos);\n // prepend the starting slash to hash so the url starts with /#\n if (pathFromHash[0] !== '/')\n pathFromHash = '/' + pathFromHash;\n return stripBase(pathFromHash, '');\n }\n const path = stripBase(pathname, base);\n return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n let listeners = [];\n let teardowns = [];\n // TODO: should it be a stack? a Dict. Check if the popstate listener\n // can trigger twice\n let pauseState = null;\n const popStateHandler = ({ state, }) => {\n const to = createCurrentLocation(base, location);\n const from = currentLocation.value;\n const fromState = historyState.value;\n let delta = 0;\n if (state) {\n currentLocation.value = to;\n historyState.value = state;\n // ignore the popstate and reset the pauseState\n if (pauseState && pauseState === from) {\n pauseState = null;\n return;\n }\n delta = fromState ? state.position - fromState.position : 0;\n }\n else {\n replace(to);\n }\n // Here we could also revert the navigation by calling history.go(-delta)\n // this listener will have to be adapted to not trigger again and to wait for the url\n // to be updated before triggering the listeners. Some kind of validation function would also\n // need to be passed to the listeners so the navigation can be accepted\n // call all listeners\n listeners.forEach(listener => {\n listener(currentLocation.value, from, {\n delta,\n type: NavigationType.pop,\n direction: delta\n ? delta > 0\n ? NavigationDirection.forward\n : NavigationDirection.back\n : NavigationDirection.unknown,\n });\n });\n };\n function pauseListeners() {\n pauseState = currentLocation.value;\n }\n function listen(callback) {\n // set up the listener and prepare teardown callbacks\n listeners.push(callback);\n const teardown = () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n teardowns.push(teardown);\n return teardown;\n }\n function beforeUnloadListener() {\n const { history } = window;\n if (!history.state)\n return;\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\n }\n function destroy() {\n for (const teardown of teardowns)\n teardown();\n teardowns = [];\n window.removeEventListener('popstate', popStateHandler);\n window.removeEventListener('beforeunload', beforeUnloadListener);\n }\n // set up the listeners and prepare teardown callbacks\n window.addEventListener('popstate', popStateHandler);\n // TODO: could we use 'pagehide' or 'visibilitychange' instead?\n // https://developer.chrome.com/blog/page-lifecycle-api/\n window.addEventListener('beforeunload', beforeUnloadListener, {\n passive: true,\n });\n return {\n pauseListeners,\n listen,\n destroy,\n };\n}\n/**\n * Creates a state object\n */\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n return {\n back,\n current,\n forward,\n replaced,\n position: window.history.length,\n scroll: computeScroll ? computeScrollPosition() : null,\n };\n}\nfunction useHistoryStateNavigation(base) {\n const { history, location } = window;\n // private variables\n const currentLocation = {\n value: createCurrentLocation(base, location),\n };\n const historyState = { value: history.state };\n // build current history entry as this is a fresh navigation\n if (!historyState.value) {\n changeLocation(currentLocation.value, {\n back: null,\n current: currentLocation.value,\n forward: null,\n // the length is off by one, we need to decrease it\n position: history.length - 1,\n replaced: true,\n // don't add a scroll as the user may have an anchor, and we want\n // scrollBehavior to be triggered without a saved position\n scroll: null,\n }, true);\n }\n function changeLocation(to, state, replace) {\n /**\n * if a base tag is provided, and we are on a normal domain, we have to\n * respect the provided `base` attribute because pushState() will use it and\n * potentially erase anything before the `#` like at\n * https://github.com/vuejs/router/issues/685 where a base of\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\n * there is no host, the `<base>` tag makes no sense and if there isn't a\n * base tag we can just use everything after the `#`.\n */\n const hashIndex = base.indexOf('#');\n const url = hashIndex > -1\n ? (location.host && document.querySelector('base')\n ? base\n : base.slice(hashIndex)) + to\n : createBaseLocation() + base + to;\n try {\n // BROWSER QUIRK\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n historyState.value = state;\n }\n catch (err) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('Error with push/replace State', err);\n }\n else {\n console.error(err);\n }\n // Force the navigation, this also resets the call count\n location[replace ? 'replace' : 'assign'](url);\n }\n }\n function replace(to, data) {\n const state = assign({}, history.state, buildState(historyState.value.back, \n // keep back and forward entries but override current position\n to, historyState.value.forward, true), data, { position: historyState.value.position });\n changeLocation(to, state, true);\n currentLocation.value = to;\n }\n function push(to, data) {\n // Add to current entry the information of where we are going\n // as well as saving the current position\n const currentState = assign({}, \n // use current history state to gracefully handle a wrong call to\n // history.replaceState\n // https://github.com/vuejs/router/issues/366\n historyState.value, history.state, {\n forward: to,\n scroll: computeScrollPosition(),\n });\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\n `history.replaceState(history.state, '', url)\\n\\n` +\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\n }\n changeLocation(currentState.current, currentState, true);\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n changeLocation(to, state, false);\n currentLocation.value = to;\n }\n return {\n location: currentLocation,\n state: historyState,\n push,\n replace,\n };\n}\n/**\n * Creates an HTML5 history. Most common history for single page applications.\n *\n * @param base -\n */\nfunction createWebHistory(base) {\n base = normalizeBase(base);\n const historyNavigation = useHistoryStateNavigation(base);\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n function go(delta, triggerListeners = true) {\n if (!triggerListeners)\n historyListeners.pauseListeners();\n history.go(delta);\n }\n const routerHistory = assign({\n // it's overridden right after\n location: '',\n base,\n go,\n createHref: createHref.bind(null, base),\n }, historyNavigation, historyListeners);\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => historyNavigation.location.value,\n });\n Object.defineProperty(routerHistory, 'state', {\n enumerable: true,\n get: () => historyNavigation.state.value,\n });\n return routerHistory;\n}\n\n/**\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n *\n * @param base - Base applied to all urls, defaults to '/'\n * @returns a history object that can be passed to the router constructor\n */\nfunction createMemoryHistory(base = '') {\n let listeners = [];\n let queue = [START];\n let position = 0;\n base = normalizeBase(base);\n function setLocation(location) {\n position++;\n if (position !== queue.length) {\n // we are in the middle, we remove everything from here in the queue\n queue.splice(position);\n }\n queue.push(location);\n }\n function triggerListeners(to, from, { direction, delta }) {\n const info = {\n direction,\n delta,\n type: NavigationType.pop,\n };\n for (const callback of listeners) {\n callback(to, from, info);\n }\n }\n const routerHistory = {\n // rewritten by Object.defineProperty\n location: START,\n // TODO: should be kept in queue\n state: {},\n base,\n createHref: createHref.bind(null, base),\n replace(to) {\n // remove current entry and decrement position\n queue.splice(position--, 1);\n setLocation(to);\n },\n push(to, data) {\n setLocation(to);\n },\n listen(callback) {\n listeners.push(callback);\n return () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n },\n destroy() {\n listeners = [];\n queue = [START];\n position = 0;\n },\n go(delta, shouldTrigger = true) {\n const from = this.location;\n const direction = \n // we are considering delta === 0 going forward, but in abstract mode\n // using 0 for the delta doesn't make sense like it does in html5 where\n // it reloads the page\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\n if (shouldTrigger) {\n triggerListeners(this.location, from, {\n direction,\n delta,\n });\n }\n },\n };\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => queue[position],\n });\n return routerHistory;\n}\n\n/**\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n * handle any URL is not possible.\n *\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n * calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything\n * after the `#`).\n *\n * @example\n * ```js\n * // at https://example.com/folder\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n * // you should avoid doing this because it changes the original url and breaks copying urls\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n *\n * // at file:///usr/etc/folder/index.html\n * // for locations with no `host`, the base is ignored\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n * ```\n */\nfunction createWebHashHistory(base) {\n // Make sure this implementation is fine in terms of encoding, specially for IE11\n // for `file://`, directly use the pathname and ignore the base\n // location.pathname contains an initial `/` even at the root: `https://example.com`\n base = location.host ? base || location.pathname + location.search : '';\n // allow the user to provide a `#` in the middle: `/base/#/app`\n if (!base.includes('#'))\n base += '#';\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\n }\n return createWebHistory(base);\n}\n\nfunction isRouteLocation(route) {\n return typeof route === 'string' || (route && typeof route === 'object');\n}\nfunction isRouteName(name) {\n return typeof name === 'string' || typeof name === 'symbol';\n}\n\n/**\n * Initial route location where the router is. Can be used in navigation guards\n * to differentiate the initial navigation.\n *\n * @example\n * ```js\n * import { START_LOCATION } from 'vue-router'\n *\n * router.beforeEach((to, from) => {\n * if (from === START_LOCATION) {\n * // initial navigation\n * }\n * })\n * ```\n */\nconst START_LOCATION_NORMALIZED = {\n path: '/',\n name: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n redirectedFrom: undefined,\n};\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\n/**\n * Enumeration with all possible types for navigation failures. Can be passed to\n * {@link isNavigationFailure} to check for specific failures.\n */\nvar NavigationFailureType;\n(function (NavigationFailureType) {\n /**\n * An aborted navigation is a navigation that failed because a navigation\n * guard returned `false` or called `next(false)`\n */\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n /**\n * A cancelled navigation is a navigation that failed because a more recent\n * navigation finished started (not necessarily finished).\n */\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n /**\n * A duplicated navigation is a navigation that failed because it was\n * initiated while already being at the exact same location.\n */\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\n// DEV only debug messages\nconst ErrorTypeMessages = {\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\n : ''}`;\n },\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n },\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n },\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n },\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n },\n};\n/**\n * Creates a typed NavigationFailure object.\n * @internal\n * @param type - NavigationFailureType\n * @param params - { from, to }\n */\nfunction createRouterError(type, params) {\n // keep full error messages in cjs versions\n if ((process.env.NODE_ENV !== 'production') || !true) {\n return assign(new Error(ErrorTypeMessages[type](params)), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n else {\n return assign(new Error(), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n}\nfunction isNavigationFailure(error, type) {\n return (error instanceof Error &&\n NavigationFailureSymbol in error &&\n (type == null || !!(error.type & type)));\n}\nconst propertiesToLog = ['params', 'query', 'hash'];\nfunction stringifyRoute(to) {\n if (typeof to === 'string')\n return to;\n if (to.path != null)\n return to.path;\n const location = {};\n for (const key of propertiesToLog) {\n if (key in to)\n location[key] = to[key];\n }\n return JSON.stringify(location, null, 2);\n}\n\n// default pattern for a param: non-greedy everything but /\nconst BASE_PARAM_PATTERN = '[^/]+?';\nconst BASE_PATH_PARSER_OPTIONS = {\n sensitive: false,\n strict: false,\n start: true,\n end: true,\n};\n// Special Regex characters that must be escaped in static tokens\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\n *\n * @param segments - array of segments returned by tokenizePath\n * @param extraOptions - optional options for the regexp\n * @returns a PathParser\n */\nfunction tokensToParser(segments, extraOptions) {\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\n const score = [];\n // the regexp as a string\n let pattern = options.start ? '^' : '';\n // extracted keys\n const keys = [];\n for (const segment of segments) {\n // the root segment needs special treatment\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\n // allow trailing slash\n if (options.strict && !segment.length)\n pattern += '/';\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n const token = segment[tokenIndex];\n // resets the score if we are inside a sub-segment /:a-other-:b\n let subSegmentScore = 40 /* PathScore.Segment */ +\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\n if (token.type === 0 /* TokenType.Static */) {\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n pattern += '/';\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\n subSegmentScore += 40 /* PathScore.Static */;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional, regexp } = token;\n keys.push({\n name: value,\n repeatable,\n optional,\n });\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\n // the user provided a custom regexp /:id(\\\\d+)\n if (re !== BASE_PARAM_PATTERN) {\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\n // make sure the regexp is valid before using it\n try {\n new RegExp(`(${re})`);\n }\n catch (err) {\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\n err.message);\n }\n }\n // when we repeat we must take care of the repeating leading slash\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n subPattern =\n // avoid an optional / if there are more segments e.g. /:p?-static\n // or /:p?-:p2\n optional && segment.length < 2\n ? `(?:/${subPattern})`\n : '/' + subPattern;\n if (optional)\n subPattern += '?';\n pattern += subPattern;\n subSegmentScore += 20 /* PathScore.Dynamic */;\n if (optional)\n subSegmentScore += -8 /* PathScore.BonusOptional */;\n if (repeatable)\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\n if (re === '.*')\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\n }\n segmentScores.push(subSegmentScore);\n }\n // an empty array like /home/ -> [[{home}], []]\n // if (!segment.length) pattern += '/'\n score.push(segmentScores);\n }\n // only apply the strict bonus to the last score\n if (options.strict && options.end) {\n const i = score.length - 1;\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\n }\n // TODO: dev only warn double trailing slash\n if (!options.strict)\n pattern += '/?';\n if (options.end)\n pattern += '$';\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\n else if (options.strict)\n pattern += '(?:/|$)';\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\n function parse(path) {\n const match = path.match(re);\n const params = {};\n if (!match)\n return null;\n for (let i = 1; i < match.length; i++) {\n const value = match[i] || '';\n const key = keys[i - 1];\n params[key.name] = value && key.repeatable ? value.split('/') : value;\n }\n return params;\n }\n function stringify(params) {\n let path = '';\n // for optional parameters to allow to be empty\n let avoidDuplicatedSlash = false;\n for (const segment of segments) {\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\n path += '/';\n avoidDuplicatedSlash = false;\n for (const token of segment) {\n if (token.type === 0 /* TokenType.Static */) {\n path += token.value;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional } = token;\n const param = value in params ? params[value] : '';\n if (isArray(param) && !repeatable) {\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n }\n const text = isArray(param)\n ? param.join('/')\n : param;\n if (!text) {\n if (optional) {\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\n if (segment.length < 2) {\n // remove the last slash as we could be at the end\n if (path.endsWith('/'))\n path = path.slice(0, -1);\n // do not append a slash on the next iteration\n else\n avoidDuplicatedSlash = true;\n }\n }\n else\n throw new Error(`Missing required param \"${value}\"`);\n }\n path += text;\n }\n }\n }\n // avoid empty path when we have multiple optional params\n return path || '/';\n }\n return {\n re,\n score,\n keys,\n parse,\n stringify,\n };\n}\n/**\n * Compares an array of numbers as used in PathParser.score and returns a\n * number. This function can be used to `sort` an array\n *\n * @param a - first array of numbers\n * @param b - second array of numbers\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n * should be sorted first\n */\nfunction compareScoreArray(a, b) {\n let i = 0;\n while (i < a.length && i < b.length) {\n const diff = b[i] - a[i];\n // only keep going if diff === 0\n if (diff)\n return diff;\n i++;\n }\n // if the last subsegment was Static, the shorter segments should be sorted first\n // otherwise sort the longest segment first\n if (a.length < b.length) {\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? -1\n : 1;\n }\n else if (a.length > b.length) {\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? 1\n : -1;\n }\n return 0;\n}\n/**\n * Compare function that can be used with `sort` to sort an array of PathParser\n *\n * @param a - first PathParser\n * @param b - second PathParser\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n */\nfunction comparePathParserScore(a, b) {\n let i = 0;\n const aScore = a.score;\n const bScore = b.score;\n while (i < aScore.length && i < bScore.length) {\n const comp = compareScoreArray(aScore[i], bScore[i]);\n // do not return if both are equal\n if (comp)\n return comp;\n i++;\n }\n if (Math.abs(bScore.length - aScore.length) === 1) {\n if (isLastScoreNegative(aScore))\n return 1;\n if (isLastScoreNegative(bScore))\n return -1;\n }\n // if a and b share the same score entries but b has more, sort b first\n return bScore.length - aScore.length;\n // this is the ternary version\n // return aScore.length < bScore.length\n // ? 1\n // : aScore.length > bScore.length\n // ? -1\n // : 0\n}\n/**\n * This allows detecting splats at the end of a path: /home/:id(.*)*\n *\n * @param score - score to check\n * @returns true if the last entry is negative\n */\nfunction isLastScoreNegative(score) {\n const last = score[score.length - 1];\n return score.length > 0 && last[last.length - 1] < 0;\n}\n\nconst ROOT_TOKEN = {\n type: 0 /* TokenType.Static */,\n value: '',\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\n// After some profiling, the cache seems to be unnecessary because tokenizePath\n// (the slowest part of adding a route) is very fast\n// const tokenCache = new Map<string, Token[][]>()\nfunction tokenizePath(path) {\n if (!path)\n return [[]];\n if (path === '/')\n return [[ROOT_TOKEN]];\n if (!path.startsWith('/')) {\n throw new Error((process.env.NODE_ENV !== 'production')\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\n : `Invalid path \"${path}\"`);\n }\n // if (tokenCache.has(path)) return tokenCache.get(path)!\n function crash(message) {\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n }\n let state = 0 /* TokenizerState.Static */;\n let previousState = state;\n const tokens = [];\n // the segment will always be valid because we get into the initial state\n // with the leading /\n let segment;\n function finalizeSegment() {\n if (segment)\n tokens.push(segment);\n segment = [];\n }\n // index on the path\n let i = 0;\n // char at index\n let char;\n // buffer of the value read\n let buffer = '';\n // custom regexp for a param\n let customRe = '';\n function consumeBuffer() {\n if (!buffer)\n return;\n if (state === 0 /* TokenizerState.Static */) {\n segment.push({\n type: 0 /* TokenType.Static */,\n value: buffer,\n });\n }\n else if (state === 1 /* TokenizerState.Param */ ||\n state === 2 /* TokenizerState.ParamRegExp */ ||\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\n if (segment.length > 1 && (char === '*' || char === '+'))\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n segment.push({\n type: 1 /* TokenType.Param */,\n value: buffer,\n regexp: customRe,\n repeatable: char === '*' || char === '+',\n optional: char === '*' || char === '?',\n });\n }\n else {\n crash('Invalid state to consume buffer');\n }\n buffer = '';\n }\n function addCharToBuffer() {\n buffer += char;\n }\n while (i < path.length) {\n char = path[i++];\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\n previousState = state;\n state = 4 /* TokenizerState.EscapeNext */;\n continue;\n }\n switch (state) {\n case 0 /* TokenizerState.Static */:\n if (char === '/') {\n if (buffer) {\n consumeBuffer();\n }\n finalizeSegment();\n }\n else if (char === ':') {\n consumeBuffer();\n state = 1 /* TokenizerState.Param */;\n }\n else {\n addCharToBuffer();\n }\n break;\n case 4 /* TokenizerState.EscapeNext */:\n addCharToBuffer();\n state = previousState;\n break;\n case 1 /* TokenizerState.Param */:\n if (char === '(') {\n state = 2 /* TokenizerState.ParamRegExp */;\n }\n else if (VALID_PARAM_RE.test(char)) {\n addCharToBuffer();\n }\n else {\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n }\n break;\n case 2 /* TokenizerState.ParamRegExp */:\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\n // it already works by escaping the closing )\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\n // is this really something people need since you can also write\n // /prefix_:p()_suffix\n if (char === ')') {\n // handle the escaped )\n if (customRe[customRe.length - 1] == '\\\\')\n customRe = customRe.slice(0, -1) + char;\n else\n state = 3 /* TokenizerState.ParamRegExpEnd */;\n }\n else {\n customRe += char;\n }\n break;\n case 3 /* TokenizerState.ParamRegExpEnd */:\n // same as finalizing a param\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n customRe = '';\n break;\n default:\n crash('Unknown state');\n break;\n }\n }\n if (state === 2 /* TokenizerState.ParamRegExp */)\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n consumeBuffer();\n finalizeSegment();\n // tokenCache.set(path, tokens)\n return tokens;\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\n const parser = tokensToParser(tokenizePath(record.path), options);\n // warn against params with the same name\n if ((process.env.NODE_ENV !== 'production')) {\n const existingKeys = new Set();\n for (const key of parser.keys) {\n if (existingKeys.has(key.name))\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n existingKeys.add(key.name);\n }\n }\n const matcher = assign(parser, {\n record,\n parent,\n // these needs to be populated by the parent\n children: [],\n alias: [],\n });\n if (parent) {\n // both are aliases or both are not aliases\n // we don't want to mix them because the order is used when\n // passing originalRecord in Matcher.addRoute\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\n parent.children.push(matcher);\n }\n return matcher;\n}\n\n/**\n * Creates a Router Matcher.\n *\n * @internal\n * @param routes - array of initial routes\n * @param globalOptions - global route options\n */\nfunction createRouterMatcher(routes, globalOptions) {\n // normalized ordered array of matchers\n const matchers = [];\n const matcherMap = new Map();\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n function getRecordMatcher(name) {\n return matcherMap.get(name);\n }\n function addRoute(record, parent, originalRecord) {\n // used later on to remove by name\n const isRootAdd = !originalRecord;\n const mainNormalizedRecord = normalizeRouteRecord(record);\n if ((process.env.NODE_ENV !== 'production')) {\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n }\n // we might be the child of an alias\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n const options = mergeOptions(globalOptions, record);\n // generate an array of records to correctly handle aliases\n const normalizedRecords = [\n mainNormalizedRecord,\n ];\n if ('alias' in record) {\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\n for (const alias of aliases) {\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\n // this allows us to hold a copy of the `components` option\n // so that async components cache is hold on the original record\n components: originalRecord\n ? originalRecord.record.components\n : mainNormalizedRecord.components,\n path: alias,\n // we might be the child of an alias\n aliasOf: originalRecord\n ? originalRecord.record\n : mainNormalizedRecord,\n // the aliases are always of the same kind as the original since they\n // are defined on the same record\n }));\n }\n }\n let matcher;\n let originalMatcher;\n for (const normalizedRecord of normalizedRecords) {\n const { path } = normalizedRecord;\n // Build up the path for nested routes if the child isn't an absolute\n // route. Only add the / delimiter if the child path isn't empty and if the\n // parent path doesn't have a trailing slash\n if (parent && path[0] !== '/') {\n const parentPath = parent.record.path;\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\n normalizedRecord.path =\n parent.record.path + (path && connectingSlash + path);\n }\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\n }\n // create the object beforehand, so it can be passed to children\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\n checkMissingParamsInAbsolutePath(matcher, parent);\n // if we are an alias we must tell the original record that we exist,\n // so we can be removed\n if (originalRecord) {\n originalRecord.alias.push(matcher);\n if ((process.env.NODE_ENV !== 'production')) {\n checkSameParams(originalRecord, matcher);\n }\n }\n else {\n // otherwise, the first record is the original and others are aliases\n originalMatcher = originalMatcher || matcher;\n if (originalMatcher !== matcher)\n originalMatcher.alias.push(matcher);\n // remove the route if named and only for the top record (avoid in nested calls)\n // this works because the original record is the first one\n if (isRootAdd && record.name && !isAliasRecord(matcher))\n removeRoute(record.name);\n }\n if (mainNormalizedRecord.children) {\n const children = mainNormalizedRecord.children;\n for (let i = 0; i < children.length; i++) {\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n }\n }\n // if there was no original record, then the first one was not an alias and all\n // other aliases (if any) need to reference this record when adding children\n originalRecord = originalRecord || matcher;\n // TODO: add normalized records for more flexibility\n // if (parent && isAliasRecord(originalRecord)) {\n // parent.children.push(originalRecord)\n // }\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\n // not be reached and pass through the catch all route\n if ((matcher.record.components &&\n Object.keys(matcher.record.components).length) ||\n matcher.record.name ||\n matcher.record.redirect) {\n insertMatcher(matcher);\n }\n }\n return originalMatcher\n ? () => {\n // since other matchers are aliases, they should be removed by the original matcher\n removeRoute(originalMatcher);\n }\n : noop;\n }\n function removeRoute(matcherRef) {\n if (isRouteName(matcherRef)) {\n const matcher = matcherMap.get(matcherRef);\n if (matcher) {\n matcherMap.delete(matcherRef);\n matchers.splice(matchers.indexOf(matcher), 1);\n matcher.children.forEach(removeRoute);\n matcher.alias.forEach(removeRoute);\n }\n }\n else {\n const index = matchers.indexOf(matcherRef);\n if (index > -1) {\n matchers.splice(index, 1);\n if (matcherRef.record.name)\n matcherMap.delete(matcherRef.record.name);\n matcherRef.children.forEach(removeRoute);\n matcherRef.alias.forEach(removeRoute);\n }\n }\n }\n function getRoutes() {\n return matchers;\n }\n function insertMatcher(matcher) {\n let i = 0;\n while (i < matchers.length &&\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\n // Adding children with empty path should still appear before the parent\n // https://github.com/vuejs/router/issues/1124\n (matcher.record.path !== matchers[i].record.path ||\n !isRecordChildOf(matcher, matchers[i])))\n i++;\n matchers.splice(i, 0, matcher);\n // only add the original record to the name map\n if (matcher.record.name && !isAliasRecord(matcher))\n matcherMap.set(matcher.record.name, matcher);\n }\n function resolve(location, currentLocation) {\n let matcher;\n let params = {};\n let path;\n let name;\n if ('name' in location && location.name) {\n matcher = matcherMap.get(location.name);\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n });\n // warn if the user is passing invalid params so they can debug it better when they get removed\n if ((process.env.NODE_ENV !== 'production')) {\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\n if (invalidParams.length) {\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n }\n }\n name = matcher.record.name;\n params = assign(\n // paramsFromLocation is a new object\n paramsFromLocation(currentLocation.params, \n // only keep params that exist in the resolved location\n // only keep optional params coming from a parent record\n matcher.keys\n .filter(k => !k.optional)\n .concat(matcher.parent ? matcher.parent.keys.filter(k => k.optional) : [])\n .map(k => k.name)), \n // discard any existing params in the current location that do not exist here\n // #1497 this ensures better active/exact matching\n location.params &&\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\n // throws if cannot be stringified\n path = matcher.stringify(params);\n }\n else if (location.path != null) {\n // no need to resolve the path with the matcher as it was provided\n // this also allows the user to control the encoding\n path = location.path;\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n }\n matcher = matchers.find(m => m.re.test(path));\n // matcher should have a value after the loop\n if (matcher) {\n // we know the matcher works because we tested the regexp\n params = matcher.parse(path);\n name = matcher.record.name;\n }\n // location is a relative path\n }\n else {\n // match by name or path of current route\n matcher = currentLocation.name\n ? matcherMap.get(currentLocation.name)\n : matchers.find(m => m.re.test(currentLocation.path));\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n currentLocation,\n });\n name = matcher.record.name;\n // since we are navigating to the same location, we don't need to pick the\n // params like when `name` is provided\n params = assign({}, currentLocation.params, location.params);\n path = matcher.stringify(params);\n }\n const matched = [];\n let parentMatcher = matcher;\n while (parentMatcher) {\n // reversed order so parents are at the beginning\n matched.unshift(parentMatcher.record);\n parentMatcher = parentMatcher.parent;\n }\n return {\n name,\n path,\n params,\n matched,\n meta: mergeMetaFields(matched),\n };\n }\n // add initial routes\n routes.forEach(route => addRoute(route));\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\n}\nfunction paramsFromLocation(params, keys) {\n const newParams = {};\n for (const key of keys) {\n if (key in params)\n newParams[key] = params[key];\n }\n return newParams;\n}\n/**\n * Normalizes a RouteRecordRaw. Creates a copy\n *\n * @param record\n * @returns the normalized version\n */\nfunction normalizeRouteRecord(record) {\n return {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: undefined,\n beforeEnter: record.beforeEnter,\n props: normalizeRecordProps(record),\n children: record.children || [],\n instances: {},\n leaveGuards: new Set(),\n updateGuards: new Set(),\n enterCallbacks: {},\n components: 'components' in record\n ? record.components || null\n : record.component && { default: record.component },\n };\n}\n/**\n * Normalize the optional `props` in a record to always be an object similar to\n * components. Also accept a boolean for components.\n * @param record\n */\nfunction normalizeRecordProps(record) {\n const propsObject = {};\n // props does not exist on redirect records, but we can set false directly\n const props = record.props || false;\n if ('component' in record) {\n propsObject.default = props;\n }\n else {\n // NOTE: we could also allow a function to be applied to every component.\n // Would need user feedback for use cases\n for (const name in record.components)\n propsObject[name] = typeof props === 'object' ? props[name] : props;\n }\n return propsObject;\n}\n/**\n * Checks if a record or any of its parent is an alias\n * @param record\n */\nfunction isAliasRecord(record) {\n while (record) {\n if (record.record.aliasOf)\n return true;\n record = record.parent;\n }\n return false;\n}\n/**\n * Merge meta fields of an array of records\n *\n * @param matched - array of matched records\n */\nfunction mergeMetaFields(matched) {\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n const options = {};\n for (const key in defaults) {\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n }\n return options;\n}\nfunction isSameParam(a, b) {\n return (a.name === b.name &&\n a.optional === b.optional &&\n a.repeatable === b.repeatable);\n}\n/**\n * Check if a path and its alias have the same required params\n *\n * @param a - original record\n * @param b - alias record\n */\nfunction checkSameParams(a, b) {\n for (const key of a.keys) {\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n for (const key of b.keys) {\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n}\n/**\n * A route with a name and a child with an empty path without a name should warn when adding the route\n *\n * @param mainNormalizedRecord - RouteRecordNormalized\n * @param parent - RouteRecordMatcher\n */\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n if (parent &&\n parent.record.name &&\n !mainNormalizedRecord.name &&\n !mainNormalizedRecord.path) {\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n for (const key of parent.keys) {\n if (!record.keys.find(isSameParam.bind(null, key)))\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n }\n}\nfunction isRecordChildOf(record, parent) {\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\n}\n\n/**\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n * version with the leading `?` and without Should work as URLSearchParams\n\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n const eqPos = searchParam.indexOf('=');\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n/**\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n * doesn't prepend a `?`\n *\n * @internal\n *\n * @param query - query object to stringify\n * @returns string version of the query without the leading `?`\n */\nfunction stringifyQuery(query) {\n let search = '';\n for (let key in query) {\n const value = query[key];\n key = encodeQueryKey(key);\n if (value == null) {\n // only null adds the value\n if (value !== undefined) {\n search += (search.length ? '&' : '') + key;\n }\n continue;\n }\n // keep null values\n const values = isArray(value)\n ? value.map(v => v && encodeQueryValue(v))\n : [value && encodeQueryValue(value)];\n values.forEach(value => {\n // skip undefined values in arrays as if they were not present\n // smaller code than using filter\n if (value !== undefined) {\n // only append & with non-empty search\n search += (search.length ? '&' : '') + key;\n if (value != null)\n search += '=' + value;\n }\n });\n }\n return search;\n}\n/**\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n * numbers into strings, removing keys with an undefined value and replacing\n * undefined with null in arrays\n *\n * @param query - query object to normalize\n * @returns a normalized query object\n */\nfunction normalizeQuery(query) {\n const normalizedQuery = {};\n for (const key in query) {\n const value = query[key];\n if (value !== undefined) {\n normalizedQuery[key] = isArray(value)\n ? value.map(v => (v == null ? null : '' + v))\n : value == null\n ? value\n : '' + value;\n }\n }\n return normalizedQuery;\n}\n\n/**\n * RouteRecord being rendered by the closest ancestor Router View. Used for\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n * Location Matched\n *\n * @internal\n */\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\n/**\n * Allows overriding the router view depth to control which component in\n * `matched` is rendered. rvd stands for Router View Depth\n *\n * @internal\n */\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\n/**\n * Allows overriding the router instance returned by `useRouter` in tests. r\n * stands for router\n *\n * @internal\n */\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\n/**\n * Allows overriding the current route returned by `useRoute` in tests. rl\n * stands for route location\n *\n * @internal\n */\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\n/**\n * Allows overriding the current route used by router-view. Internally this is\n * used when the `route` prop is passed.\n *\n * @internal\n */\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n */\nfunction useCallbacks() {\n let handlers = [];\n function add(handler) {\n handlers.push(handler);\n return () => {\n const i = handlers.indexOf(handler);\n if (i > -1)\n handlers.splice(i, 1);\n };\n }\n function reset() {\n handlers = [];\n }\n return {\n add,\n list: () => handlers.slice(),\n reset,\n };\n}\n\nfunction registerGuard(record, name, guard) {\n const removeFromList = () => {\n record[name].delete(guard);\n };\n onUnmounted(removeFromList);\n onDeactivated(removeFromList);\n onActivated(() => {\n record[name].add(guard);\n });\n record[name].add(guard);\n}\n/**\n * Add a navigation guard that triggers whenever the component for the current\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\n * used in any component. The guard is removed when the component is unmounted.\n *\n * @param leaveGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteLeave(leaveGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\n}\n/**\n * Add a navigation guard that triggers whenever the current location is about\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n * component. The guard is removed when the component is unmounted.\n *\n * @param updateGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteUpdate(updateGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = fn => fn()) {\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\n const enterCallbackArray = record &&\n // name is defined if record is because of the function overload\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n return () => new Promise((resolve, reject) => {\n const next = (valid) => {\n if (valid === false) {\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\n from,\n to,\n }));\n }\n else if (valid instanceof Error) {\n reject(valid);\n }\n else if (isRouteLocation(valid)) {\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\n from: to,\n to: valid,\n }));\n }\n else {\n if (enterCallbackArray &&\n // since enterCallbackArray is truthy, both record and name also are\n record.enterCallbacks[name] === enterCallbackArray &&\n typeof valid === 'function') {\n enterCallbackArray.push(valid);\n }\n resolve();\n }\n };\n // wrapping with Promise.resolve allows it to work with both async and sync guards\n const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next));\n let guardCall = Promise.resolve(guardReturn);\n if (guard.length < 3)\n guardCall = guardCall.then(next);\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\n guardCall = guardCall.then(resolvedValue => {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n return Promise.reject(new Error('Invalid navigation guard'));\n }\n return resolvedValue;\n });\n }\n else if (guardReturn !== undefined) {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n reject(new Error('Invalid navigation guard'));\n return;\n }\n }\n }\n guardCall.catch(err => reject(err));\n });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n let called = 0;\n return function () {\n if (called++ === 1)\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n // @ts-expect-error: we put it in the original one because it's easier to check\n next._called = true;\n if (called === 1)\n next.apply(null, arguments);\n };\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = fn => fn()) {\n const guards = [];\n for (const record of matched) {\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\n ` or \"children\" property.`);\n }\n for (const name in record.components) {\n let rawComponent = record.components[name];\n if ((process.env.NODE_ENV !== 'production')) {\n if (!rawComponent ||\n (typeof rawComponent !== 'object' &&\n typeof rawComponent !== 'function')) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\n ` a valid component. Received \"${String(rawComponent)}\".`);\n // throw to ensure we stop here but warn to ensure the message isn't\n // missed by the user\n throw new Error('Invalid route component');\n }\n else if ('then' in rawComponent) {\n // warn if user wrote import('/component.vue') instead of () =>\n // import('./component.vue')\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\n `Promise instead of a function that returns a Promise. Did you ` +\n `write \"import('./MyPage.vue')\" instead of ` +\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\n `production if not fixed.`);\n const promise = rawComponent;\n rawComponent = () => promise;\n }\n else if (rawComponent.__asyncLoader &&\n // warn only once per component\n !rawComponent.__warnedDefineAsync) {\n rawComponent.__warnedDefineAsync = true;\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\n `using \"defineAsyncComponent()\". ` +\n `Write \"() => import('./MyPage.vue')\" instead of ` +\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n }\n }\n // skip update and leave guards if the route component is not mounted\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\n continue;\n if (isRouteComponent(rawComponent)) {\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = rawComponent.__vccOpts || rawComponent;\n const guard = options[guardType];\n guard &&\n guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n }\n else {\n // start requesting the chunk already\n let componentPromise = rawComponent();\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n componentPromise = Promise.resolve(componentPromise);\n }\n guards.push(() => componentPromise.then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = resolvedComponent.__vccOpts || resolvedComponent;\n const guard = options[guardType];\n return (guard &&\n guardToPromiseFn(guard, to, from, record, name, runWithContext)());\n }));\n }\n }\n }\n return guards;\n}\n/**\n * Allows differentiating lazy components from functional components and vue-class-component\n * @internal\n *\n * @param component\n */\nfunction isRouteComponent(component) {\n return (typeof component === 'object' ||\n 'displayName' in component ||\n 'props' in component ||\n '__vccOpts' in component);\n}\n/**\n * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\n *\n * @param route - resolved route to load\n */\nfunction loadRouteLocation(route) {\n return route.matched.every(record => record.redirect)\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\n : Promise.all(route.matched.map(record => record.components &&\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\n const rawComponent = record.components[name];\n if (typeof rawComponent === 'function' &&\n !('displayName' in rawComponent)) {\n promises.push(rawComponent().then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n return;\n }));\n }\n return promises;\n }, [])))).then(() => route);\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\n// `isExactActive` behavior should go through an RFC\nfunction useLink(props) {\n const router = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n const route = computed(() => router.resolve(unref(props.to)));\n const activeRecordIndex = computed(() => {\n const { matched } = route.value;\n const { length } = matched;\n const routeMatched = matched[length - 1];\n const currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length)\n return -1;\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n if (index > -1)\n return index;\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[length - 2]);\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n getOriginalPath(routeMatched) === parentRecordPath &&\n // avoid comparing the child with its parent\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\n : index);\n });\n const isActive = computed(() => activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, route.value.params));\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, route.value.params));\n function navigate(e = {}) {\n if (guardEvent(e)) {\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\n // avoid uncaught errors are they are logged anyway\n ).catch(noop);\n }\n return Promise.resolve();\n }\n // devtools only\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n const instance = getCurrentInstance();\n if (instance) {\n const linkContextDevtools = {\n route: route.value,\n isActive: isActive.value,\n isExactActive: isExactActive.value,\n };\n // @ts-expect-error: this is internal\n instance.__vrl_devtools = instance.__vrl_devtools || [];\n // @ts-expect-error: this is internal\n instance.__vrl_devtools.push(linkContextDevtools);\n watchEffect(() => {\n linkContextDevtools.route = route.value;\n linkContextDevtools.isActive = isActive.value;\n linkContextDevtools.isExactActive = isExactActive.value;\n }, { flush: 'post' });\n }\n }\n /**\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n */\n return {\n route,\n href: computed(() => route.value.href),\n isActive,\n isExactActive,\n navigate,\n };\n}\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterLink',\n compatConfig: { MODE: 3 },\n props: {\n to: {\n type: [String, Object],\n required: true,\n },\n replace: Boolean,\n activeClass: String,\n // inactiveClass: String,\n exactActiveClass: String,\n custom: Boolean,\n ariaCurrentValue: {\n type: String,\n default: 'page',\n },\n },\n useLink,\n setup(props, { slots }) {\n const link = reactive(useLink(props));\n const { options } = inject(routerKey);\n const elClass = computed(() => ({\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\n // [getLinkClass(\n // props.inactiveClass,\n // options.linkInactiveClass,\n // 'router-link-inactive'\n // )]: !link.isExactActive,\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\n }));\n return () => {\n const children = slots.default && slots.default(link);\n return props.custom\n ? children\n : h('a', {\n 'aria-current': link.isExactActive\n ? props.ariaCurrentValue\n : null,\n href: link.href,\n // this would override user added attrs but Vue will still add\n // the listener, so we end up triggering both\n onClick: link.navigate,\n class: elClass.value,\n }, children);\n };\n },\n});\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to render a link that triggers a navigation on click.\n */\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented)\n return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0)\n return;\n // don't redirect if `target=\"_blank\"`\n // @ts-expect-error getAttribute does exist\n if (e.currentTarget && e.currentTarget.getAttribute) {\n // @ts-expect-error getAttribute exists\n const target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target))\n return;\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault)\n e.preventDefault();\n return true;\n}\nfunction includesParams(outer, inner) {\n for (const key in inner) {\n const innerValue = inner[key];\n const outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue)\n return false;\n }\n else {\n if (!isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some((value, i) => value !== outerValue[i]))\n return false;\n }\n }\n return true;\n}\n/**\n * Get the original path value of a record by following its aliasOf\n * @param record\n */\nfunction getOriginalPath(record) {\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\n}\n/**\n * Utility class to get the active class based on defaults.\n * @param propClass\n * @param globalClass\n * @param defaultClass\n */\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\n ? propClass\n : globalClass != null\n ? globalClass\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterView',\n // #674 we manually inherit them\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n default: 'default',\n },\n route: Object,\n },\n // Better compat for @vue/compat users\n // https://github.com/vuejs/router/issues/1315\n compatConfig: { MODE: 3 },\n setup(props, { attrs, slots }) {\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\n const injectedRoute = inject(routerViewLocationKey);\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\n const injectedDepth = inject(viewDepthKey, 0);\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\n // that are used to reuse the `path` property\n const depth = computed(() => {\n let initialDepth = unref(injectedDepth);\n const { matched } = routeToDisplay.value;\n let matchedRoute;\n while ((matchedRoute = matched[initialDepth]) &&\n !matchedRoute.components) {\n initialDepth++;\n }\n return initialDepth;\n });\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n provide(viewDepthKey, computed(() => depth.value + 1));\n provide(matchedRouteKey, matchedRouteRef);\n provide(routerViewLocationKey, routeToDisplay);\n const viewRef = ref();\n // watch at the same time the component instance, the route record we are\n // rendering, and the name\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n // copy reused instances\n if (to) {\n // this will update the instance for new instances as well as reused\n // instances when navigating to a new route\n to.instances[name] = instance;\n // the component instance is reused for a different route or name, so\n // we copy any saved update or leave guards. With async setup, the\n // mounting component will mount before the matchedRoute changes,\n // making instance === oldInstance, so we check if guards have been\n // added before. This works because we remove guards when\n // unmounting/deactivating components\n if (from && from !== to && instance && instance === oldInstance) {\n if (!to.leaveGuards.size) {\n to.leaveGuards = from.leaveGuards;\n }\n if (!to.updateGuards.size) {\n to.updateGuards = from.updateGuards;\n }\n }\n }\n // trigger beforeRouteEnter next callbacks\n if (instance &&\n to &&\n // if there is no instance but to and from are the same this might be\n // the first visit\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\n }\n }, { flush: 'post' });\n return () => {\n const route = routeToDisplay.value;\n // we need the value at the time we render because when we unmount, we\n // navigated to a different location so the value is different\n const currentName = props.name;\n const matchedRoute = matchedRouteRef.value;\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\n if (!ViewComponent) {\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\n }\n // props from route configuration\n const routePropsOption = matchedRoute.props[currentName];\n const routeProps = routePropsOption\n ? routePropsOption === true\n ? route.params\n : typeof routePropsOption === 'function'\n ? routePropsOption(route)\n : routePropsOption\n : null;\n const onVnodeUnmounted = vnode => {\n // remove the instance reference to prevent leak\n if (vnode.component.isUnmounted) {\n matchedRoute.instances[currentName] = null;\n }\n };\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\n onVnodeUnmounted,\n ref: viewRef,\n }));\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n isBrowser &&\n component.ref) {\n // TODO: can display if it's an alias, its props\n const info = {\n depth: depth.value,\n name: matchedRoute.name,\n path: matchedRoute.path,\n meta: matchedRoute.meta,\n };\n const internalInstances = isArray(component.ref)\n ? component.ref.map(r => r.i)\n : [component.ref.i];\n internalInstances.forEach(instance => {\n // @ts-expect-error\n instance.__vrv_devtools = info;\n });\n }\n return (\n // pass the vnode to the slot as a prop.\n // h and <component :is=\"...\"> both accept vnodes\n normalizeSlot(slots.default, { Component: component, route }) ||\n component);\n };\n },\n});\nfunction normalizeSlot(slot, data) {\n if (!slot)\n return null;\n const slotContent = slot(data);\n return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to display the current route the user is at.\n */\nconst RouterView = RouterViewImpl;\n// warn against deprecated usage with <transition> & <keep-alive>\n// due to functional component being no longer eager in Vue 3\nfunction warnDeprecatedUsage() {\n const instance = getCurrentInstance();\n const parentName = instance.parent && instance.parent.type.name;\n const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n if (parentName &&\n (parentName === 'KeepAlive' || parentName.includes('Transition')) &&\n typeof parentSubTreeType === 'object' &&\n parentSubTreeType.name === 'RouterView') {\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\n warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\n `Use slot props instead:\\n\\n` +\n `<router-view v-slot=\"{ Component }\">\\n` +\n ` <${comp}>\\n` +\n ` <component :is=\"Component\" />\\n` +\n ` </${comp}>\\n` +\n `</router-view>`);\n }\n}\n\n/**\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n *\n * @param routeLocation - routeLocation to format\n * @param tooltip - optional tooltip\n * @returns a copy of the routeLocation\n */\nfunction formatRouteLocation(routeLocation, tooltip) {\n const copy = assign({}, routeLocation, {\n // remove variables that can contain vue instances\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\n });\n return {\n _custom: {\n type: null,\n readOnly: true,\n display: routeLocation.fullPath,\n tooltip,\n value: copy,\n },\n };\n}\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\n// to support multiple router instances\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n // Take over router.beforeEach and afterEach\n // make sure we are not registering the devtool twice\n if (router.__hasDevtools)\n return;\n router.__hasDevtools = true;\n // increment to support multiple router instances\n const id = routerId++;\n setupDevtoolsPlugin({\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\n label: 'Vue Router',\n packageName: 'vue-router',\n homepage: 'https://router.vuejs.org',\n logo: 'https://router.vuejs.org/logo.png',\n componentStateTypes: ['Routing'],\n app,\n }, api => {\n if (typeof api.now !== 'function') {\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n // display state added by the router\n api.on.inspectComponent((payload, ctx) => {\n if (payload.instanceData) {\n payload.instanceData.state.push({\n type: 'Routing',\n key: '$route',\n editable: false,\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\n });\n }\n });\n // mark router-link as active and display tags on router views\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n if (componentInstance.__vrv_devtools) {\n const info = componentInstance.__vrv_devtools;\n node.tags.push({\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\n textColor: 0,\n tooltip: 'This component is rendered by <router-view>',\n backgroundColor: PINK_500,\n });\n }\n // if multiple useLink are used\n if (isArray(componentInstance.__vrl_devtools)) {\n componentInstance.__devtoolsApi = api;\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\n let backgroundColor = ORANGE_400;\n let tooltip = '';\n if (devtoolsData.isExactActive) {\n backgroundColor = LIME_500;\n tooltip = 'This is exactly active';\n }\n else if (devtoolsData.isActive) {\n backgroundColor = BLUE_600;\n tooltip = 'This link is active';\n }\n node.tags.push({\n label: devtoolsData.route.path,\n textColor: 0,\n tooltip,\n backgroundColor,\n });\n });\n }\n });\n watch(router.currentRoute, () => {\n // refresh active state\n refreshRoutesView();\n api.notifyComponentUpdate();\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n const navigationsLayerId = 'router:navigations:' + id;\n api.addTimelineLayer({\n id: navigationsLayerId,\n label: `Router${id ? ' ' + id : ''} Navigations`,\n color: 0x40a8c4,\n });\n // const errorsLayerId = 'router:errors'\n // api.addTimelineLayer({\n // id: errorsLayerId,\n // label: 'Router Errors',\n // color: 0xea5455,\n // })\n router.onError((error, to) => {\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'Error during Navigation',\n subtitle: to.fullPath,\n logType: 'error',\n time: api.now(),\n data: { error },\n groupId: to.meta.__navigationId,\n },\n });\n });\n // attached to `meta` and used to group events\n let navigationId = 0;\n router.beforeEach((to, from) => {\n const data = {\n guard: formatDisplay('beforeEach'),\n from: formatRouteLocation(from, 'Current Location during this navigation'),\n to: formatRouteLocation(to, 'Target location'),\n };\n // Used to group navigations together, hide from devtools\n Object.defineProperty(to.meta, '__navigationId', {\n value: navigationId++,\n });\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n time: api.now(),\n title: 'Start of navigation',\n subtitle: to.fullPath,\n data,\n groupId: to.meta.__navigationId,\n },\n });\n });\n router.afterEach((to, from, failure) => {\n const data = {\n guard: formatDisplay('afterEach'),\n };\n if (failure) {\n data.failure = {\n _custom: {\n type: Error,\n readOnly: true,\n display: failure ? failure.message : '',\n tooltip: 'Navigation Failure',\n value: failure,\n },\n };\n data.status = formatDisplay('âŒ');\n }\n else {\n data.status = formatDisplay('✅');\n }\n // we set here to have the right order\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\n data.to = formatRouteLocation(to, 'Target location');\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'End of navigation',\n subtitle: to.fullPath,\n time: api.now(),\n data,\n logType: failure ? 'warning' : 'default',\n groupId: to.meta.__navigationId,\n },\n });\n });\n /**\n * Inspector of Existing routes\n */\n const routerInspectorId = 'router-inspector:' + id;\n api.addInspector({\n id: routerInspectorId,\n label: 'Routes' + (id ? ' ' + id : ''),\n icon: 'book',\n treeFilterPlaceholder: 'Search routes',\n });\n function refreshRoutesView() {\n // the routes view isn't active\n if (!activeRoutesPayload)\n return;\n const payload = activeRoutesPayload;\n // children routes will appear as nested\n let routes = matcher.getRoutes().filter(route => !route.parent ||\n // these routes have a parent with no component which will not appear in the view\n // therefore we still need to include them\n !route.parent.record.components);\n // reset match state to false\n routes.forEach(resetMatchStateOnRouteRecord);\n // apply a match state if there is a payload\n if (payload.filter) {\n routes = routes.filter(route => \n // save matches state based on the payload\n isRouteMatching(route, payload.filter.toLowerCase()));\n }\n // mark active routes\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\n }\n let activeRoutesPayload;\n api.on.getInspectorTree(payload => {\n activeRoutesPayload = payload;\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n refreshRoutesView();\n }\n });\n /**\n * Display information about the currently selected route record\n */\n api.on.getInspectorState(payload => {\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n const routes = matcher.getRoutes();\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\n if (route) {\n payload.state = {\n options: formatRouteRecordMatcherForStateInspector(route),\n };\n }\n }\n });\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n}\nfunction modifierForKey(key) {\n if (key.optional) {\n return key.repeatable ? '*' : '?';\n }\n else {\n return key.repeatable ? '+' : '';\n }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n const { record } = route;\n const fields = [\n { editable: false, key: 'path', value: record.path },\n ];\n if (record.name != null) {\n fields.push({\n editable: false,\n key: 'name',\n value: record.name,\n });\n }\n fields.push({ editable: false, key: 'regexp', value: route.re });\n if (route.keys.length) {\n fields.push({\n editable: false,\n key: 'keys',\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.keys\n .map(key => `${key.name}${modifierForKey(key)}`)\n .join(' '),\n tooltip: 'Param keys',\n value: route.keys,\n },\n },\n });\n }\n if (record.redirect != null) {\n fields.push({\n editable: false,\n key: 'redirect',\n value: record.redirect,\n });\n }\n if (route.alias.length) {\n fields.push({\n editable: false,\n key: 'aliases',\n value: route.alias.map(alias => alias.record.path),\n });\n }\n if (Object.keys(route.record.meta).length) {\n fields.push({\n editable: false,\n key: 'meta',\n value: route.record.meta,\n });\n }\n fields.push({\n key: 'score',\n editable: false,\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.score.map(score => score.join(', ')).join(' | '),\n tooltip: 'Score used to sort routes',\n value: route.score,\n },\n },\n });\n return fields;\n}\n/**\n * Extracted from tailwind palette\n */\nconst PINK_500 = 0xec4899;\nconst BLUE_600 = 0x2563eb;\nconst LIME_500 = 0x84cc16;\nconst CYAN_400 = 0x22d3ee;\nconst ORANGE_400 = 0xfb923c;\n// const GRAY_100 = 0xf4f4f5\nconst DARK = 0x666666;\nfunction formatRouteRecordForInspector(route) {\n const tags = [];\n const { record } = route;\n if (record.name != null) {\n tags.push({\n label: String(record.name),\n textColor: 0,\n backgroundColor: CYAN_400,\n });\n }\n if (record.aliasOf) {\n tags.push({\n label: 'alias',\n textColor: 0,\n backgroundColor: ORANGE_400,\n });\n }\n if (route.__vd_match) {\n tags.push({\n label: 'matches',\n textColor: 0,\n backgroundColor: PINK_500,\n });\n }\n if (route.__vd_exactActive) {\n tags.push({\n label: 'exact',\n textColor: 0,\n backgroundColor: LIME_500,\n });\n }\n if (route.__vd_active) {\n tags.push({\n label: 'active',\n textColor: 0,\n backgroundColor: BLUE_600,\n });\n }\n if (record.redirect) {\n tags.push({\n label: typeof record.redirect === 'string'\n ? `redirect: ${record.redirect}`\n : 'redirects',\n textColor: 0xffffff,\n backgroundColor: DARK,\n });\n }\n // add an id to be able to select it. Using the `path` is not possible because\n // empty path children would collide with their parents\n let id = record.__vd_id;\n if (id == null) {\n id = String(routeRecordId++);\n record.__vd_id = id;\n }\n return {\n id,\n label: record.path,\n tags,\n children: route.children.map(formatRouteRecordForInspector),\n };\n}\n// incremental id for route records and inspector state\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n // no route will be active if matched is empty\n // reset the matching state\n const isExactActive = currentRoute.matched.length &&\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n route.__vd_exactActive = route.__vd_active = isExactActive;\n if (!isExactActive) {\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\n }\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n route.__vd_match = false;\n route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\n route.__vd_match = false;\n if (!found || found.length < 3) {\n return false;\n }\n // use a regexp without $ at the end to match nested routes better\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\n if (nonEndingRE.test(filter)) {\n // mark children as matches\n route.children.forEach(child => isRouteMatching(child, filter));\n // exception case: `/`\n if (route.record.path !== '/' || filter === '/') {\n route.__vd_match = route.re.test(filter);\n return true;\n }\n // hide the / route\n return false;\n }\n const path = route.record.path.toLowerCase();\n const decodedPath = decode(path);\n // also allow partial matching on the path\n if (!filter.startsWith('/') &&\n (decodedPath.includes(filter) || path.includes(filter)))\n return true;\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\n return true;\n if (route.record.name && String(route.record.name).includes(filter))\n return true;\n return route.children.some(child => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n const ret = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n // @ts-expect-error\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\n/**\n * Creates a Router instance that can be used by a Vue app.\n *\n * @param options - {@link RouterOptions}\n */\nfunction createRouter(options) {\n const matcher = createRouterMatcher(options.routes, options);\n const parseQuery$1 = options.parseQuery || parseQuery;\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n const routerHistory = options.history;\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\n ' https://next.router.vuejs.org/api/#history.');\n const beforeGuards = useCallbacks();\n const beforeResolveGuards = useCallbacks();\n const afterGuards = useCallbacks();\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n let pendingLocation = START_LOCATION_NORMALIZED;\n // leave the scrollRestoration if no scrollBehavior is provided\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\n const encodeParams = applyToParams.bind(null, encodeParam);\n const decodeParams = \n // @ts-expect-error: intentionally avoid the type check\n applyToParams.bind(null, decode);\n function addRoute(parentOrRoute, route) {\n let parent;\n let record;\n if (isRouteName(parentOrRoute)) {\n parent = matcher.getRecordMatcher(parentOrRoute);\n record = route;\n }\n else {\n record = parentOrRoute;\n }\n return matcher.addRoute(record, parent);\n }\n function removeRoute(name) {\n const recordMatcher = matcher.getRecordMatcher(name);\n if (recordMatcher) {\n matcher.removeRoute(recordMatcher);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\n }\n }\n function getRoutes() {\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\n }\n function hasRoute(name) {\n return !!matcher.getRecordMatcher(name);\n }\n function resolve(rawLocation, currentLocation) {\n // const objectLocation = routerLocationAsObject(rawLocation)\n // we create a copy to modify it later\n currentLocation = assign({}, currentLocation || currentRoute.value);\n if (typeof rawLocation === 'string') {\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n const href = routerHistory.createHref(locationNormalized.fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//'))\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation}\"`);\n }\n }\n // locationNormalized is always a new object\n return assign(locationNormalized, matchedRoute, {\n params: decodeParams(matchedRoute.params),\n hash: decode(locationNormalized.hash),\n redirectedFrom: undefined,\n href,\n });\n }\n let matcherLocation;\n // path could be relative in object as well\n if (rawLocation.path != null) {\n if ((process.env.NODE_ENV !== 'production') &&\n 'params' in rawLocation &&\n !('name' in rawLocation) &&\n // @ts-expect-error: the type is never\n Object.keys(rawLocation.params).length) {\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n }\n matcherLocation = assign({}, rawLocation, {\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\n });\n }\n else {\n // remove any nullish param\n const targetParams = assign({}, rawLocation.params);\n for (const key in targetParams) {\n if (targetParams[key] == null) {\n delete targetParams[key];\n }\n }\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\n matcherLocation = assign({}, rawLocation, {\n params: encodeParams(targetParams),\n });\n // current location params are decoded, we need to encode them in case the\n // matcher merges the params\n currentLocation.params = encodeParams(currentLocation.params);\n }\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n const hash = rawLocation.hash || '';\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n }\n // the matcher might have merged current location params, so\n // we need to run the decoding again\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n hash: encodeHash(hash),\n path: matchedRoute.path,\n }));\n const href = routerHistory.createHref(fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//')) {\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n }\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n }\n }\n return assign({\n fullPath,\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\n // hash\n hash,\n query: \n // if the user is using a custom query lib like qs, we might have\n // nested objects, so we keep the query as is, meaning it can contain\n // numbers at `$route.query`, but at the point, the user will have to\n // use their own type anyway.\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\n stringifyQuery$1 === stringifyQuery\n ? normalizeQuery(rawLocation.query)\n : (rawLocation.query || {}),\n }, matchedRoute, {\n redirectedFrom: undefined,\n href,\n });\n }\n function locationAsObject(to) {\n return typeof to === 'string'\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\n : assign({}, to);\n }\n function checkCanceledNavigation(to, from) {\n if (pendingLocation !== to) {\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\n from,\n to,\n });\n }\n }\n function push(to) {\n return pushWithRedirect(to);\n }\n function replace(to) {\n return push(assign(locationAsObject(to), { replace: true }));\n }\n function handleRedirectRecord(to) {\n const lastMatched = to.matched[to.matched.length - 1];\n if (lastMatched && lastMatched.redirect) {\n const { redirect } = lastMatched;\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\n if (typeof newTargetLocation === 'string') {\n newTargetLocation =\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\n ? (newTargetLocation = locationAsObject(newTargetLocation))\n : // force empty params\n { path: newTargetLocation };\n // @ts-expect-error: force empty params when a string is passed to let\n // the router parse them again\n newTargetLocation.params = {};\n }\n if ((process.env.NODE_ENV !== 'production') &&\n newTargetLocation.path == null &&\n !('name' in newTargetLocation)) {\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n throw new Error('Invalid redirect');\n }\n return assign({\n query: to.query,\n hash: to.hash,\n // avoid transferring params if the redirect has a path\n params: newTargetLocation.path != null ? {} : to.params,\n }, newTargetLocation);\n }\n }\n function pushWithRedirect(to, redirectedFrom) {\n const targetLocation = (pendingLocation = resolve(to));\n const from = currentRoute.value;\n const data = to.state;\n const force = to.force;\n // to could be a string where `replace` is a function\n const replace = to.replace === true;\n const shouldRedirect = handleRedirectRecord(targetLocation);\n if (shouldRedirect)\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n state: typeof shouldRedirect === 'object'\n ? assign({}, data, shouldRedirect.state)\n : data,\n force,\n replace,\n }), \n // keep original redirectedFrom if it exists\n redirectedFrom || targetLocation);\n // if it was a redirect we already called `pushWithRedirect` above\n const toLocation = targetLocation;\n toLocation.redirectedFrom = redirectedFrom;\n let failure;\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\n // trigger scroll to allow scrolling to the same anchor\n handleScroll(from, from, \n // this is a push, the only way for it to be triggered from a\n // history.listen is with a redirect, which makes it become a push\n true, \n // This cannot be the first navigation because the initial location\n // cannot be manually navigated to\n false);\n }\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\n .catch((error) => isNavigationFailure(error)\n ? // navigation redirects still mark the router as ready\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\n ? error\n : markAsReady(error) // also returns the error\n : // reject any unknown error\n triggerError(error, toLocation, from))\n .then((failure) => {\n if (failure) {\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n if ((process.env.NODE_ENV !== 'production') &&\n // we are redirecting to the same location we were already at\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\n // and we have done it a couple of times\n redirectedFrom &&\n // @ts-expect-error: added only in dev\n (redirectedFrom._count = redirectedFrom._count\n ? // @ts-expect-error\n redirectedFrom._count + 1\n : 1) > 30) {\n warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\n }\n return pushWithRedirect(\n // keep options\n assign({\n // preserve an existing replacement but allow the redirect to override it\n replace,\n }, locationAsObject(failure.to), {\n state: typeof failure.to === 'object'\n ? assign({}, data, failure.to.state)\n : data,\n force,\n }), \n // preserve the original redirectedFrom if any\n redirectedFrom || toLocation);\n }\n }\n else {\n // if we fail we don't finalize the navigation\n failure = finalizeNavigation(toLocation, from, true, replace, data);\n }\n triggerAfterEach(toLocation, from, failure);\n return failure;\n });\n }\n /**\n * Helper to reject and skip all navigation guards if a new navigation happened\n * @param to\n * @param from\n */\n function checkCanceledNavigationAndReject(to, from) {\n const error = checkCanceledNavigation(to, from);\n return error ? Promise.reject(error) : Promise.resolve();\n }\n function runWithContext(fn) {\n const app = installedApps.values().next().value;\n // support Vue < 3.3\n return app && typeof app.runWithContext === 'function'\n ? app.runWithContext(fn)\n : fn();\n }\n // TODO: refactor the whole before guards by internally using router.beforeEach\n function navigate(to, from) {\n let guards;\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n // all components here have been resolved once because we are leaving\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\n // leavingRecords is already reversed\n for (const record of leavingRecords) {\n record.leaveGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeRouteLeave guards\n return (runGuardQueue(guards)\n .then(() => {\n // check global guards beforeEach\n guards = [];\n for (const guard of beforeGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n .then(() => {\n // check in components beforeRouteUpdate\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\n for (const record of updatingRecords) {\n record.updateGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check the route beforeEnter\n guards = [];\n for (const record of enteringRecords) {\n // do not trigger beforeEnter on reused views\n if (record.beforeEnter) {\n if (isArray(record.beforeEnter)) {\n for (const beforeEnter of record.beforeEnter)\n guards.push(guardToPromiseFn(beforeEnter, to, from));\n }\n else {\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n }\n }\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component>\n // clear existing enterCallbacks, these are added by extractComponentsGuards\n to.matched.forEach(record => (record.enterCallbacks = {}));\n // check in-component beforeRouteEnter\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from, runWithContext);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check global guards beforeResolve\n guards = [];\n for (const guard of beforeResolveGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n // catch any navigation canceled\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\n ? err\n : Promise.reject(err)));\n }\n function triggerAfterEach(to, from, failure) {\n // navigation is confirmed, call afterGuards\n // TODO: wrap with error handlers\n afterGuards\n .list()\n .forEach(guard => runWithContext(() => guard(to, from, failure)));\n }\n /**\n * - Cleans up any navigation guards\n * - Changes the url if necessary\n * - Calls the scrollBehavior\n */\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\n // a more recent navigation took place\n const error = checkCanceledNavigation(toLocation, from);\n if (error)\n return error;\n // only consider as push if it's not the first navigation\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n const state = !isBrowser ? {} : history.state;\n // change URL only if the user did a push/replace and if it's not the initial navigation because\n // it's just reflecting the url\n if (isPush) {\n // on the initial navigation, we want to reuse the scroll position from\n // history state if it exists\n if (replace || isFirstNavigation)\n routerHistory.replace(toLocation.fullPath, assign({\n scroll: isFirstNavigation && state && state.scroll,\n }, data));\n else\n routerHistory.push(toLocation.fullPath, data);\n }\n // accept current navigation\n currentRoute.value = toLocation;\n handleScroll(toLocation, from, isPush, isFirstNavigation);\n markAsReady();\n }\n let removeHistoryListener;\n // attach listener to history to trigger navigations\n function setupListeners() {\n // avoid setting up listeners twice due to an invalid first navigation\n if (removeHistoryListener)\n return;\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\n if (!router.listening)\n return;\n // cannot be a redirect route because it was in history\n const toLocation = resolve(to);\n // due to dynamic routing, and to hash history with manual navigation\n // (manually changing the url or calling history.hash = '#/somewhere'),\n // there could be a redirect record in history\n const shouldRedirect = handleRedirectRecord(toLocation);\n if (shouldRedirect) {\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\n return;\n }\n pendingLocation = toLocation;\n const from = currentRoute.value;\n // TODO: should be moved to web history?\n if (isBrowser) {\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n }\n navigate(toLocation, from)\n .catch((error) => {\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n return error;\n }\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\n // false) but this is bug prone as we have no way to wait the\n // navigation to be finished before calling pushWithRedirect. Using\n // a setTimeout of 16ms seems to work but there is no guarantee for\n // it to work on every browser. So instead we do not restore the\n // history entry and trigger a new navigation as requested by the\n // navigation guard.\n // the error is already handled by router.push we just want to avoid\n // logging the error\n pushWithRedirect(error.to, toLocation\n // avoid an uncaught rejection, let push call triggerError\n )\n .then(failure => {\n // manual change in hash history #916 ending up in the URL not\n // changing, but it was changed by the manual url change, so we\n // need to manually change it ourselves\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\n !info.delta &&\n info.type === NavigationType.pop) {\n routerHistory.go(-1, false);\n }\n })\n .catch(noop);\n // avoid the then branch\n return Promise.reject();\n }\n // do not restore history on unknown direction\n if (info.delta) {\n routerHistory.go(-info.delta, false);\n }\n // unrecognized error, transfer to the global handler\n return triggerError(error, toLocation, from);\n })\n .then((failure) => {\n failure =\n failure ||\n finalizeNavigation(\n // after navigation, all matched components are resolved\n toLocation, from, false);\n // revert the navigation\n if (failure) {\n if (info.delta &&\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\n // entry while a different route is displayed\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n routerHistory.go(-info.delta, false);\n }\n else if (info.type === NavigationType.pop &&\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\n // manual change in hash history #916\n // it's like a push but lacks the information of the direction\n routerHistory.go(-1, false);\n }\n }\n triggerAfterEach(toLocation, from, failure);\n })\n // avoid warnings in the console about uncaught rejections, they are logged by triggerErrors\n .catch(noop);\n });\n }\n // Initialization and Errors\n let readyHandlers = useCallbacks();\n let errorListeners = useCallbacks();\n let ready;\n /**\n * Trigger errorListeners added via onError and throws the error as well\n *\n * @param error - error to throw\n * @param to - location we were navigating to when the error happened\n * @param from - location we were navigating from when the error happened\n * @returns the error as a rejected promise\n */\n function triggerError(error, to, from) {\n markAsReady(error);\n const list = errorListeners.list();\n if (list.length) {\n list.forEach(handler => handler(error, to, from));\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('uncaught error during route navigation:');\n }\n console.error(error);\n }\n // reject the error no matter there were error listeners or not\n return Promise.reject(error);\n }\n function isReady() {\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n return Promise.resolve();\n return new Promise((resolve, reject) => {\n readyHandlers.add([resolve, reject]);\n });\n }\n function markAsReady(err) {\n if (!ready) {\n // still not ready if an error happened\n ready = !err;\n setupListeners();\n readyHandlers\n .list()\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\n readyHandlers.reset();\n }\n return err;\n }\n // Scroll behavior\n function handleScroll(to, from, isPush, isFirstNavigation) {\n const { scrollBehavior } = options;\n if (!isBrowser || !scrollBehavior)\n return Promise.resolve();\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\n ((isFirstNavigation || !isPush) &&\n history.state &&\n history.state.scroll) ||\n null;\n return nextTick()\n .then(() => scrollBehavior(to, from, scrollPosition))\n .then(position => position && scrollToPosition(position))\n .catch(err => triggerError(err, to, from));\n }\n const go = (delta) => routerHistory.go(delta);\n let started;\n const installedApps = new Set();\n const router = {\n currentRoute,\n listening: true,\n addRoute,\n removeRoute,\n hasRoute,\n getRoutes,\n resolve,\n options,\n push,\n replace,\n go,\n back: () => go(-1),\n forward: () => go(1),\n beforeEach: beforeGuards.add,\n beforeResolve: beforeResolveGuards.add,\n afterEach: afterGuards.add,\n onError: errorListeners.add,\n isReady,\n install(app) {\n const router = this;\n app.component('RouterLink', RouterLink);\n app.component('RouterView', RouterView);\n app.config.globalProperties.$router = router;\n Object.defineProperty(app.config.globalProperties, '$route', {\n enumerable: true,\n get: () => unref(currentRoute),\n });\n // this initial navigation is only necessary on client, on server it doesn't\n // make sense because it will create an extra unnecessary navigation and could\n // lead to problems\n if (isBrowser &&\n // used for the initial navigation client side to avoid pushing\n // multiple times when the router is used in multiple apps\n !started &&\n currentRoute.value === START_LOCATION_NORMALIZED) {\n // see above\n started = true;\n push(routerHistory.location).catch(err => {\n if ((process.env.NODE_ENV !== 'production'))\n warn('Unexpected error when starting the router:', err);\n });\n }\n const reactiveRoute = {};\n for (const key in START_LOCATION_NORMALIZED) {\n Object.defineProperty(reactiveRoute, key, {\n get: () => currentRoute.value[key],\n enumerable: true,\n });\n }\n app.provide(routerKey, router);\n app.provide(routeLocationKey, shallowReactive(reactiveRoute));\n app.provide(routerViewLocationKey, currentRoute);\n const unmountApp = app.unmount;\n installedApps.add(app);\n app.unmount = function () {\n installedApps.delete(app);\n // the router is not attached to an app anymore\n if (installedApps.size < 1) {\n // invalidate the current navigation\n pendingLocation = START_LOCATION_NORMALIZED;\n removeHistoryListener && removeHistoryListener();\n removeHistoryListener = null;\n currentRoute.value = START_LOCATION_NORMALIZED;\n started = false;\n ready = false;\n }\n unmountApp();\n };\n // TODO: this probably needs to be updated so it can be used by vue-termui\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n addDevtools(app, router, matcher);\n }\n },\n };\n // TODO: type this as NavigationGuardReturn or similar instead of any\n function runGuardQueue(guards) {\n return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n }\n return router;\n}\nfunction extractChangingRecords(to, from) {\n const leavingRecords = [];\n const updatingRecords = [];\n const enteringRecords = [];\n const len = Math.max(from.matched.length, to.matched.length);\n for (let i = 0; i < len; i++) {\n const recordFrom = from.matched[i];\n if (recordFrom) {\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\n updatingRecords.push(recordFrom);\n else\n leavingRecords.push(recordFrom);\n }\n const recordTo = to.matched[i];\n if (recordTo) {\n // the type doesn't matter because we are comparing per reference\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\n enteringRecords.push(recordTo);\n }\n }\n }\n return [leavingRecords, updatingRecords, enteringRecords];\n}\n\n/**\n * Returns the router instance. Equivalent to using `$router` inside\n * templates.\n */\nfunction useRouter() {\n return inject(routerKey);\n}\n/**\n * Returns the current route location. Equivalent to using `$route` inside\n * templates.\n */\nfunction useRoute() {\n return inject(routeLocationKey);\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","/*!\n * vuex v4.0.2\n * (c) 2021 Evan You\n * @license MIT\n */\nimport { inject, reactive, watch } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n // TODO: use `computed` when it's possible. at the moment we can't due to\n // https://github.com/vuejs/vuex/pull/1883\n get: function () { return computedObj[key](); },\n enumerable: true // for local getters\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : (process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.0.2',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","const getStoreType = (store) => {\n return {\n actionContext: {},\n rootState: {},\n rootGetters: {},\n storeInstance: {}\n };\n};\n\nconst actionTree = (_store, tree) => tree;\n\nconst getterTree = (_state, tree) => tree;\n\nconst mutationTree = (_state, tree) => tree;\n\nconst getAccessorType = (store) => {\n return void 0;\n};\nconst getNestedState = (parent, namespaces) => {\n if (!parent[namespaces[0]]) {\n return parent;\n } else {\n return getNestedState(parent[namespaces[0]], namespaces.slice(1));\n }\n};\nconst createAccessor = (store, {\n getters,\n state,\n mutations,\n actions,\n namespaced\n}, namespace = \"\") => {\n const namespacedPath = namespace && namespaced ? `${namespace}/` : \"\";\n const accessor = {};\n Object.keys(getters || {}).forEach((getter) => {\n Object.defineProperty(accessor, getter, {\n get: () => store.getters[`${namespacedPath}${getter}`]\n });\n });\n const evaluatedState = state ? state instanceof Function ? state() : state : {};\n Object.keys(evaluatedState).forEach((prop) => {\n if (!Object.getOwnPropertyNames(accessor).includes(prop)) {\n const namespaces = namespace.split(\"/\");\n Object.defineProperty(accessor, prop, {\n get: () => getNestedState(store.state, namespaces)[prop]\n });\n }\n });\n Object.keys(mutations || {}).forEach((mutation) => {\n accessor[mutation] = (mutationPayload) => store.commit(`${namespacedPath}${mutation}`, mutationPayload);\n });\n Object.keys(actions || {}).forEach((action) => {\n accessor[action] = (actionPayload) => store.dispatch(`${namespacedPath}${action}`, actionPayload);\n });\n return accessor;\n};\nconst useAccessor = (store, input, namespace) => {\n const accessor = createAccessor(store, input, namespace);\n Object.keys(input.modules || {}).forEach((moduleNamespace) => {\n const nestedNamespace = namespace ? `${namespace}/${moduleNamespace}` : moduleNamespace;\n accessor[moduleNamespace] = useAccessor(store, input.modules[moduleNamespace], nestedNamespace);\n });\n return accessor;\n};\nconst getAccessorFromStore = (pattern) => {\n return (store) => useAccessor(store, pattern._modules.root._rawModule);\n};\n\nconst createMapper = (accessor) => {\n const mapper = (prop, properties) => {\n if (!properties) {\n return Object.fromEntries((Array.isArray(prop) ? prop : [prop]).map((property) => [\n property,\n function(...args) {\n const value = accessor ? accessor[property] : this.$accessor[property];\n if (value && typeof value === \"function\")\n return value(...args);\n return value;\n }\n ]));\n }\n return Object.fromEntries(properties.map((property) => [\n property,\n function(...args) {\n const value = accessor ? accessor[prop][property] : this.$accessor[prop][property];\n if (value && typeof value === \"function\")\n return value(...args);\n return value;\n }\n ]));\n };\n return mapper;\n};\n\nexport { actionTree, createMapper, getAccessorFromStore, getAccessorType, getStoreType, getterTree, mutationTree, useAccessor };\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from 'axios'\nconst apiService = axios.create({\n baseURL: process.env.API_URL,\n maxRedirects: 0,\n})\n\nconst API = {\n DEFAULT_LOCALE: navigator.language?.split(\" \")[0]?.split(\"-\")[0] || \"en\",\n user: null,\n get headers () {\n if (!API.user) {\n return {}\n }\n const { idUser, agency, provider } = API.user\n return {\n \"x-origin\": window.location.origin,\n \"x-user-id\": idUser,\n \"x-agency-id\": agency?.idAgency,\n \"x-provider-id\": provider?.idProvider,\n \"x-user-token\": API.user[\"user-token\"],\n \"x-user-locale\": API.DEFAULT_LOCALE\n }\n },\n get (url) {\n const { headers } = API\n if (API.user) {\n url += url.indexOf(\"?\") !== -1 ? \"&\" : \"?\"\n url += `userToken=${API.user[\"user-token\"]}`\n }\n return apiService.get(url, { maxRedirects: 0, headers })\n },\n post (url, data) {\n const { headers } = API\n if (API.user) {\n url += url.indexOf(\"?\") !== -1 ? \"&\" : \"?\"\n url += `userToken=${API.user[\"user-token\"]}`\n }\n return apiService.post(url, data, { maxRedirects: 0, headers })\n },\n async login ({ email, password }) {\n const { data: user } = await API.post('/api/login', { email, password })\n API.user = user\n return { data: user }\n },\n logout () {\n API.user = null\n delete API.headers[\"x-supplier-id\"]\n },\n currentUser (userToken) {\n return API.get(`/api/user?userToken=${userToken}`);\n },\n suppliers: {\n bookings: {\n search (filters) {\n return API.post('/api/supplier/bookings/search', filters)\n }\n }\n },\n agencies: {\n bookings: {\n search (filters) {\n return API.post('/api/agency/bookings/search', filters)\n }\n }\n },\n transfers: {\n search (searchSettings) {\n return API.post(\"/api/transfers/search\", searchSettings)\n },\n book (bookingRequest, paymentId) {\n return API.post('/api/transfers/createBooking?paymentId=' + paymentId, bookingRequest)\n },\n booking (idBooking) {\n return API.get(`/api/transfers/QueryBooking?idBooking=${idBooking}`)\n },\n cancelBooking (idBooking) {\n return API.get(`/api/transfers/CancelBooking?idBooking=${idBooking}`)\n },\n emailBooking (idBooking, email) {\n return API.get(`/api/transfers/EmailBooking?idBooking=${idBooking}&email=${email}`)\n },\n pay (bookingRequest) {\n return API.post('/api/payments/checkout', bookingRequest)\n },\n paymentStatus ({ uuid, session_id }) {\n return API.get(`/api/payments/checkout/done?uuid=${uuid}&session_id=${session_id || \"\"}`)\n }\n },\n admin: {\n users (user) {\n return user ? API.post('/api/admin/users', { user }) : API.get('/api/admin/users')\n },\n currencies () {\n return API.get(`/api/admin/currencies`);\n },\n search: {\n providers (query) {\n return API.get(`/api/admin/search/providers?query=${query}`);\n },\n agencies (query) {\n return API.get(`/api/admin/search/agencies?query=${query}`);\n },\n places (query, page, types) {\n return API.get(`/api/admin/search/places?query=${query}&page=${page}&types=${types}`);\n }\n },\n roles () {\n return API.get(`/api/admin/roles?`);\n }\n },\n ai ({ prompt, body }) {\n return API.post('/api/ai', { prompt, body })\n }\n}\n\nexport default API;\n","import axios from 'axios';\n\nconst locales = {\n en: 'English',\n es: 'Español',\n}\n\nconst translations = {};\nconst missingTranslations = {};\n\nfunction addMissingTranslation(key, language) {\n if (!missingTranslations[language]) {\n missingTranslations[language] = {}\n }\n missingTranslations[language][key] = \"\"\n}\n\nfunction getTranslations() {\n return {\n translations,\n missingTranslations\n }\n}\n\n// Use localStorage to save and read currentLanguage\nlet currentLanguage = localStorage.getItem('language') || navigator.language.split('-')[0];\n\nfunction setLanguage(language) {\n currentLanguage = language;\n localStorage.setItem('language', language);\n translateNode(document.body);\n}\n\nfunction getCurrentLanguage() {\n return currentLanguage;\n}\n\n/**\n * Retrieves an array of all text nodes under a given element.\n *\n * @param { Node } el - The element under which to search for text nodes.\n * @returns { Node[] } An array of text nodes found under the given element.\n */\nfunction textNodes(el) {\n const children = [] // Type: Node[]\n const walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT)\n while (walker.nextNode()) {\n children.push(walker.currentNode)\n }\n return children\n}\n\nfunction translateNode(node) {\n if (!translations[currentLanguage]) {\n translations[currentLanguage] = {}\n }\n textNodes(node).forEach(element => {\n const key = element._i18n_?.key || element.nodeValue.trim()\n if (key) {\n const translation = translations[currentLanguage]?.[key] || element._i18n_?.default;\n if (translation) {\n element.nodeValue = translation\n if (!element._i18n_) {\n element._i18n_ = { key, currentLanguage, default: key }\n }\n } else if (element._i18n_?.currentLanguage != currentLanguage) {\n addMissingTranslation(key, currentLanguage)\n }\n }\n })\n document.querySelectorAll(\"input\").forEach(element => {\n const placeholder = element.attributes[\"placeholder\"]\n if (!placeholder) return\n const key = element._i18n_?.key || placeholder.value.trim()\n if (key) {\n const translation = translations[currentLanguage]?.[key] || element._i18n_?.default;\n if (translation) {\n placeholder.value = translation;\n if (!element._i18n_) {\n element._i18n_ = { key, currentLanguage, default: key }\n }\n } else if (element._i18n_?.currentLanguage != currentLanguage) {\n addMissingTranslation(key, currentLanguage)\n }\n }\n })\n}\n\nfunction getLanguages() {\n return Object.keys(translations)\n}\n\nfunction translate(key) {\n if (!translations[currentLanguage]) {\n translations[currentLanguage] = {}\n }\n const translation = translations[currentLanguage][key];\n if (translation) {\n return translation;\n } else {\n translations[currentLanguage][key] = null\n }\n return key\n}\n\n// Initialization\n(async function loadTranslations() {\n try {\n const { BASE_URL } = import.meta.env\n const baseUrl = BASE_URL == \"/\" ? \"\" : BASE_URL\n const response = await axios.get(process.env.I18N_TRANSLATIONS_URL || `${baseUrl}/i18n.json`);\n Object.assign(translations, response.data);\n translateNode(document.body)\n } catch (error) {\n console.error('Error loading translations:', error);\n }\n})();\n\n(function setupDOMObserver() {\n const observer = new MutationObserver(() => {\n translateNode(document.body);\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();\n\nexport {\n setLanguage,\n translateNode,\n getLanguages,\n translate,\n getTranslations,\n getCurrentLanguage,\n locales\n};","import { getterTree, mutationTree, actionTree } from 'typed-vuex'\nimport { $storex } from './index'\n\nexport const namespaced = true\n\nexport const state = () => ({\n authenticated: false,\n user: null,\n theme: window.localStorage.getItem('theme') || 'pastel'\n})\n\nexport const getters = getterTree(state, {\n isAdmin: state => ['admin', 'superadmin'].indexOf(state.user?.role) !== -1,\n isProvider: state => !!state.user?.provider,\n isAgency: state => !!state.user?.agency\n})\n\nexport const mutations = mutationTree(state, {\n async onSignup (state, { authenticated, user }) {\n },\n setTheme (state, theme) {\n state.theme = theme\n },\n setUser (state, user) {\n state.user = user\n $storex.api.user = user\n const userToken = user ? user[\"user-token\"]: \"\"\n localStorage.setItem(\"user-token\", userToken)\n },\n logout () {\n $storex.user.setUser(null)\n }\n})\n\nexport const actions = actionTree(\n { state, getters, mutations },\n {\n async init () {\n try {\n const userToken = localStorage.getItem(\"user-token\")\n const { data: user } = await $storex.api.currentUser(userToken)\n $storex.user.setUser(user)\n } catch {} \n },\n async login (_, { email, password }) {\n const { data: user } = await $storex.api.login({ email, password })\n $storex.user.setUser(user)\n },\n async register (_, { email, company }) {\n }\n }\n)","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.20.2';\nvar current_codepage = 1200, current_ansi = 1252;\n/*:: declare var cptable:any; */\n/*global cptable:true, window */\nvar $cptable;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t0: 1252, /* ANSI */\n\t1: 65001, /* DEFAULT */\n\t2: 65001, /* SYMBOL */\n\t77: 10000, /* MAC */\n\t128: 932, /* SHIFTJIS */\n\t129: 949, /* HANGUL */\n\t130: 1361, /* JOHAB */\n\t134: 936, /* GB2312 */\n\t136: 950, /* CHINESEBIG5 */\n\t161: 1253, /* GREEK */\n\t162: 1254, /* TURKISH */\n\t163: 1258, /* VIETNAMESE */\n\t177: 1255, /* HEBREW */\n\t178: 1256, /* ARABIC */\n\t186: 1257, /* BALTIC */\n\t204: 1251, /* RUSSIAN */\n\t222: 874, /* THAI */\n\t238: 1250, /* EASTEUROPE */\n\t255: 1252, /* OEM */\n\t69: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array<number>*/ { var o/*:Array<number>*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16lereadu(data/*:Uint8Array*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data[2*i] + (data[2*i+1]<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_pass(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n if (c1 > 255)\n c1 = 95;\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n if (c2 > 255)\n c2 = 95;\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n if (c3 > 255)\n c3 = 95;\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_arr(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input[i++];\n e1 = c1 >> 2;\n c2 = input[i++];\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input[i++];\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n if (input.slice(0, 5) == \"data:\") {\n var i = input.slice(0, 1024).indexOf(\";base64,\");\n if (i > -1)\n input = input.slice(i + 8);\n }\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\nvar buf_utf16le = /*#__PURE__*/(function() {\n\tif(typeof Buffer === 'undefined') return false;\n\tvar x = Buffer_from([65,0]);\n\tif(!x) return false;\n\tvar o = x.toString(\"utf16le\");\n\treturn o.length == 1;\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array<string>*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array<number>*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array<number>*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") o.set(new Uint8Array(s2a(bufs[i])), maxlen);\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array<string>};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array<Array<string> >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array<Array<string> >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上åˆ/ä¸‹åˆ \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上åˆ/ä¸‹åˆ \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array<number>*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_normalize_xl_unsafe(v/*:number*/)/*:number*/ {\n\tvar s = v.toPrecision(16);\n\tif(s.indexOf(\"e\") > -1) {\n\t\tvar m = s.slice(0, s.indexOf(\"e\"));\n\t\tm = m.indexOf(\".\") > -1 ? m.slice(0, (m.slice(0,2) == \"0.\" ? 17 : 16)) : (m.slice(0,15) + fill(\"0\", m.length - 15));\n\t\treturn m + s.slice(s.indexOf(\"e\"));\n\t}\n\tvar n = s.indexOf(\".\") > -1 ? s.slice(0, (s.slice(0,2) == \"0.\" ? 17 : 16)) : (s.slice(0,15) + fill(\"0\", s.length - 15));\n\treturn Number(n);\n}\n\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tv = SSF_normalize_xl_unsafe(v);\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+(ss0 == 0 ? Math.round(val.S+val.u) : val.S); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\)[^)]*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n}\nfunction SSF_split_fmt(fmt/*:string*/)/*:Array<string>*/ {\n\tvar out/*:Array<string>*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上åˆ/下åˆ\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? fmt.charAt(i+2) : c; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上åˆ/下åˆ\") { if(dt!=null) q.v = dt.H >= 12 ? \"下åˆ\" : \"上åˆ\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) { ss0=Math.max(ss0,ssm[0].length-1); bt = 4;}\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'e': lst=out[i].t; break;\n\t\t\tcase 'M': lst=out[i].t; if(bt < 2) bt = 2; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tvar _dt;\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\tcase 2:\n\t\tcase 3:\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tif(dt.H >= 24) { dt.H = 0; ++dt.D; _dt = SSF_parse_date_code(dt.D); _dt.u = dt.u; _dt.S = dt.S; _dt.M = dt.M; _dt.H = dt.H; dt = _dt; }\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tswitch(ss0) {\n\t\t\t\tcase 1: dt.u = Math.round(dt.u * 10)/10; break;\n\t\t\t\tcase 2: dt.u = Math.round(dt.u * 100)/100; break;\n\t\t\t\tcase 3: dt.u = Math.round(dt.u * 1000)/1000; break;\n\t\t\t}\n\t\t\tif(dt.u >= 1) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tif(dt.H >= 24) { dt.H = 0; ++dt.D; _dt = SSF_parse_date_code(dt.D); _dt.u = dt.u; _dt.S = dt.S; _dt.M = dt.M; _dt.H = dt.H; dt = _dt; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\tdateNFregex.lastIndex = 0;\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array<string>*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tdateNFregex.lastIndex = 0;\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/* table of bad formats written by third-party tools */\nvar bad_formats = {\n\t\"d.m\": \"d\\\\.m\" // Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd\".\"m' or 'd\\\\.m'\n};\n\nfunction SSF__load(fmt, idx) {\n\treturn SSF_load(bad_formats[fmt] || fmt, idx);\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array<number>;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array<number>;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array<number>*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array<number>*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' && typeof table.subarray == \"function\" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array<number>*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;\nexports.version = '1.2.2';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t} break;\n\t\t\t/* ZIP64 Extended Information Field */\n\t\t\tcase 0x0001: {\n\t\t\t\tvar sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);\n\t\t\t\tp.usz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\tsz1 = blob.read_shift(4); sz2 = blob.read_shift(4);\n\t\t\t\tp.csz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\t// NOTE: volume fields are skipped\n\t\t\t} break;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = _fs); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array<number>*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array<RawBytes>*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nif(dir_start < sector_list.length) sector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array<string>*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array<RawBytes>*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array<RawBytes>*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Array<string>*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array<number>*/ = [], q/*:Array<number>*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array<RawBytes>*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array<RawBytes>*/, start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/, chkd/*:?Array<boolean>*/)/*:SectorEntry*/ {\n\tvar buf/*:Array<number>*/ = [], buf_chain/*:Array<any>*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array<RawBytes>*/, dir_start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array<boolean>*/ = [], buf/*:Array<number>*/ = [], buf_chain/*:Array<RawBytes>*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array<number>*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array<RawBytes>*/, Paths/*:Array<string>*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\twhile(!s) {\n\t\t\twhile(dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);\n\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\n\t\t\tdad = dirname(data[i][0]);\n\t\t\ts = fullPaths[dad];\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array<number>*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j/*:number*/ = 0, flen/*:number*/ = 0;\n\tvar file/*:CFBEntry*/ = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tif(_nm.length > 31) {\n\t\t\tconsole.error(\"Name \" + _nm + \" will be truncated to \" + _nm.slice(0,31));\n\t\t\t_nm = _nm.slice(0, 31);\n\t\t}\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\n/* Fixed Huffman */\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens/*:Array<number>*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array<number>*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes/*:Array<number>*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\t/* ZIP64 lengths */\n\t\tif(EF && EF[0x0001]) {\n\t\t\tif((EF[0x0001]||{}).usz) usz = EF[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) csz = EF[0x0001].csz;\n\t\t}\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif((ef[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\tif((ef[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\tif(EF) {\n\t\t\tif((EF[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t\t\tif((EF[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\t}\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = typeof fi.content == \"string\" ? CRC32.bstr(fi.content, 0) : CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = typeof fi.content == \"string\" ? s2a(fi.content) : fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n<table class=3DMsoTableGrid border=3D1 cellspacing=3D0 cellpadding=3D0 width=\n=\"70%\"\n```\n*/\nfunction write_quoted_printable(text/*:string*/)/*:string*/ {\n\tvar encoded = text.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF=]/g, function(c) {\n\t\tvar w = c.charCodeAt(0).toString(16).toUpperCase();\n\t\treturn \"=\" + (w.length == 1 ? \"0\" + w : w);\n\t});\n\n\tencoded = encoded.replace(/ $/mg, \"=20\").replace(/\\t$/mg, \"=09\");\n\n\tif(encoded.charAt(0) == \"\\n\") encoded = \"=0D\" + encoded.slice(1);\n\tencoded = encoded.replace(/\\r(?!\\n)/mg, \"=0D\").replace(/\\n\\n/mg, \"\\n=0A\").replace(/([^\\r\\n])\\n/mg, \"$1=0A\");\n\n\tvar o/*:Array<string>*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array<string>*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array<string>*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^([^:]*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nvar _fs;\nfunction set_fs(fs) { _fs = fs; }\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true });\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t} else if(typeof URL !== 'undefined' && !URL.createObjectURL && typeof chrome === 'object') {\n\t\t\t/* manifest v3 extensions -- no URL.createObjectURL */\n\t\t\tvar b64 = \"data:application/octet-stream;base64,\" + Base64_encode_arr(new Uint8Array(blobify(data)));\n\t\t\treturn chrome.downloads.download({ url: b64, filename: fname, saveAs: true });\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || e.message.indexOf(\"onstruct\") == -1) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || e.message.indexOf(\"onstruct\") == -1) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array<any>*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar dnthresh = /*#__PURE__*/Date.UTC(1899, 11, 30, 0, 0, 0); // -2209161600000\nvar dnthresh1 = /*#__PURE__*/Date.UTC(1899, 11, 31, 0, 0, 0); // -2209075200000\nvar dnthresh2 = /*#__PURE__*/Date.UTC(1904, 0, 1, 0, 0, 0); // -2209075200000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tvar res = (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n\tif(date1904) { res -= 1462; return res < -1402 ? res - 1 : res; }\n\treturn res < 60 ? res - 1 : res;\n}\nfunction numdate(v/*:number*/)/*:Date|number*/ {\n\tif(v >= 60 && v < 61) return v;\n\tvar out = new Date();\n\tout.setTime((v>60 ? v : (v+1)) * 24 * 60 * 60 * 1000 + dnthresh);\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\n/* Blame https://bugs.chromium.org/p/v8/issues/detail?id=7863 for the regexide */\nvar pdre1 = /^(\\d+):(\\d+)(:\\d+)?(\\.\\d+)?$/; // HH:MM[:SS[.UUU]]\nvar pdre2 = /^(\\d+)-(\\d+)-(\\d+)$/; // YYYY-mm-dd\nvar pdre3 = /^(\\d+)-(\\d+)-(\\d+)[T ](\\d+):(\\d+)(:\\d+)?(\\.\\d+)?$/; // YYYY-mm-dd(T or space)HH:MM[:SS[.UUU]], sans \"Z\"\n/* parses a date string as a UTC date */\nfunction parseDate(str/*:string*/, date1904/*:boolean*/)/*:Date*/ {\n\tif(str instanceof Date) return str;\n\tvar m = str.match(pdre1);\n\tif(m) return new Date((date1904 ? dnthresh2 : dnthresh1) + ((parseInt(m[1], 10)*60 + parseInt(m[2], 10))*60 + (m[3] ? parseInt(m[3].slice(1), 10) : 0))*1000 + (m[4] ? parseInt((m[4]+\"000\").slice(1,4), 10) : 0));\n\tm = str.match(pdre2);\n\tif(m) return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], 0, 0, 0, 0));\n\t/* TODO: 1900-02-29T00:00:00.000 should return a flag to treat as a date code (affects xlml) */\n\tm = str.match(pdre3);\n\tif(m) return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], +m[4], +m[5], ((m[6] && parseInt(m[6].slice(1), 10))|| 0), ((m[7] && parseInt((m[7] + \"0000\").slice(1,4), 10))||0)));\n\tvar d = new Date(str);\n\treturn d;\n}\n\nfunction cc2str(arr/*:Array<number>*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit && buf_utf16le) {\n\t\t\t// TODO: temporary patch\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“â€â€¢â€“—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [], i = 0;\n\t// this cascade is for the browsers and runtimes of antiquity (and for modern runtimes that lack TextEncoder)\n\ttry {\n\t\tfor(i = 0; i < arr.length - 65536; i+=65536) o.push(String.fromCharCode.apply(0, arr.slice(i, i + 65536)));\n\t\to.push(String.fromCharCode.apply(0, arr.slice(i)));\n\t} catch(e) { try {\n\t\t\tfor(; i < arr.length - 16384; i+=16384) o.push(String.fromCharCode.apply(0, arr.slice(i, i + 16384)));\n\t\t\to.push(String.fromCharCode.apply(0, arr.slice(i)));\n\t\t} catch(e) {\n\t\t\tfor(; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(]([^()]*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\n\n/* NOTE: Chrome rejects bare times like 1:23 PM */\nvar FDRE1 = /^(0?\\d|1[0-2])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))\\s+([ap])m?$/;\nvar FDRE2 = /^([01]?\\d|2[0-3])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))$/;\nvar FDISO = /^(\\d+)-(\\d+)-(\\d+)[T ](\\d+):(\\d+)(:\\d+)(\\.\\d+)?[Z]?$/; // YYYY-mm-dd(T or space)HH:MM:SS[.UUU][Z]\n\n/* TODO: 1904 adjustment */\nvar utc_append_works = new Date(\"6/9/69 00:00 UTC\").valueOf() == -17798400000;\nfunction fuzzytime1(M) /*:Date*/ {\n\tif(!M[2]) return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), 0, 0, 0));\n\tif(M[3]) {\n\t\t\tif(M[4]) return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[4], parseFloat(M[3])*1000));\n\t\t\telse return new Date(Date.UTC(1899,11,31,(M[7] == \"p\" ? 12 : 0), +M[1], +M[2], parseFloat(M[3])*1000));\n\t}\n\telse if(M[5]) return new Date(Date.UTC(1899,11,31, (+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0));\n\telse return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], 0, 0));\n}\nfunction fuzzytime2(M) /*:Date*/ {\n\tif(!M[2]) return new Date(Date.UTC(1899,11,31,+M[1], 0, 0, 0));\n\tif(M[3]) {\n\t\t\tif(M[4]) return new Date(Date.UTC(1899,11,31,+M[1], +M[2], +M[4], parseFloat(M[3])*1000));\n\t\t\telse return new Date(Date.UTC(1899,11,31,0, +M[1], +M[2], parseFloat(M[3])*1000));\n\t}\n\telse if(M[5]) return new Date(Date.UTC(1899,11,31, +M[1], +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0));\n\telse return new Date(Date.UTC(1899,11,31,+M[1], +M[2], 0, 0));\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\t// See issue 2863 -- this is technically not supported in Excel but is otherwise useful\n\tif(FDISO.test(s)) return s.indexOf(\"Z\") == -1 ? local_to_utc(new Date(s)) : new Date(s);\n\tvar lower = s.toLowerCase();\n\tvar lnos = lower.replace(/\\s+/g, \" \").trim();\n\tvar M = lnos.match(FDRE1);\n\tif(M) return fuzzytime1(M);\n\tM = lnos.match(FDRE2);\n\tif(M) return fuzzytime2(M);\n\tM = lnos.match(pdre3);\n\tif(M) return new Date(Date.UTC(+M[1], +M[2]-1, +M[3], +M[4], +M[5], ((M[6] && parseInt(M[6].slice(1), 10))|| 0), ((M[7] && parseInt((M[7] + \"0000\").slice(1,4), 10))||0)));\n\tvar o = new Date(utc_append_works && s.indexOf(\"UTC\") == -1 ? s + \" UTC\": s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.replace(/[ap]m?/, \"\").match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099 || s.match(/[^-0-9:,\\/\\\\\\ ]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array<string>*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\n\nfunction utc_to_local(utc) {\n\treturn new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds(), utc.getUTCMilliseconds());\n}\nfunction local_to_utc(local) {\n\treturn new Date(Date.UTC(local.getFullYear(), local.getMonth(), local.getDate(), local.getHours(), local.getMinutes(), local.getSeconds(), local.getMilliseconds()));\n}\n\nfunction remove_doctype(str) {\n\tvar preamble = str.slice(0, 1024);\n\tvar si = preamble.indexOf(\"<!DOCTYPE\");\n\tif(si == -1) return str;\n\tvar m = str.match(/<[\\w]/);\n\tif(!m) return str;\n\treturn str.slice(0, si) + str.slice(m.index);\n}\n\n/* str.match(/<!--[\\s\\S]*?-->/g) --> str_match_ng(str, \"<!--\", \"-->\") */\nfunction str_match_ng(str, s, e) {\n var out = [];\n\n var si = str.indexOf(s);\n while(si > -1) {\n var ei = str.indexOf(e, si + s.length);\n\t\tif(ei == -1) break;\n\n\t\tout.push(str.slice(si, ei + e.length));\n\t\tsi = str.indexOf(s, ei + e.length);\n\t}\n\n return out.length > 0 ? out : null;\n}\n\n/* str.replace(/<!--[\\s\\S]*?-->/g, \"\") --> str_remove_ng(str, \"<!--\", \"-->\") */\nfunction str_remove_ng(str, s, e) {\n var out = [], last = 0;\n\n var si = str.indexOf(s);\n\tif(si == -1) return str;\n while(si > -1) {\n\t\tout.push(str.slice(last, si));\n var ei = str.indexOf(e, si + s.length);\n\t\tif(ei == -1) break;\n\n\t\tif((si = str.indexOf(s, (last = ei + e.length))) == -1) out.push(str.slice(last));\n\t}\n\n return out.join(\"\");\n}\n\n/* str.match(/<tag\\b[^>]*?>([\\s\\S]*?)</tag>/) --> str_match_xml(str, \"tag\") */\nvar xml_boundary = { \" \": 1, \"\\t\": 1, \"\\r\": 1, \"\\n\": 1, \">\": 1 };\nfunction str_match_xml(str, tag) {\n\tvar si = str.indexOf('<' + tag), w = tag.length + 1, L = str.length;\n\twhile(si >= 0 && si <= L - w && !xml_boundary[str.charAt(si + w)]) si = str.indexOf('<' + tag, si+1);\n\tif(si === -1) return null;\n\tvar sf = str.indexOf(\">\", si + tag.length);\n\tif(sf === -1) return null;\n\tvar et = \"</\" + tag + \">\";\n\tvar ei = str.indexOf(et, sf);\n\tif(ei == -1) return null;\n\treturn [str.slice(si, ei + et.length), str.slice(sf + 1, ei)];\n}\n\n/* str.match(/<(?:\\w+:)?tag\\b[^<>]*?>([\\s\\S]*?)<\\/(?:\\w+:)?tag>/) --> str_match_xml(str, \"tag\") */\nvar str_match_xml_ns = /*#__PURE__*/(function() {\n\tvar str_match_xml_ns_cache = {};\n\treturn function str_match_xml_ns(str, tag) {\n\t\tvar res = str_match_xml_ns_cache[tag];\n\t\tif(!res) str_match_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<(?:\\\\w+:)?'+tag+'\\\\b[^<>]*>', \"g\"),\n\t\t\tnew RegExp('</(?:\\\\w+:)?'+tag+'>', \"g\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m = res[0].exec(str);\n\t\tif(!m) return null;\n\t\tvar si = m.index;\n\t\tvar sf = res[0].lastIndex;\n\t\tres[1].lastIndex = res[0].lastIndex;\n\t\tm = res[1].exec(str);\n\t\tif(!m) return null;\n\t\tvar ei = m.index;\n\t\tvar ef = res[1].lastIndex;\n\t\treturn [str.slice(si, ef), str.slice(sf, ei)];\n\t};\n})();\n\n/* str.match(/<(?:\\w+:)?tag\\b[^<>]*?>([\\s\\S]*?)<\\/(?:\\w+:)?tag>/g) --> str_match_xml_ns_g(str, \"tag\") */\nvar str_match_xml_ns_g = /*#__PURE__*/(function() {\n\tvar str_match_xml_ns_cache = {};\n\treturn function str_match_xml_ns(str, tag) {\n\t\tvar out = [];\n\t\tvar res = str_match_xml_ns_cache[tag];\n\t\tif(!res) str_match_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<(?:\\\\w+:)?'+tag+'\\\\b[^<>]*>', \"g\"),\n\t\t\tnew RegExp('</(?:\\\\w+:)?'+tag+'>', \"g\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m;\n\t\twhile((m = res[0].exec(str))) {\n\t\t\tvar si = m.index;\n\t\t\tres[1].lastIndex = res[0].lastIndex;\n\t\t\tm = res[1].exec(str);\n\t\t\tif(!m) return null;\n\t\t\tvar ef = res[1].lastIndex;\n\t\t\tout.push(str.slice(si, ef));\n\t\t\tres[0].lastIndex = res[1].lastIndex;\n\t\t}\n\t\treturn out.length == 0 ? null : out;\n\t};\n})();\nvar str_remove_xml_ns_g = /*#__PURE__*/(function() {\n\tvar str_remove_xml_ns_cache = {};\n\treturn function str_remove_xml_ns_g(str, tag) {\n\t\tvar out = [];\n\t\tvar res = str_remove_xml_ns_cache[tag];\n\t\tif(!res) str_remove_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<(?:\\\\w+:)?'+tag+'\\\\b[^<>]*>', \"g\"),\n\t\t\tnew RegExp('</(?:\\\\w+:)?'+tag+'>', \"g\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m;\n\t\tvar si = 0, ef = 0;\n\t\twhile((m = res[0].exec(str))) {\n\t\t\tsi = m.index;\n\t\t\tout.push(str.slice(ef, si));\n\t\t\tef = si;\n\t\t\tres[1].lastIndex = res[0].lastIndex;\n\t\t\tm = res[1].exec(str);\n\t\t\tif(!m) return null;\n\t\t\tef = res[1].lastIndex;\n\t\t\tres[0].lastIndex = res[1].lastIndex;\n\t\t}\n\t\tout.push(str.slice(ef));\n\t\treturn out.length == 0 ? \"\" : out.join(\"\");\n\t};\n})();\n\n/* str.match(/<(?:\\w+:)?tag\\b[^>]*?>([\\s\\S]*?)<\\/(?:\\w+:)?tag>/gi) --> str_match_xml_ns_ig(str, \"tag\") */\nvar str_match_xml_ig = /*#__PURE__*/(function() {\n\tvar str_match_xml_ns_cache = {};\n\treturn function str_match_xml_ns(str, tag) {\n\t\tvar out = [];\n\t\tvar res = str_match_xml_ns_cache[tag];\n\t\tif(!res) str_match_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<'+tag+'\\\\b[^<>]*>', \"ig\"),\n\t\t\tnew RegExp('</'+tag+'>', \"ig\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m;\n\t\twhile((m = res[0].exec(str))) {\n\t\t\tvar si = m.index;\n\t\t\tres[1].lastIndex = res[0].lastIndex;\n\t\t\tm = res[1].exec(str);\n\t\t\tif(!m) return null;\n\t\t\tvar ef = res[1].lastIndex;\n\t\t\tout.push(str.slice(si, ef));\n\t\t\tres[0].lastIndex = res[1].lastIndex;\n\t\t}\n\t\treturn out.length == 0 ? null : out;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].replace(/^Root Entry[\\/]/,\"\").toLowerCase();\n\t\tif(f == n || g == n) return zip.files ? zip.files[k[i]] : zip.FileIndex[i];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file/*:string*/) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file/*:string*/, safe/*:?boolean*/)/*:?string*/ {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipbin(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdatabin(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipbin(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i].replace(/^Root Entry[\\/]/, \"\"));\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) {\n\t\tif(typeof content == \"string\") {\n\t\t\tvar res;\n\t\t\tif(has_buf) res = Buffer_from(content);\n\t\t\t/* TODO: investigate performance in Edge 13 */\n\t\t\t//else if(typeof TextEncoder !== \"undefined\") res = new TextEncoder().encode(content);\n\t\t\telse res = utf8decode(content);\n\t\t\treturn CFB.utils.cfb_add(zip, path, res);\n\t\t}\n\t\tCFB.utils.cfb_add(zip, path, content);\n\t}\n\telse zip.file(path, content);\n}\n\nfunction zip_new() { return CFB.utils.cfb_new(); }\n\nfunction zip_read(d, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": return CFB.read(d, { type: \"base64\" });\n\t\tcase \"binary\": return CFB.read(d, { type: \"binary\" });\n\t\tcase \"buffer\": case \"array\": return CFB.read(d, { type: \"buffer\" });\n\t}\n\tthrow new Error(\"Unrecognized type \" + o.type);\n}\n\nfunction resolve_path(path/*:string*/, base/*:string*/)/*:string*/ {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/\\s([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?<>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\"<>\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^<>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i].slice(1);\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\tfunction raw_unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn raw_unescapexml(s.slice(0, i)) + s.slice(i+9,j) + raw_unescapexml(s.slice(j+3));\n\t}\n\treturn function unescapexml(text/*:string*/, xlsx/*:boolean*/) {\n\t\tvar out = raw_unescapexml(text);\n\t\treturn xlsx ? out.replace(/\\r\\n/g, \"\\n\") : out;\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f\\uFFFE-\\uFFFF]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\n/* note: xsd:boolean valid values: true / 1 / false / 0 */\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': return true;\n\t\tcase 0: case false: case '0': case 'false': return false;\n\t\t//default: throw new Error(\"Invalid xsd:boolean \" + value);\n\t}\n\treturn false;\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/(^|[^\\t\\n\\r ])[\\t\\n\\r ]+$/,\"$1\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\b\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^<>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^<\"'>]*)>([\\s\\S]*)</;\nfunction parseVector(data/*:string*/, opts)/*:Array<{v:string,t:string}>*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array<string>*/ = str_match_xml_ns_g(data, h.baseType)||[];\n\tvar res/*:Array<any>*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags, ODS uses invalid XML */\nvar xlmlregex = /<([\\/]?)([^\\s?><!\\/:\"]*:|)([^\\s?<>:\\/\"]+)(?:\\s+[^<>=?\"'\\s]+=\"[^\"]*?\")*\\s*[\\/]?>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array<Array<RawBytes> >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar __toBuffer = has_buf ? function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar __utf16le = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; } : ___utf16le;\n\nvar ___hexlify = function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar __hexlify = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { return Buffer.isBuffer(b)/*:: && b instanceof Buffer*/ ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); } : ___hexlify;\n\nvar ___utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __utf8 = has_buf ? function utf8_b(b/*:RawBytes|CFBlob*/, s/*:number*/, e/*:number*/) { return (Buffer.isBuffer(b)/*:: && (b instanceof Buffer)*/) ? b.toString('utf8',s,e) : ___utf8(b,s,e); } : ___utf8;\n\nvar ___lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs' || f == 'cpstr') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cpp = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cpp[0];\n\t\t\t}\n\t\t\tsize = val.length;\n\t\t} else if(typeof $cptable !== 'undefined' && f == 'cpstr') {\n\t\t\tcpp = $cptable.utils.encode(current_codepage, val);\n\t\t\t/* replace null bytes with _ when relevant */\n if(cpp.length == val.length) for(i = 0; i < val.length; ++i) if(cpp[i] == 0 && val.charCodeAt(i) != 0) cpp[i] = 0x5F;\n if(cpp.length == 2 * val.length) for(i = 0; i < val.length; ++i) if(cpp[2*i] == 0 && cpp[2*i+1] == 0 && val.charCodeAt(i) != 0) cpp[2*i] = 0x5F;\n\t\t\tfor(i = 0; i < cpp.length; ++i) this[this.l + i] = cpp[i];\n\t\t\tsize = cpp.length;\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t\tsize = val.length;\n\t\t}\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array<Block>*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\t// workaround for new Buffer(3).slice(0,0) bug in bun 0.1.3\n\t\tif(curbuf.l) {\n\t\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\t}\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array<string>*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\nfunction fix_range(a1/*:string*/)/*:string*/ {\n\tvar s = decode_range(a1);\n\treturn \"$\" + encode_col(s.s.c) + \"$\" + encode_row(s.s.r) + \":$\" + encode_col(s.e.c) + \"$\" + encode_row(s.e.r);\n}\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname.replace(/'/g, \"''\") + \"'\";\n\treturn sname;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_new(opts) {\n\tvar out = {};\n\tvar o = opts || {};\n\tif(o.dense) out[\"!data\"] = [];\n\treturn out;\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tif(dense && !ws[\"!data\"]) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws[\"!ref\"]){\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = (ws[\"!ref\"] ? _range.e.r + 1 : 0);\n\t} else {\n\t\trange.s.c = range.e.c = range.s.r = range.e.r = 0;\n\t}\n\tvar row = [], seen = false;\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tvar __R = _R + R, __Rstr = \"\" + (__R + 1);\n\t\t//console.log(\"!!\", R, _R, __R);\n\t\tif(dense) {\n\t\t\tif(!ws[\"!data\"][__R]) ws[\"!data\"][__R] = [];\n\t\t\trow = ws[\"!data\"][__R];\n\t\t}\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tseen = true;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(!o.UTC) cell.v = local_to_utc(cell.v);\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v, o.date1904); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(row[__C] && row[__C].z) cell.z = row[__C].z;\n\t\t\t\trow[__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_col(__C) + __Rstr/*:any*/;\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(seen && range.s.c < 10400000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\n//var VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\n//var VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Category', t: VT_STRING },\n\t0x03: { n: 'PresentationFormat', t: VT_STRING },\n\t0x04: { n: 'ByteCount', t: VT_I4 },\n\t0x05: { n: 'LineCount', t: VT_I4 },\n\t0x06: { n: 'ParagraphCount', t: VT_I4 },\n\t0x07: { n: 'SlideCount', t: VT_I4 },\n\t0x08: { n: 'NoteCount', t: VT_I4 },\n\t0x09: { n: 'HiddenCount', t: VT_I4 },\n\t0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n\t0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n\t0x0c: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t0x0d: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t0x0e: { n: 'Manager', t: VT_STRING },\n\t0x0f: { n: 'Company', t: VT_STRING },\n\t0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n\t0x11: { n: 'CharacterCount', t: VT_I4 },\n\t0x13: { n: 'SharedDoc', t: VT_BOOL },\n\t0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t0x18: { n: 'DigSig', t: VT_BLOB },\n\t0x1A: { n: 'ContentType', t: VT_STRING },\n\t0x1B: { n: 'ContentStatus', t: VT_STRING },\n\t0x1C: { n: 'Language', t: VT_STRING },\n\t0x1D: { n: 'Version', t: VT_STRING },\n\t0xFF: {},\n\t/* [MS-OLEPS] 2.18 */\n\t0x80000000: { n: 'Locale', t: VT_UI4 },\n\t0x80000003: { n: 'Behavior', t: VT_UI4 },\n\t0x72627262: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Title', t: VT_STRING },\n\t0x03: { n: 'Subject', t: VT_STRING },\n\t0x04: { n: 'Author', t: VT_STRING },\n\t0x05: { n: 'Keywords', t: VT_STRING },\n\t0x06: { n: 'Comments', t: VT_STRING },\n\t0x07: { n: 'Template', t: VT_STRING },\n\t0x08: { n: 'LastAuthor', t: VT_STRING },\n\t0x09: { n: 'RevNumber', t: VT_STRING },\n\t0x0A: { n: 'EditTime', t: VT_FILETIME },\n\t0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n\t0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n\t0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n\t0x0E: { n: 'PageCount', t: VT_I4 },\n\t0x0F: { n: 'WordCount', t: VT_I4 },\n\t0x10: { n: 'CharCount', t: VT_I4 },\n\t0x11: { n: 'Thumbnail', t: VT_CF },\n\t0x12: { n: 'Application', t: VT_STRING },\n\t0x13: { n: 'DocSecurity', t: VT_I4 },\n\t0xFF: {},\n\t/* [MS-OLEPS] 2.18 */\n\t0x80000000: { n: 'Locale', t: VT_UI4 },\n\t0x80000003: { n: 'Behavior', t: VT_UI4 },\n\t0x72627262: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t0x0001: \"US\", // United States\n\t0x0002: \"CA\", // Canada\n\t0x0003: \"\", // Latin America (except Brazil)\n\t0x0007: \"RU\", // Russia\n\t0x0014: \"EG\", // Egypt\n\t0x001E: \"GR\", // Greece\n\t0x001F: \"NL\", // Netherlands\n\t0x0020: \"BE\", // Belgium\n\t0x0021: \"FR\", // France\n\t0x0022: \"ES\", // Spain\n\t0x0024: \"HU\", // Hungary\n\t0x0027: \"IT\", // Italy\n\t0x0029: \"CH\", // Switzerland\n\t0x002B: \"AT\", // Austria\n\t0x002C: \"GB\", // United Kingdom\n\t0x002D: \"DK\", // Denmark\n\t0x002E: \"SE\", // Sweden\n\t0x002F: \"NO\", // Norway\n\t0x0030: \"PL\", // Poland\n\t0x0031: \"DE\", // Germany\n\t0x0034: \"MX\", // Mexico\n\t0x0037: \"BR\", // Brazil\n\t0x003d: \"AU\", // Australia\n\t0x0040: \"NZ\", // New Zealand\n\t0x0042: \"TH\", // Thailand\n\t0x0051: \"JP\", // Japan\n\t0x0052: \"KR\", // Korea\n\t0x0054: \"VN\", // Viet Nam\n\t0x0056: \"CN\", // China\n\t0x005A: \"TR\", // Turkey\n\t0x0069: \"JS\", // Ramastan\n\t0x00D5: \"DZ\", // Algeria\n\t0x00D8: \"MA\", // Morocco\n\t0x00DA: \"LY\", // Libya\n\t0x015F: \"PT\", // Portugal\n\t0x0162: \"IS\", // Iceland\n\t0x0166: \"FI\", // Finland\n\t0x01A4: \"CZ\", // Czech Republic\n\t0x0376: \"TW\", // Taiwan\n\t0x03C1: \"LB\", // Lebanon\n\t0x03C2: \"JO\", // Jordan\n\t0x03C3: \"SY\", // Syria\n\t0x03C4: \"IQ\", // Iraq\n\t0x03C5: \"KW\", // Kuwait\n\t0x03C6: \"SA\", // Saudi Arabia\n\t0x03CB: \"AE\", // United Arab Emirates\n\t0x03CC: \"IL\", // Israel\n\t0x03CE: \"QA\", // Qatar\n\t0x03D5: \"IR\", // Iran\n\t0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array<number>*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0x000000, /* 0x40 icvForeground ?? */\n\t0xFFFFFF, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t0x00: \"#NULL!\",\n\t0x07: \"#DIV/0!\",\n\t0x0F: \"#VALUE!\",\n\t0x17: \"#REF!\",\n\t0x1D: \"#NAME?\",\n\t0x24: \"#NUM!\",\n\t0x2A: \"#N/A\",\n\t0x2B: \"#GETTING_DATA\",\n\t0xFF: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\tworkbooks: {\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t},\n\tstrs: { /* Shared Strings */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t},\n\tcomments: { /* Comments */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t},\n\tsheets: { /* Worksheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t},\n\tcharts: { /* Chartsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t},\n\tdialogs: { /* Dialogsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t},\n\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t},\n\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t},\n\tstyles: { /* Styles */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension.toLowerCase()] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts, raw)/*:string*/ {\n\tvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array<string>*/ = [], v;\n\n\tif(!raw) {\n\t\to[o.length] = (XML_HEADER);\n\t\to[o.length] = writextag('Types', null, {\n\t\t\t'xmlns': XMLNS.CT,\n\t\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t\t'xmlns:xsi': XMLNS.xsi\n\t\t});\n\t\to = o.concat([\n\t\t\t['xml', 'application/xml'],\n\t\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t\t/* from test files */\n\t\t\t['bmp', 'image/bmp'],\n\t\t\t['png', 'image/png'],\n\t\t\t['gif', 'image/gif'],\n\t\t\t['emf', 'image/x-emf'],\n\t\t\t['wmf', 'image/x-wmf'],\n\t\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t\t['pdf', 'application/pdf'],\n\t\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t\t].map(function(x) {\n\t\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t\t}));\n\t}\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(!raw && o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tCONN: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = unescapexml(y.Target); rel.Id = y.Id; if(y.TargetMode) rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\n\n/* TODO */\nfunction write_rels(rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Relationships', null, {\n\t\t//'xmlns:ns0': XMLNS.RELS,\n\t\t'xmlns': XMLNS.RELS\n\t})];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n var str = xlml_normalize(d);\n var Rn;\n var FEtag;\n while (Rn = xlmlregex.exec(str))\n switch (Rn[3]) {\n case \"manifest\":\n break;\n case \"file-entry\":\n FEtag = parsexmltag(Rn[0], false);\n if (FEtag.path == \"/\" && FEtag.type !== CT_ODS)\n throw new Error(\"This OpenDocument is not a spreadsheet\");\n break;\n case \"encryption-data\":\n case \"algorithm\":\n case \"start-key-generation\":\n case \"key-derivation\":\n throw new Error(\"Unsupported ODS Encryption\");\n default:\n if (opts && opts.WTF)\n throw Rn;\n }\n}\nfunction write_manifest(manifest) {\n var o = [XML_HEADER];\n o.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n o.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n for (var i = 0; i < manifest.length; ++i)\n o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n o.push(\"</manifest:manifest>\");\n return o.join(\"\");\n}\nfunction write_rdf_type(file, res, tag) {\n return [\n ' <rdf:Description rdf:about=\"' + file + '\">\\n',\n ' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + \"#\" + res + '\"/>\\n',\n \" </rdf:Description>\\n\"\n ].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n return [\n ' <rdf:Description rdf:about=\"' + base + '\">\\n',\n ' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n \" </rdf:Description>\\n\"\n ].join(\"\");\n}\nfunction write_rdf(rdf) {\n var o = [XML_HEADER];\n o.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n for (var i = 0; i != rdf.length; ++i) {\n o.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n o.push(write_rdf_has(\"\", rdf[i][0]));\n }\n o.push(write_rdf_type(\"\", \"Document\", \"pkg\"));\n o.push(\"</rdf:RDF>\");\n return o.join(\"\");\n}\nfunction write_meta_ods(wb, opts) {\n return '<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>SheetJS ' + XLSX.version + \"</meta:generator></office:meta></office:document-meta>\";\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array<Array<string> >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = str_match_xml(data, f[0]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array<Array<string> >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array<Array<any>>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"ЛиÑÑ‚Ñ‹\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"×’×œ×™×•× ×•×ª עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"åå‰ä»˜ã一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne omrÃ¥der\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (str_match_xml_ns(data, f[0])||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = str_match_xml(data, f[0]);\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^<>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nfunction write_cust_props(cp/*::, opts*/)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Properties', null, {\n\t\t'xmlns': XMLNS.CUST_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t})];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array<string>*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array<string>*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tif(Props[i][0] == 0 && Props.length > i+1 && Props[i][1] == Props[i+1][1]) continue; // R9\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/(^|[^\\u0000])\\u0000+$/,\"$1\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/(^|[^\\u0000])\\u0000+$/,\"$1\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ];\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length/*:number*/) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v/*:any*/, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob/*::, length:?number, opts:?any*/) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v/*:number*/, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length/*:: :?number, opts:?any*/) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob/*::, length*/) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t/*:string*/, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, ((t == 'e') ? +v : +!!v));\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob, length, opts)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ret = ({r:rw, c:col, ixfe:0}/*:any*/);\n\tif(opts && opts.biff == 2 || length == 7) {\n\t\t/* TODO: pass back flags */\n\t\tvar flags = blob.read_shift(1);\n\t\tret.ixfe = flags & 0x3F;\n\t\tblob.l += 2;\n\t\t/*\n\t\tvar ifntifmt = blob.read_shift(1);\n\t\tvar ifmt = ifntifmt & 0x3f, ifnt = ifntifmt >> 6;\n\t\tvar flags3 = blob.read_shift(1);\n\t\t*/\n\t} else ret.ixfe = blob.read_shift(2);\n\treturn ret;\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t0x00: parse_FtSkip, /* FtEnd */\n\t0x04: parse_FtSkip, /* FtMacro */\n\t0x05: parse_FtSkip, /* FtButton */\n\t0x06: parse_FtSkip, /* FtGmo */\n\t0x07: parse_FtCf, /* FtCf */\n\t0x08: parse_FtSkip, /* FtPioGrbit */\n\t0x09: parse_FtSkip, /* FtPictFmla */\n\t0x0A: parse_FtSkip, /* FtCbls */\n\t0x0B: parse_FtSkip, /* FtRbo */\n\t0x0C: parse_FtSkip, /* FtSbs */\n\t0x0D: parse_FtNts, /* FtNts */\n\t0x0E: parse_FtSkip, /* FtSbsFmla */\n\t0x0F: parse_FtSkip, /* FtGboData */\n\t0x10: parse_FtSkip, /* FtEdoData */\n\t0x11: parse_FtSkip, /* FtRboData */\n\t0x12: parse_FtSkip, /* FtCblsData */\n\t0x13: parse_FtSkip, /* FtLbsData */\n\t0x14: parse_FtSkip, /* FtCblsFmla */\n\t0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts[ft] = FtTab[ft](blob, tgt - blob.l);\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar name = \"\";\n\tif(opts.biff == 4) {\n\t\tname = parse_ShortXLUnicodeString(blob, 0, opts);\n\t\tif(name.length === 0) name = \"Sheet1\";\n\t\treturn { name:name };\n\t}\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tname = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, length, opts);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, length, opts);\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\nfunction write_BIFF2Format(f/*:string*/) {\n\tvar o = new_buf(1 + f.length);\n\to.write_shift(1, f.length);\n\to.write_shift(f.length, f, \"sbcs\");\n\treturn o;\n}\nfunction write_BIFF4Format(f/*:string*/) {\n\tvar o = new_buf(3 + f.length);\n\to.l += 2;\n\to.write_shift(1, f.length);\n\to.write_shift(f.length, f, \"sbcs\");\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\nfunction parse_BIFF2XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); blob.l++; o.flags = blob.read_shift(1);\n\to.numFmtId = o.flags & 0x3F; o.flags>>=6;\n\to.fStyle = 0;\n\to.data = {}; // TODO\n\treturn o;\n}\nfunction write_BIFF2XF(xf) {\n\tvar o = new_buf(4);\n\to.l+=2;\n\to.write_shift(1, xf.numFmtId);\n\to.l++;\n\treturn o;\n}\nfunction write_BIFF3XF(xf) {\n\tvar o = new_buf(12);\n\to.l++;\n\to.write_shift(1, xf.numFmtId);\n\to.l += 10;\n\treturn o;\n}\n/* TODO: check other fields */\nvar write_BIFF4XF = write_BIFF3XF;\nfunction parse_BIFF3XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); o.numFmtId = blob.read_shift(1); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\to.data = {}; // TODO\n\treturn o;\n}\nfunction parse_BIFF4XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); o.numFmtId = blob.read_shift(1); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\to.data = {}; // TODO\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array<number>*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: legacy record filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\t/* see issue 2907 */\n\tif(!(opts.biff > 8) && (length == blob[blob.l] + (blob[blob.l+1] == 0x03 ? 1 : 0) + 1)) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 */\nfunction parse_NoteSh(blob, length, opts) {\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\tif(opts && (opts.biff < 8)) {\n\t\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\t\tif(row == 0xFFFF || row == -1) return; // TODO: test continuation\n\t\tvar cch = blob.read_shift(2);\n\t\tvar cmnt = blob.read_shift(Math.min(cch,2048), 'cpstr');\n\t\treturn [{r:row, c:col}, cmnt];\n\t}\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\nfunction write_NOTE_BIFF2(text/*:string*/, R/*:number*/, C/*:number*/, len/*?:number*/) {\n\tvar o = new_buf(6 + (len || text.length));\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, len || text.length);\n\to.write_shift(text.length, text, \"sbcs\");\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array<Range>*/ {\n\tvar merges/*:Array<Range>*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array<Range>*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/, ixfe/*:number*/, ifmt/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(1, ixfe||0/* & 0x3F */);\n\tout.write_shift(1, ifmt||0/* & 0x3F */);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/, ixfe, ifmt) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c, ixfe||0, ifmt||0);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/, ixfe/*:number*/, ifmt/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c, ixfe||0, ifmt||0);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\nfunction parse_BIFF2BOOLERR(blob, length, opts) {\n\tvar bestart = blob.l + 7;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tblob.l = bestart;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF4SheetInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(4);\n\tvar cch = blob.read_shift(1), name = blob.read_shift(cch, \"sbcs\");\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { flags: flags, name:name };\n}var DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t0x01: 437, 0x02: 850,\n\t0x03: 1252, 0x04: 10000,\n\t0x64: 852, 0x65: 866,\n\t0x66: 865, 0x67: 861,\n\t0x68: 895, 0x69: 620,\n\t0x6A: 737, 0x6B: 857,\n\t0x78: 950, 0x79: 949,\n\t0x7A: 936, 0x7B: 932,\n\t0x7C: 874, 0x7D: 1255,\n\t0x7E: 1256, 0x96: 10007,\n\t0x97: 10029, 0x98: 10006,\n\t0xC8: 1250, 0xC9: 1251,\n\t0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n\t0x00: 20127, 0x08: 865,\n\t0x09: 437, 0x0A: 850,\n\t0x0B: 437, 0x0D: 437,\n\t0x0E: 850, 0x0F: 437,\n\t0x10: 850, 0x11: 437,\n\t0x12: 850, 0x13: 932,\n\t0x14: 850, 0x15: 437,\n\t0x16: 850, 0x17: 865,\n\t0x18: 437, 0x19: 437,\n\t0x1A: 850, 0x1B: 437,\n\t0x1C: 863, 0x1D: 850,\n\t0x1F: 852, 0x22: 852,\n\t0x23: 852, 0x24: 860,\n\t0x25: 850, 0x26: 866,\n\t0x37: 850, 0x40: 852,\n\t0x4D: 936, 0x4E: 949,\n\t0x4F: 950, 0x50: 874,\n\t0x57: 1252, 0x58: 1252,\n\t0x59: 1252, 0x6C: 863,\n\t0x86: 737, 0x87: 852,\n\t0x88: 857, 0xCC: 1257,\n\n\t0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n\t0x01: 437, 0x02: 850,\n\t0x03: 1252, 0x04: 10000,\n\t0x64: 852, 0x65: 866,\n\t0x66: 865, 0x67: 861,\n\t0x68: 895, 0x69: 620,\n\t0x6A: 737, 0x6B: 857,\n\t0x78: 950, 0x79: 949,\n\t0x7A: 936, 0x7B: 932,\n\t0x7C: 874, 0x7D: 1255,\n\t0x7E: 1256, 0x96: 10007,\n\t0x97: 10029, 0x98: 10006,\n\t0xC8: 1250, 0xC9: 1251,\n\t0xCA: 1254, 0xCB: 1253,\n\t0x00: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array<DBFField>*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = (typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)) : a2s(d.slice(d.l, d.l + ww))).replace(/[\\u0000\\r\\n][\\S\\s]*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/([^\\s])\\s+$/,\"$1\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) {\n\t\t\t\t\t\tout[R][C] = new Date(Date.UTC(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8), 0, 0, 0, 0));\n\t\t\t\t\t\tif(!(opts && opts.UTC)) { out[R][C] = utc_to_local(out[R][C]); }\n\t\t\t\t\t}\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '\\x00': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': {\n\t\t\t\t\tvar hi = dd.read_shift(4), lo = dd.read_shift(4);\n\t\t\t\t\tif(hi == 0 && lo == 0) break;\n\t\t\t\t\tout[R][C] = new Date((hi - 0x253D8C) * 0x5265C00 + lo);\n\t\t\t\t\tif(!(opts && opts.UTC)) out[R][C] = utc_to_local(out[R][C]);\n\t\t\t\t} break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry {\n\t\tvar o = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);\n\t\to.bookType = \"dbf\";\n\t\treturn o;\n\t} catch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tif(!ws[\"!ref\"]) throw new Error(\"Cannot export empty sheet to DBF\");\n\tvar o = opts || {};\n\tvar old_cp = current_codepage;\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array<string>*/ = [];\n\tvar colwidths/*:Array<number>*/ = [];\n\tvar coldecimals/*:Array<number>*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array<any>*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\t/* TODO: cache the values instead of encoding twice */\n\t\t\tmaxlen = Math.max(maxlen, (typeof $cptable !== \"undefined\" && typeof col[j] == \"string\" ? $cptable.utils.encode(current_ansi, col[j]): String(col[j])).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\tvar cp = +dbf_reverse_map[/*::String(*/current_codepage/*::)*/] || 0x03;\n\th.write_shift(4, 0x00000000 | (cp<<8));\n\tif(dbf_codepage_map[cp] != +o.codepage) {\n\t\tif(o.codepage) console.error(\"DBF Unsupported codepage \" + current_codepage + \", using 1252\");\n\t\tcurrent_codepage = 1252;\n\t}\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\t/* TODO: test how applications handle non-ASCII field names */\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'N':\n\t\t\t\t\tvar _n = \"0\";\n\t\t\t\t\tif(typeof data[i][j] == \"number\") _n = data[i][j].toFixed(coldecimals[j]||0);\n\t\t\t\t\tif(_n.length > colwidths[j]) _n = _n.slice(0, colwidths[j]); // addresses decimal > width\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _l = rout.l;\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"cpstr\");\n\t\t\t\t\t_l += colwidths[j] - rout.l;\n\t\t\t\t\tfor(hcnt=0; hcnt < _l; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tcurrent_codepage = old_cp;\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Ã', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'ÃŒ', BI:'Ã', CI:'ÃŽ', HI:'Ã',\n\t\tAO:'Ã’', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ãœ',\n\t\tAa:'à ', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'Ã', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'Å“', a:'Æ', j:'Å’',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t0:176, 1:177, 2:178,\n\t\t3:179, 5:181, 6:182,\n\t\t7:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\").replace(\"{\", \"\\\\{\") + \"|\\\\|)\", \"gm\");\n\ttry {\n\t\tsylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\t} catch(e) {}\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: evert the escape map */\n\tvar encode_sylk_str = function($$) { return $$.replace(/\\n/g, \"\\x1b :\").replace(/\\r/g, \"\\x1b =\"); };\n\t/* https://oss.sheetjs.com/notes/sylk/ for more details */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array<string>*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array<RowInfo>*/ = [], colinfo/*:Array<ColInfo>*/ = [], cw/*:Array<string>*/ = [];\n\t\tvar Mval = 0, j;\n\t\tvar wb = { Workbook: { WBProps: {}, Names: [] } };\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': /* workbook options */\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'V': {\n\t\t\t\t\tvar d1904 = parseInt(record[rj].slice(1), 10);\n\t\t\t\t\t// NOTE: it is technically an error if d1904 >= 5 or < 0\n\t\t\t\t\tif(d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;\n\t\t\t\t} break;\n\t\t\t} break;\n\t\t\tcase 'W': break; /* window */\n\t\t\tcase 'P':\n\t\t\t\tswitch(record[1].charAt(0)){\n\t\t\t\t\tcase 'P': formats.push(rstr.slice(3).replace(/;;/g, \";\")); break;\n\t\t\t\t} break;\n\t\t\tcase 'NN': { /* defined name */\n\t\t\t\tvar nn = {Sheet: 0};\n\t\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\t\tcase 'N': nn.Name = record[rj].slice(1); break;\n\t\t\t\t\tcase 'E': nn.Ref = (opts && opts.sheet || \"Sheet1\") + \"!\" + rc_to_a1(record[rj].slice(1)); break;\n\t\t\t\t}\n\t\t\t\twb.Workbook.Names.push(nn);\n\t\t\t} break;\n\t\t\t// case 'NE': // ??\n\t\t\t// case 'NU': // ??\n\t\t\tcase 'C': /* cell */\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1, formula = \"\", cell_t = \"z\";\n\t\t\tvar cmnt = \"\";\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'A': cmnt = record[rj].slice(1); break; // TODO: comment\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1), 10)-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') { val = val.slice(1,val.length - 1); cell_t = \"s\"; }\n\t\t\t\t\telse if(val === 'TRUE' || val === 'FALSE') { val = val === 'TRUE'; cell_t = \"b\"; }\n\t\t\t\t\telse if(val.charAt(0) == \"#\" && RBErr[val] != null) { cell_t = \"e\"; val = RBErr[val]; }\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val); cell_t = \"n\";\n\t\t\t\t\t\tif(next_cell_format !== null && fmt_is_date(next_cell_format) && opts.cellDates) {\n\t\t\t\t\t\t\tval = numdate(wb.Workbook.WBProps.date1904 ? val + 1462 : val); cell_t = typeof val == \"number\" ? \"n\" : \"d\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof $cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = $cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tC_seen_E = true;\n\t\t\t\t\tformula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S':\n\t\t\t\t\tC_seen_S = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'G': break; // unknown\n\t\t\t\tcase 'R': _R = parseInt(record[rj].slice(1), 10)-1; break;\n\t\t\t\tcase 'C': _C = parseInt(record[rj].slice(1), 10)-1; break;\n\t\t\t\t// case 'P': // ??\n\t\t\t\t// case 'D': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: cell_t, v: val };\n\t\t\t\telse { arr[R][C].t = cell_t; arr[R][C].v = val; }\n\t\t\t\tif(next_cell_format) arr[R][C].z = next_cell_format;\n\t\t\t\tif(opts.cellText !== false && next_cell_format) arr[R][C].w = SSF_format(arr[R][C].z, arr[R][C].v, { date1904: wb.Workbook.WBProps.date1904 });\n\t\t\t\tnext_cell_format = null;\n\t\t\t}\n\t\t\tif(C_seen_S) {\n\t\t\t\tif(C_seen_E) throw new Error(\"SYLK shared formula cannot have own formula\");\n\t\t\t\tvar shrbase = _R > -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tformula = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tif(formula) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'n', f: formula };\n\t\t\t\telse arr[R][C].f = formula;\n\t\t\t}\n\t\t\tif(cmnt) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'z' };\n\t\t\t\tarr[R][C].c = [{a:\"SheetJSYLK\", t: cmnt}];\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F': /* Format */\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1), 10)-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1), 10) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1), 10)];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval};\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1), 10)-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\t// case 'K': // ??\n\t\t\t\t// case 'E': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tcolinfo.forEach(function(col) { process_col(col); });\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht, wb];\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];\n\t\tvar _opts = dup(opts); _opts.date1904 = (((wb||{}).Workbook || {}).WBProps || {}).date1904;\n\t\tvar o = aoa_to_sheet(aoa, _opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\tvar outwb = sheet_to_workbook(o, opts);\n\t\tkeys(wb).forEach(function(k) { outwb[k] = wb[k]; });\n\t\toutwb.bookType = \"sylk\";\n\t\treturn outwb;\n\t}\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || BErr[cell.v] || cell.v; break;\n\t\t\tcase 'd': o += datenum(parseDate(cell.v, date1904), date1904); break;\n\t\t\tcase 's': o += '\"' + (cell.v == null ? \"\" : String(cell.v)).replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cmnt_sylk(cmnt/*:Comment*/, R/*:number*/, C/*:number*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";A\";\n\t\t/* TODO: max length? */\n\t\to += encode_sylk_str(cmnt.map(function(c) { return c.t; }).join(\"\"));\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array<string>*/, rows/*:Array<RowInfo>*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/, wb/*:?WorkBook*/)/*:string*/ {\n\t\tif(!opts) opts = {}; opts._formats = [\"General\"];\n\t\t/* TODO: codepage */\n\t\tvar preamble/*:Array<string>*/ = [\"ID;PSheetJS;N;E\"], o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']||\"A1\"), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar RS = \"\\r\\n\";\n\t\tvar d1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\n\t\tvar _lastfmt = \"General\";\n\t\tpreamble.push(\"P;PGeneral\");\n\t\t/* Excel has been inconsistent in comment placement */\n\t\tvar R = r.s.r, C = r.s.c, p = [];\n\t\tif(ws[\"!ref\"]) for(R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tp = [];\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || !cell.c) continue;\n\t\t\t\tp.push(write_ws_cmnt_sylk(cell.c, R, C));\n\t\t\t}\n\t\t\tif(p.length) o.push(p.join(RS));\n\t\t}\n\t\tif(ws[\"!ref\"]) for(R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tp = [];\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\tif((cell.z||(cell.t == \"d\" ? table_fmt[14] : \"General\")) != _lastfmt) {\n\t\t\t\t\tvar ifmt = opts._formats.indexOf(cell.z);\n\t\t\t\t\tif(ifmt == -1) { opts._formats.push(cell.z); ifmt = opts._formats.length - 1; preamble.push(\"P;P\" + cell.z.replace(/;/g, \";;\")); }\n\t\t\t\t\tp.push(\"F;P\" + ifmt + \";Y\" + (R+1) + \";X\" + (C+1));\n\t\t\t\t}\n\t\t\t\tp.push(write_ws_cell_sylk(cell, ws, R, C, opts, d1904));\n\t\t\t}\n\t\t\to.push(p.join(RS));\n\t\t}\n\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tif(ws[\"!ref\"]) preamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tpreamble.push(\"O;L;D;B\" + (d1904 ? \";V4\" : \"\") + \";K47;G100 0.001\");\n\n\t\tdelete opts._formats;\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) {\n\t\t\t\t\t\tarr[R][C] = parseDate(value);\n\t\t\t\t\t\tif(!(opts && opts.UTC)) { arr[R][C] = utc_to_local(arr[R][C]); }\n\t\t\t\t\t}\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\t\tvar o = sheet_to_workbook(dif_to_sheet(str, opts), opts);\n\t\to.bookType = \"dif\";\n\t\treturn o;\n\t}\n\n\tfunction make_value(v/*:number*/, s/*:string*/)/*:string*/ { return \"0,\" + String(v) + \"\\r\\n\" + s; }\n\tfunction make_value_str(s/*:string*/)/*:string*/ { return \"1,0\\r\\n\\\"\" + s.replace(/\"/g,'\"\"') + '\"'; }\n\tfunction sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar _DIF_XL = DIF_XL;\n\t\tif(!ws[\"!ref\"]) throw new Error(\"Cannot export empty sheet to DIF\");\n\t\tvar r = safe_decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar o/*:Array<string>*/ = [\n\t\t\t\"TABLE\\r\\n0,1\\r\\n\\\"sheetjs\\\"\\r\\n\",\n\t\t\t\"VECTORS\\r\\n0,\" + (r.e.r - r.s.r + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"TUPLES\\r\\n0,\" + (r.e.c - r.s.c + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"DATA\\r\\n0,0\\r\\n\\\"\\\"\\r\\n\"\n\t\t];\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar row = dense ? ws[\"!data\"][R] : [];\n\t\t\tvar p = \"-1,0\\r\\nBOT\\r\\n\";\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar cell/*:Cell*/ = dense ? (row && row[C]) : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(cell == null) { p +=(\"1,0\\r\\n\\\"\\\"\\r\\n\"); continue;}\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(_DIF_XL) {\n\t\t\t\t\t\t\tif(cell.w != null) p +=(\"0,\" + cell.w + \"\\r\\nV\");\n\t\t\t\t\t\t\telse if(cell.v != null) p +=(make_value(cell.v, \"V\")); // TODO: should this call SSF_format?\n\t\t\t\t\t\t\telse if(cell.f != null && !cell.F) p +=(make_value_str(\"=\" + cell.f));\n\t\t\t\t\t\t\telse p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(cell.v == null) p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t\telse p +=(make_value(cell.v, \"V\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tp +=(cell.v ? make_value(1, \"TRUE\") : make_value(0, \"FALSE\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tp +=(make_value_str((!_DIF_XL || isNaN(+cell.v)) ? cell.v : '=\"' + cell.v + '\"'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\tif(_DIF_XL) p +=(make_value(cell.w, \"V\"));\n\t\t\t\t\t\telse p +=(make_value_str(cell.w));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t}\n\t\t\t\tp += \"\\r\\n\";\n\t\t\t}\n\t\t\to.push(p);\n\t\t}\n\t\treturn o.join(\"\") + \"-1,0\\r\\nEOD\";\n\t}\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array<string>*/ = [], oo/*:Array<string>*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t0x2C: ',',\n\t\t0x09: \"\\t\",\n\t\t0x3B: ';',\n\t\t0x7C: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t0x2C: 3,\n\t\t0x09: 2,\n\t\t0x3B: 1,\n\t\t0x7C: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = ({}/*:any*/);\n\t\tif(o.dense) ws[\"!data\"] = [];\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\t/* TODO: fuzzy parsers should pass back assumed number format */\n\t\t\tvar s = str.slice(start, end); if(s.slice(-1) == \"\\r\") s = s.slice(0, -1);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(o.cellText !== false) cell.w = s;\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 's'; cell.f = s.slice(1); cell.v = s; }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; cell.v = v; }\n\t\t\telse if(!isNaN((v = fuzzydate(s)).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tif(_re && s.match(_re)){ var news=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); v = parseDate(news); if(o && o.UTC === false) v = utc_to_local(v); }\n\t\t\t\telse if(o && o.UTC === false) v = utc_to_local(v);\n\t\t\t\telse if(o.cellText !== false && o.dateNF) cell.w = SSF_format(cell.z, v);\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = v; }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(v); }\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase 0x0d:\n\t\t\t\tif(instr) break;\n\t\t\t\tif(str.charCodeAt(end+1) == 0x0a) ++end;\n\t\t\t\t/* falls through */\n\t\t\tcase sepcc: case 0x0a: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array<string>*/ = [];\n\t\tif(!ws[\"!ref\"]) return \"\";\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array<string>*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif((e.message.indexOf(\"SYLK bad record ID\") == -1) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\t/* NOTE: this list intentionally starts at 1 */\n\tvar LOTUS_DATE_FMTS = [\n\t\t\"mmmm\",\n\t\t\"dd-mmm-yyyy\",\n\t\t\"dd-mmm\",\n\t\t\"mmm-yyyy\",\n\t\t\"@\", // \"text\"?\n\t\t\"mm/dd\",\n\t\t\"hh:mm:ss AM/PM\", // 7\n\t\t\"hh:mm AM/PM\",\n\t\t\"mm/dd/yyyy\",\n\t\t\"mm/dd\",\n\t\t\"hh:mm:ss\",\n\t\t\"hh:mm\" // 12\n\t];\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [], sdata = [];\n\t\tif(o.dense) sdata = s[\"!data\"] = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\t\tvar lastcell = {};\n\n\t\tif(d[4] == 0x51 && d[5] == 0x50 && d[6] == 0x57) return qpw_to_workbook_buf(d, opts);\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0xFF: /* BOF (works 3+) */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\to.works = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif((!o.qpro && !o.works || RT == 0x33) && val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\tif(o.works || o.works2) val[1].v = val[1].v.replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif((val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || LOTUS_DATE_FMTS[(val[2] & 0x0F)-1] || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].v = numdate(val[1].v); val[1].t = typeof val[1].v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (sdata[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tlastcell = tmpcell;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tlastcell = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x5405: o.works2 = true; break;\n\t\t\t\tcase 0x5402: {\n\t\t\t\t\t/* TODO: enumerate all extended number formats */\n\t\t\t\t\tif(val == 0x14a1) {\n\t\t\t\t\t\tlastcell.z = \"hh:mm:ss\";\n\t\t\t\t\t\tif(o.cellDates && lastcell.t == \"n\") {\n\t\t\t\t\t\t\tlastcell.v = numdate(lastcell.v); lastcell.t = typeof lastcell.v == \"number\" ? 'n' : 'd';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tif(val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t// TODO: R9 appears to encode control codes this way -- verify against other versions\n\t\t\t\t\tval[1].v = val[1].v.replace(/\\x0F./g, function($$) { return String.fromCharCode($$.charCodeAt(1) - 0x20); }).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tif(!ws[\"!ref\"]) throw new Error(\"Cannot export empty sheet to WK1\");\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[cols[C] + rr];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tswitch(cell.t) {\n\t\t\t\tcase \"n\":\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell));\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d\":\n\t\t\t\t\tvar dc = datenum(cell.v);\n\t\t\t\t\tif((dc|0)==dc && dc >= -32768 && dc <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, {t:\"n\", v:dc, z:cell.z || table_fmt[14]}));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, {t:\"n\", v:dc, z:cell.z || table_fmt[14]}));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = ws[\"!data\"] != null;\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else if(opts.works) { // TODO: verify with more complex works3-4 examples\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t\to[2] = blob.read_shift(2);\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction get_wk1_fmt(cell)/*:number*/ {\n\t\t/* TODO: some fuzzy matching on the number format */\n\t\tif(cell.z && fmt_is_date(cell.z)) {\n\t\t\treturn 0xf0 | (LOTUS_DATE_FMTS.indexOf(cell.z) + 1 || 2);\n\t\t}\n\t\treturn 0xFF;\n\t}\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif((opts.vers & 0xFFFE) == 0x5120) { // WQ1 / WQ2\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\tfunction parse_STRING(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, cell) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, get_wk1_fmt(cell));\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, cell.v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, cell) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, get_wk1_fmt(cell));\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, cell.v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x1F: [\"NA\", 0],\n\t\t// 0x20: [\"ERR\", 0],\n\t\t0x21: [\"ABS\", 1],\n\t\t0x22: [\"TRUNC\", 1],\n\t\t0x23: [\"SQRT\", 1],\n\t\t0x24: [\"LOG\", 1],\n\t\t0x25: [\"LN\", 1],\n\t\t0x26: [\"PI\", 0],\n\t\t0x27: [\"SIN\", 1],\n\t\t0x28: [\"COS\", 1],\n\t\t0x29: [\"TAN\", 1],\n\t\t0x2A: [\"ATAN2\", 2],\n\t\t0x2B: [\"ATAN\", 1],\n\t\t0x2C: [\"ASIN\", 1],\n\t\t0x2D: [\"ACOS\", 1],\n\t\t0x2E: [\"EXP\", 1],\n\t\t0x2F: [\"MOD\", 2],\n\t\t// 0x30\n\t\t0x31: [\"ISNA\", 1],\n\t\t0x32: [\"ISERR\", 1],\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x35: [\"RAND\", 0],\n\t\t0x36: [\"DATE\", 3],\n\t\t// 0x37 NOW\n\t\t// 0x38 PMT\n\t\t// 0x39 PV\n\t\t// 0x3A FV\n\t\t// 0x3B IF\n\t\t// 0x3C DAY\n\t\t// 0x3D MONTH\n\t\t// 0x3E YEAR\n\t\t0x3F: [\"ROUND\", 2],\n\t\t0x40: [\"TIME\", 3],\n\t\t// 0x41 HOUR\n\t\t// 0x42 MINUTE\n\t\t// 0x43 SECOND\n\t\t0x44: [\"ISNUMBER\", 1],\n\t\t0x45: [\"ISTEXT\", 1],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x47: [\"VALUE\", 1],\n\t\t// 0x48: [\"FIXED\", ?? 1],\n\t\t0x49: [\"MID\", 3],\n\t\t0x4A: [\"CHAR\", 1],\n\t\t// 0x4B\n\t\t// 0x4C FIND\n\t\t// 0x4D DATEVALUE\n\t\t// 0x4E TIMEVALUE\n\t\t// 0x4F CELL\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t// 0x55 VLOOKUP\n\t\t// 0x56 NPV\n\t\t// 0x57 VAR\n\t\t// 0x58 STD\n\t\t// 0x59 IRR\n\t\t// 0x5A HLOOKUP\n\t\t// 0x5B DSUM\n\t\t// 0x5C DAVERAGE\n\t\t// 0x5D DCOUNTA\n\t\t// 0x5E DMIN\n\t\t// 0x5F DMAX\n\t\t// 0x60 DVARP\n\t\t// 0x61 DSTDEVP\n\t\t// 0x62 INDEX\n\t\t// 0x63 COLS\n\t\t// 0x64 ROWS\n\t\t// 0x65 REPEAT\n\t\t0x66: [\"UPPER\", 1],\n\t\t0x67: [\"LOWER\", 1],\n\t\t// 0x68 LEFT\n\t\t// 0x69 RIGHT\n\t\t// 0x6A REPLACE\n\t\t0x6B: [\"PROPER\", 1],\n\t\t// 0x6C CELL\n\t\t0x6D: [\"TRIM\", 1],\n\t\t// 0x6E CLEAN\n\t\t0x6F: [\"T\", 1]\n\t\t// 0x70 V\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 12);\n\t\tblob.l += length - 12; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t0x0000: { n:\"BOF\", f:parseuint16 },\n\t\t0x0001: { n:\"EOF\" },\n\t\t0x0002: { n:\"CALCMODE\" },\n\t\t0x0003: { n:\"CALCORDER\" },\n\t\t0x0004: { n:\"SPLIT\" },\n\t\t0x0005: { n:\"SYNC\" },\n\t\t0x0006: { n:\"RANGE\", f:parse_RANGE },\n\t\t0x0007: { n:\"WINDOW1\" },\n\t\t0x0008: { n:\"COLW1\" },\n\t\t0x0009: { n:\"WINTWO\" },\n\t\t0x000A: { n:\"COLW2\" },\n\t\t0x000B: { n:\"NAME\" },\n\t\t0x000C: { n:\"BLANK\" },\n\t\t0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t0x000F: { n:\"LABEL\", f:parse_LABEL },\n\t\t0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t0x0018: { n:\"TABLE\" },\n\t\t0x0019: { n:\"ORANGE\" },\n\t\t0x001A: { n:\"PRANGE\" },\n\t\t0x001B: { n:\"SRANGE\" },\n\t\t0x001C: { n:\"FRANGE\" },\n\t\t0x001D: { n:\"KRANGE1\" },\n\t\t0x0020: { n:\"HRANGE\" },\n\t\t0x0023: { n:\"KRANGE2\" },\n\t\t0x0024: { n:\"PROTEC\" },\n\t\t0x0025: { n:\"FOOTER\" },\n\t\t0x0026: { n:\"HEADER\" },\n\t\t0x0027: { n:\"SETUP\" },\n\t\t0x0028: { n:\"MARGINS\" },\n\t\t0x0029: { n:\"LABELFMT\" },\n\t\t0x002A: { n:\"TITLES\" },\n\t\t0x002B: { n:\"SHEETJS\" },\n\t\t0x002D: { n:\"GRAPH\" },\n\t\t0x002E: { n:\"NGRAPH\" },\n\t\t0x002F: { n:\"CALCCOUNT\" },\n\t\t0x0030: { n:\"UNFORMATTED\" },\n\t\t0x0031: { n:\"CURSORW12\" },\n\t\t0x0032: { n:\"WINDOW\" },\n\t\t0x0033: { n:\"STRING\", f:parse_STRING },\n\t\t0x0037: { n:\"PASSWORD\" },\n\t\t0x0038: { n:\"LOCKED\" },\n\t\t0x003C: { n:\"QUERY\" },\n\t\t0x003D: { n:\"QUERYNAME\" },\n\t\t0x003E: { n:\"PRINT\" },\n\t\t0x003F: { n:\"PRINTNAME\" },\n\t\t0x0040: { n:\"GRAPH2\" },\n\t\t0x0041: { n:\"GRAPHNAME\" },\n\t\t0x0042: { n:\"ZOOM\" },\n\t\t0x0043: { n:\"SYMSPLIT\" },\n\t\t0x0044: { n:\"NSROWS\" },\n\t\t0x0045: { n:\"NSCOLS\" },\n\t\t0x0046: { n:\"RULER\" },\n\t\t0x0047: { n:\"NNAME\" },\n\t\t0x0048: { n:\"ACOMM\" },\n\t\t0x0049: { n:\"AMACRO\" },\n\t\t0x004A: { n:\"PARSE\" },\n\t\t// 0x0064\n\t\t0x0066: { n:\"PRANGES??\" },\n\t\t0x0067: { n:\"RRANGES??\" },\n\t\t0x0068: { n:\"FNAME??\" },\n\t\t0x0069: { n:\"MRANGES??\" },\n\t\t// 0x0096\n\t\t// 0x0099\n\t\t// 0x009A\n\t\t// 0x009B\n\t\t// 0x009C\n\t\t// 0x00C0\n\t\t// 0x00C7\n\t\t// 0x00C9\n\t\t0x00CC: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t// 0x00CD\n\t\t0x00DE: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t0x00FF: { n:\"BOF\", f:parseuint16 },\n\t\t0x5402: { n:\"WKSNF\", f:parseuint16 },\n\t\t0xFFFF: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t0x0000: { n:\"BOF\" },\n\t\t0x0001: { n:\"EOF\" },\n\t\t0x0002: { n:\"PASSWORD\" },\n\t\t0x0003: { n:\"CALCSET\" },\n\t\t0x0004: { n:\"WINDOWSET\" },\n\t\t0x0005: { n:\"SHEETCELLPTR\" },\n\t\t0x0006: { n:\"SHEETLAYOUT\" },\n\t\t0x0007: { n:\"COLUMNWIDTH\" },\n\t\t0x0008: { n:\"HIDDENCOLUMN\" },\n\t\t0x0009: { n:\"USERRANGE\" },\n\t\t0x000A: { n:\"SYSTEMRANGE\" },\n\t\t0x000B: { n:\"ZEROFORCE\" },\n\t\t0x000C: { n:\"SORTKEYDIR\" },\n\t\t0x000D: { n:\"FILESEAL\" },\n\t\t0x000E: { n:\"DATAFILLNUMS\" },\n\t\t0x000F: { n:\"PRINTMAIN\" },\n\t\t0x0010: { n:\"PRINTSTRING\" },\n\t\t0x0011: { n:\"GRAPHMAIN\" },\n\t\t0x0012: { n:\"GRAPHSTRING\" },\n\t\t0x0013: { n:\"??\" },\n\t\t0x0014: { n:\"ERRCELL\" },\n\t\t0x0015: { n:\"NACELL\" },\n\t\t0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t0x001A: { n:\"FORMULA1A\" },\n\t\t0x001B: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t0x001C: { n:\"DTLABELMISC\" },\n\t\t0x001D: { n:\"DTLABELCELL\" },\n\t\t0x001E: { n:\"GRAPHWINDOW\" },\n\t\t0x001F: { n:\"CPA\" },\n\t\t0x0020: { n:\"LPLAUTO\" },\n\t\t0x0021: { n:\"QUERY\" },\n\t\t0x0022: { n:\"HIDDENSHEET\" },\n\t\t0x0023: { n:\"??\" },\n\t\t0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t0x0026: { n:\"??\" },\n\t\t0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t0x008E: { n:\"??\" },\n\t\t0x0093: { n:\"??\" },\n\t\t0x0096: { n:\"??\" },\n\t\t0x0097: { n:\"??\" },\n\t\t0x0098: { n:\"??\" },\n\t\t0x0099: { n:\"??\" },\n\t\t0x009A: { n:\"??\" },\n\t\t0x009B: { n:\"??\" },\n\t\t0x009C: { n:\"??\" },\n\t\t0x00A3: { n:\"??\" },\n\t\t0x00AE: { n:\"??\" },\n\t\t0x00AF: { n:\"??\" },\n\t\t0x00B0: { n:\"??\" },\n\t\t0x00B1: { n:\"??\" },\n\t\t0x00B8: { n:\"??\" },\n\t\t0x00B9: { n:\"??\" },\n\t\t0x00BA: { n:\"??\" },\n\t\t0x00BB: { n:\"??\" },\n\t\t0x00BC: { n:\"??\" },\n\t\t0x00C3: { n:\"??\" },\n\t\t0x00C9: { n:\"??\" },\n\t\t0x00CC: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t0x00CD: { n:\"??\" },\n\t\t0x00CE: { n:\"??\" },\n\t\t0x00CF: { n:\"??\" },\n\t\t0x00D0: { n:\"??\" },\n\t\t0x0100: { n:\"??\" },\n\t\t0x0103: { n:\"??\" },\n\t\t0x0104: { n:\"??\" },\n\t\t0x0105: { n:\"??\" },\n\t\t0x0106: { n:\"??\" },\n\t\t0x0107: { n:\"??\" },\n\t\t0x0109: { n:\"??\" },\n\t\t0x010A: { n:\"??\" },\n\t\t0x010B: { n:\"??\" },\n\t\t0x010C: { n:\"??\" },\n\t\t0x010E: { n:\"??\" },\n\t\t0x010F: { n:\"??\" },\n\t\t0x0180: { n:\"??\" },\n\t\t0x0185: { n:\"??\" },\n\t\t0x0186: { n:\"??\" },\n\t\t0x0189: { n:\"??\" },\n\t\t0x018C: { n:\"??\" },\n\t\t0x0200: { n:\"??\" },\n\t\t0x0202: { n:\"??\" },\n\t\t0x0201: { n:\"??\" },\n\t\t0x0204: { n:\"??\" },\n\t\t0x0205: { n:\"??\" },\n\t\t0x0280: { n:\"??\" },\n\t\t0x0281: { n:\"??\" },\n\t\t0x0282: { n:\"??\" },\n\t\t0x0283: { n:\"??\" },\n\t\t0x0284: { n:\"??\" },\n\t\t0x0285: { n:\"??\" },\n\t\t0x0286: { n:\"??\" },\n\t\t0x0287: { n:\"??\" },\n\t\t0x0288: { n:\"??\" },\n\t\t0x0292: { n:\"??\" },\n\t\t0x0293: { n:\"??\" },\n\t\t0x0294: { n:\"??\" },\n\t\t0x0295: { n:\"??\" },\n\t\t0x0296: { n:\"??\" },\n\t\t0x0299: { n:\"??\" },\n\t\t0x029A: { n:\"??\" },\n\t\t0x0300: { n:\"??\" },\n\t\t0x0304: { n:\"??\" },\n\t\t0x0601: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t0x0640: { n:\"??\" },\n\t\t0x0642: { n:\"??\" },\n\t\t0x0701: { n:\"??\" },\n\t\t0x0702: { n:\"??\" },\n\t\t0x0703: { n:\"??\" },\n\t\t0x0704: { n:\"??\" },\n\t\t0x0780: { n:\"??\" },\n\t\t0x0800: { n:\"??\" },\n\t\t0x0801: { n:\"??\" },\n\t\t0x0804: { n:\"??\" },\n\t\t0x0A80: { n:\"??\" },\n\t\t0x2AF6: { n:\"??\" },\n\t\t0x3231: { n:\"??\" },\n\t\t0x6E49: { n:\"??\" },\n\t\t0x6F44: { n:\"??\" },\n\t\t0xFFFF: { n:\"\" }\n\t};\n\n\t/* TODO: fill out and verify this table across QP versions */\n\tvar QPWNFTable = {\n\t\t0x05: \"dd-mmm-yy\",\n\t\t0x06: \"dd-mmm\",\n\t\t0x07: \"mmm-yy\",\n\t\t0x08: \"mm/dd/yy\", // Long Date Intl\n\t\t0x0A: \"hh:mm:ss AM/PM\",\n\t\t0x0B: \"hh:mm AM/PM\",\n\t\t0x0E: \"dd-mmm-yyyy\",\n\t\t0x0F: \"mmm-yyyy\",\n\n\t\t/* It is suspected that the the low nybble specifies decimal places */\n\t\t0x0022: \"0.00\",\n\t\t0x0032: \"0.00;[Red]0.00\",\n\t\t0x0042: \"0.00;\\(0.00\\)\",\n\t\t0x0052: \"0.00;[Red]\\(0.00\\)\",\n\t\t0x00A2: '\"$\"#,##0.00;\\\\(\"$\"#,##0.00\\\\)',\n\t\t0x0120: '0%',\n\t\t0x0130: '0E+00',\n\t\t0x0140: '# ?/?'\n\t};\n\n\tfunction parse_qpw_str(p) {\n\t\tvar cch = p.read_shift(2);\n\t\tvar flags = p.read_shift(1);\n\t\t/* TODO: find examples with nonzero flags */\n\t\tif(flags != 0) throw \"unsupported QPW string type \" + flags.toString(16);\n\t\treturn p.read_shift(cch, \"sbcs-cont\");\n\t}\n\n\t/* QPW uses a different set of record types */\n\tfunction qpw_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tprep_blob(d, 0);\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\tvar SST = [], sname = \"\", formulae = [];\n\t\tvar range = {s:{r:-1,c:-1}, e:{r:-1,c:-1}};\n\t\tvar cnt = 0, type = 0, C = 0, R = 0;\n\t\tvar wb = { SheetNames: [], Sheets: {} };\n\t\tvar FMTS = [];\n\t\touter: while(d.l < d.length) {\n\t\t\tvar RT = d.read_shift(2), length = d.read_shift(2);\n\t\t\tvar p = d.slice(d.l, d.l + length);\n\t\t\tprep_blob(p, 0);\n\t\t\tswitch(RT) {\n\t\t\t\tcase 0x01: /* BOF */\n\t\t\t\t\tif(p.read_shift(4) != 0x39575051) throw \"Bad QPW9 BOF!\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x02: /* EOF */ break outer;\n\n\t\t\t\tcase 0x08: /* NF */ break; // TODO: this is tied to custom number formats\n\n\t\t\t\tcase 0x0A: /* FORMATS */ {\n\t\t\t\t\tvar fcnt = p.read_shift(4);\n\t\t\t\t\tvar step = ((p.length - p.l)/ fcnt)|0;\n\t\t\t\t\tfor(var ifmt = 0; ifmt < fcnt; ++ifmt) {\n\t\t\t\t\t\tvar end = p.l + step;\n\t\t\t\t\t\tvar fmt = {};\n\t\t\t\t\t\tp.l += 2;\n\t\t\t\t\t\tfmt.numFmtId = p.read_shift(2);\n\t\t\t\t\t\tif(QPWNFTable[fmt.numFmtId]) fmt.z = QPWNFTable[fmt.numFmtId];\n\t\t\t\t\t\tp.l = end;\n\t\t\t\t\t\tFMTS.push(fmt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* TODO: The behavior here should be consistent with Numbers: QP Notebook ~ .TN.SheetArchive, QP Sheet ~ .TST.TableModelArchive */\n\t\t\t\tcase 0x0401: /* BON */ break;\n\t\t\t\tcase 0x0402: /* EON */ /* TODO: backfill missing sheets based on BON cnt */ break;\n\n\t\t\t\tcase 0x0407: { /* SST */\n\t\t\t\t\tp.l += 12;\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tSST.push(p.read_shift(cnt, 'cstr'));\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0408: { /* FORMULAE */\n\t\t\t\t\t//p.l += 12;\n\t\t\t\t\t//while(p.l < p.length) {\n\t\t\t\t\t//\tcnt = p.read_shift(2);\n\t\t\t\t\t//\tformulae.push(p.slice(p.l, p.l + cnt + 1)); p.l += cnt + 1;\n\t\t\t\t\t//}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0601: { /* BOS */\n\t\t\t\t\tvar sidx = p.read_shift(2);\n\t\t\t\t\ts = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\t\t\t\trange.s.c = p.read_shift(2);\n\t\t\t\t\trange.e.c = p.read_shift(2);\n\t\t\t\t\trange.s.r = p.read_shift(4);\n\t\t\t\t\trange.e.r = p.read_shift(4);\n\t\t\t\t\tp.l += 4;\n\t\t\t\t\tif(p.l + 2 < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tsname = cnt == 0 ? \"\" : p.read_shift(cnt, 'cstr');\n\t\t\t\t\t}\n\t\t\t\t\tif(!sname) sname = encode_col(sidx);\n\t\t\t\t\t/* TODO: backfill empty sheets */\n\t\t\t\t} break;\n\t\t\t\tcase 0x0602: { /* EOS */\n\t\t\t\t\t/* NOTE: QP valid range A1:IV1000000 */\n\t\t\t\t\tif(range.s.c > 0xFF || range.s.r > 999999) break;\n\t\t\t\t\tif(range.e.c < range.s.c) range.e.c = range.s.c;\n\t\t\t\t\tif(range.e.r < range.s.r) range.e.r = range.s.r;\n\t\t\t\t\ts[\"!ref\"] = encode_range(range);\n\t\t\t\t\tbook_append_sheet(wb, s, sname); // TODO: a barrel roll\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0A01: { /* COL (like XLS Row, modulo the layout transposition) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\t\t\tif(range.s.c > C) range.s.c = C;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C01: { /* MulCells (like XLS MulRK, but takes advantage of common column data patterns) */\n\t\t\t\t\tR = p.read_shift(4), cnt = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tif(range.e.r < R + cnt - 1) range.e.r = R + cnt - 1;\n\t\t\t\t\tvar CC = encode_col(C);\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tvar cell = { t: \"z\" };\n\t\t\t\t\t\tvar flags = p.read_shift(1), fmtidx = -1;\n\t\t\t\t\t\tif(flags & 0x80) fmtidx = p.read_shift(2);\n\t\t\t\t\t\tvar mul = (flags & 0x40) ? p.read_shift(2) - 1: 0;\n\t\t\t\t\t\tswitch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 0: break;\n\t\t\t\t\t\t\tcase 1: break;\n\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: p.read_shift(2, 'i') }; break;\n\t\t\t\t\t\t\tcase 4: cell = { t: \"n\", v: parse_RkNumber(p) }; break;\n\t\t\t\t\t\t\tcase 5: cell = { t: \"n\", v: p.read_shift(8, 'f') }; break;\n\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\tcase 8:\n\t\t\t\t\t\t\t\tcell = { t: \"n\", v: p.read_shift(8, 'f') };\n\t\t\t\t\t\t\t\tp.l += 2; /* cell.f = formulae[p.read_shift(4)]; */ p.l += 4;\n\t\t\t\t\t\t\t\tif(isNaN(cell.v)) cell = { t: \"e\", v: 0x0F }; // #VALUE!\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault: throw \"Unrecognized QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(fmtidx != -1 && (FMTS[fmtidx - 1]||{}).z) cell.z = FMTS[fmtidx-1].z;\n\t\t\t\t\t\tvar delta = 0;\n\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 2: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tcase 3: delta = p.read_shift(2, 'i'); break;\n\t\t\t\t\t\t\tcase 7: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tdefault: throw \"Unsupported delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\tvar newcell = dup(cell);\n\t\t\t\t\t\t\tif(cell.t == \"n\" && cell.z && fmt_is_date(cell.z) && o.cellDates) {\n\t\t\t\t\t\t\t\tnewcell.v = numdate(cell.v); newcell.t = typeof newcell.v == \"number\" ? 'n' : 'd';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = newcell;\n\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = newcell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\twhile(mul-- > 0 && cnt >= 0) {\n\t\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; break;\n\t\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; if(cell.v > 0x7FFF) cell.v -= 0x10000; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = (type + delta) >>> 0] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t} else switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 1: cell = { t: \"z\" }; break;\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply repeat for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(fmtidx != -1);\n\t\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C02: { /* String (result of string formula expression) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tvar str = parse_qpw_str(p);\n\t\t\t\t\t/* TODO: QP10 record has an additional unknown character after the string */\n\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\ts[\"!data\"][R][C] = { t:\"s\", v:str };\n\t\t\t\t\t} else s[encode_col(C) + encode_row(R)] = { t:\"s\", v:str };\n\t\t\t\t} break;\n\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\td.l += length;\n\t\t}\n\t\treturn wb;\n\t}\n\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/<\\w*:/g,\"<\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\t\t\tcase '<color>': case '<color/>': case '</color>': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\t\t\tcase '<family>': case '<family/>': case '</family>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\t\t\tcase '<vertAlign>': case '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\t\t\tcase '<scheme>': case '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = str_match_xml_ns(r, \"t\")/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = str_match_xml_ns(r, \"rPr\");\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array<string>*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array<string>, string, Array<string>]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t\\b[^<>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r\\b[^<>]*>/;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"), true);\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((str_remove_xml_ns_g(x, \"rPh\").match(sitregex)||[]).join(\"\").replace(tagregex,\"\")), true);\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = str_match_xml_ns(data, \"sst\");\n\tif(sst) {\n\t\tss = sst[1].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[0].slice(0, sst[0].indexOf(\">\"))); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(typeof s.t !== \"string\") s.t = String(s.t);\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array<number>*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array<number>*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array<string>*/ {\n\tvar o/*:Array<string>*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length/*:number*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nfunction rtf_to_sheet(d, opts) {\n switch (opts.type) {\n case \"base64\":\n return rtf_to_sheet_str(Base64_decode(d), opts);\n case \"binary\":\n return rtf_to_sheet_str(d, opts);\n case \"buffer\":\n return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString(\"binary\") : a2s(d), opts);\n case \"array\":\n return rtf_to_sheet_str(cc2str(d), opts);\n }\n throw new Error(\"Unrecognized type \" + opts.type);\n}\nfunction rtf_to_sheet_str(str, opts) {\n var o = opts || {};\n var ws = {};\n var dense = o.dense;\n if (dense)\n ws[\"!data\"] = [];\n var rows = str_match_ng(str, \"\\\\trowd\", \"\\\\row\");\n if (!rows)\n throw new Error(\"RTF missing table\");\n var range = { s: { c: 0, r: 0 }, e: { c: 0, r: rows.length - 1 } };\n var row = [];\n rows.forEach(function(rowtf, R) {\n if (dense)\n row = ws[\"!data\"][R] = [];\n var rtfre = /\\\\[\\w\\-]+\\b/g;\n var last_index = 0;\n var res;\n var C = -1;\n var payload = [];\n while ((res = rtfre.exec(rowtf)) != null) {\n var data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n if (data.charCodeAt(0) == 32)\n data = data.slice(1);\n if (data.length)\n payload.push(data);\n switch (res[0]) {\n case \"\\\\cell\":\n ++C;\n if (payload.length) {\n var cell = { v: payload.join(\"\"), t: \"s\" };\n if (cell.v == \"TRUE\" || cell.v == \"FALSE\") {\n cell.v = cell.v == \"TRUE\";\n cell.t = \"b\";\n } else if (!isNaN(fuzzynum(cell.v))) {\n cell.t = \"n\";\n if (o.cellText !== false)\n cell.w = cell.v;\n cell.v = fuzzynum(cell.v);\n }\n if (dense)\n row[C] = cell;\n else\n ws[encode_cell({ r: R, c: C })] = cell;\n }\n payload = [];\n break;\n case \"\\\\par\":\n payload.push(\"\\n\");\n break;\n }\n last_index = rtfre.lastIndex;\n }\n if (C > range.e.c)\n range.e.c = C;\n });\n ws[\"!ref\"] = encode_range(range);\n return ws;\n}\nfunction rtf_to_workbook(d, opts) {\n var wb = sheet_to_workbook(rtf_to_sheet(d, opts), opts);\n wb.bookType = \"rtf\";\n return wb;\n}\nfunction sheet_to_rtf(ws, opts) {\n var o = [\"{\\\\rtf1\\\\ansi\"];\n if (!ws[\"!ref\"])\n return o[0] + \"}\";\n var r = safe_decode_range(ws[\"!ref\"]), cell;\n var dense = ws[\"!data\"] != null, row = [];\n for (var R = r.s.r; R <= r.e.r; ++R) {\n o.push(\"\\\\trowd\\\\trautofit1\");\n for (var C = r.s.c; C <= r.e.c; ++C)\n o.push(\"\\\\cellx\" + (C + 1));\n o.push(\"\\\\pard\\\\intbl\");\n if (dense)\n row = ws[\"!data\"][R] || [];\n for (C = r.s.c; C <= r.e.c; ++C) {\n var coord = encode_cell({ r: R, c: C });\n cell = dense ? row[C] : ws[coord];\n if (!cell || cell.v == null && (!cell.f || cell.F)) {\n o.push(\" \\\\cell\");\n continue;\n }\n o.push(\" \" + (cell.w || (format_cell(cell), cell.w) || \"\").replace(/[\\r\\n]/g, \"\\\\par \"));\n o.push(\"\\\\cell\");\n }\n o.push(\"\\\\pard\\\\intbl\\\\row\");\n }\n return o.join(\"\") + \"}\";\n}\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) icv = XLSIcv[1]; //throw new Error(x); // note: 206 is valid\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t.match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF__load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>': case '<xf>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>': case '<alignment>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection': case '<protection>':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': case '<AlternateContent>': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = remove_doctype(str_remove_ng(data, \"<!--\", \"-->\"));\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=str_match_xml_ns(data, \"numFmts\"))) parse_numFmts(t[0], styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=str_match_xml_ns(data, \"fonts\"))) parse_fonts(t[0], styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=str_match_xml_ns(data, \"fills\"))) parse_fills(t[0], styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=str_match_xml_ns(data, \"borders\"))) parse_borders(t[0], styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=str_match_xml_ns(data, \"cellXfs\"))) parse_cellXfs(t[0], styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF__load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\t\t\tcase '</a:srgbClr>': break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\t\t\tcase '</a:sysClr>': break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '</a:dk1>':\n\t\t\tcase '</a:lt1>':\n\t\t\tcase '<a:dk1>':\n\t\t\tcase '<a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t/* clrScheme CT_ColorScheme */\n\tif(!(t=str_match_xml(data, \"a:clrScheme\"))) throw new Error('clrScheme not found in themeElements');\n\tparse_clrScheme(t, themes, opts);\n\n\t/* fontScheme CT_FontScheme */\n\tif(!(t=str_match_xml(data, \"a:fontScheme\"))) throw new Error('fontScheme not found in themeElements');\n\tparse_fontScheme(t, themes, opts);\n\n\t/* fmtScheme CT_StyleMatrix */\n\tif(!(t=str_match_xml(data, \"a:fmtScheme\"))) throw new Error('fmtScheme not found in themeElements');\n\tparse_fmtScheme(t, themes, opts);\n}\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=str_match_xml(data, \"a:themeElements\"))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"ï¼ï¼³ Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"ë§‘ì€ ê³ ë”•\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"ï¼ï¼³ Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"ë§‘ì€ ê³ ë”•\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array<any>*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"<?xml\":\n break;\n case \"<metadata\":\n case \"</metadata>\":\n break;\n case \"<metadataTypes\":\n case \"</metadataTypes>\":\n break;\n case \"<metadataType\":\n out.Types.push({ name: y.name });\n break;\n case \"</metadataType>\":\n break;\n case \"<futureMetadata\":\n for (var j = 0; j < out.Types.length; ++j)\n if (out.Types[j].name == y.name)\n lastmeta = out.Types[j];\n break;\n case \"</futureMetadata>\":\n break;\n case \"<bk>\":\n break;\n case \"</bk>\":\n break;\n case \"<rc\":\n if (metatype == 1)\n out.Cell.push({ type: out.Types[y.t - 1].name, index: +y.v });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[y.t - 1].name, index: +y.v });\n break;\n case \"</rc>\":\n break;\n case \"<cellMetadata\":\n metatype = 1;\n break;\n case \"</cellMetadata>\":\n metatype = 2;\n break;\n case \"<valueMetadata\":\n metatype = 0;\n break;\n case \"</valueMetadata>\":\n metatype = 2;\n break;\n case \"<extLst\":\n case \"<extLst>\":\n case \"</extLst>\":\n case \"<extLst/>\":\n break;\n case \"<ext\":\n pass = true;\n break;\n case \"</ext>\":\n pass = false;\n break;\n case \"<rvb\":\n if (!lastmeta)\n break;\n if (!lastmeta.offsets)\n lastmeta.offsets = [];\n lastmeta.offsets.push(+y.i);\n break;\n default:\n if (!pass && (opts == null ? void 0 : opts.WTF))\n throw new Error(\"unrecognized \" + y[0] + \" in metadata\");\n }\n return x;\n });\n return out;\n}\nfunction write_xlmeta_xml() {\n var o = [XML_HEADER];\n o.push('<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\\n <metadataTypes count=\"1\">\\n <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\\n </metadataTypes>\\n <futureMetadata name=\"XLDAPR\" count=\"1\">\\n <bk>\\n <extLst>\\n <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\\n <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\\n </ext>\\n </extLst>\\n </bk>\\n </futureMetadata>\\n <cellMetadata count=\"1\">\\n <bk>\\n <rc t=\"1\" v=\"0\"/>\\n </bk>\\n </cellMetadata>\\n</metadata>');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array<any>*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml(/*::data, rel, name:string, _opts*/) {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name/*:string*/, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels/*:any*/) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^<>]*r:id=\"([^<>\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nfunction parse_vml(data/*:string*/, sheet, comments) {\n\tvar cidx = 0;\n\t(str_match_xml_ns_g(data, \"shape\")||[]).forEach(function(m) {\n\t\tvar type = \"\";\n\t\tvar hidden = true;\n\t\tvar aidx = -1;\n\t\tvar R = -1, C = -1;\n\t\tm.replace(tagregex, function(x/*:string*/, idx/*:number*/) {\n\t\t\tvar y = parsexmltag(x);\n\t\t\tswitch(strip_ns(y[0])) {\n\t\t\t\tcase '<ClientData': if(y.ObjectType) type = y.ObjectType; break;\n\n\t\t\t\tcase '<Visible': case '<Visible/>': hidden = false; break;\n\n\t\t\t\tcase '<Row': case '<Row>': aidx = idx + x.length; break;\n\t\t\t\tcase '</Row>': R = +m.slice(aidx, idx).trim(); break;\n\n\t\t\t\tcase '<Column': case '<Column>': aidx = idx + x.length; break;\n\t\t\t\tcase '</Column>': C = +m.slice(aidx, idx).trim(); break;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t});\n\t\tswitch(type) {\n\t\tcase 'Note':\n\t\t\tvar cell = ws_get_cell_stub(sheet, ((R>=0 && C>=0) ? encode_cell({r:R,c:C}) : comments[cidx].ref));\n\t\t\tif(cell.c) {\n\t\t\t\tcell.c.hidden = hidden;\n\t\t\t}\n\t\t\t++cidx;\n\t\t\tbreak;\n\t\t}\n\n\t});\n}\n\n\n/* comment boxes */\nfunction write_vml(rId/*:number*/, comments, ws) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"})\n\t];\n\n\tvar _shapeid = 65536 * rId;\n\n\tvar _comments = comments || [];\n\tif(_comments.length > 0) o.push(writextag(\"v:shapetype\", [\n\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t].join(\"\"), {id:\"_x0000_t202\", coordsize:csize.join(\",\"), 'o:spt':202, path:bbox}));\n\n\t_comments.forEach(function(x) { ++_shapeid; o.push(write_vml_comment(x, _shapeid)); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\n\nfunction write_vml_comment(x, _shapeid, ws)/*:string*/ {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\n\treturn [\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t].join(\"\");\n}\nfunction sheet_insert_comments(sheet/*:WorkSheet*/, comments/*:Array<RawComment>*/, threaded/*:boolean*/, people/*:?Array<any>*/) {\n\tvar dense = sheet[\"!data\"] != null;\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(r.r < 0 || r.c < 0) return;\n\t\tif(dense) {\n\t\t\tif(!sheet[\"!data\"][r.r]) sheet[\"!data\"][r.r] = [];\n\t\t\tcell = sheet[\"!data\"][r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[\"!data\"][r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tsheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar commentList/*:Array<RawComment>*/ = [];\n\tvar authtag = str_match_xml_ns(data, \"authors\");\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^<>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = str_match_xml_ns(data, \"commentList\");\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^<>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = str_match_xml_ns(x, \"text\");\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array<string>*/ = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"<author>\" + a + \"</author>\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"<author>\" + \"tc=\" + w.ID + \"</author>\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"<author>SheetJ5</author>\"); }\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [], tcnt = 0;\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\td[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tif(c.T) ++tcnt;\n\t\t\tts.push(c.t == null ? \"\" : escapexml(c.t));\n\t\t});\n\t\tif(tcnt === 0) {\n\t\t\td[1].forEach(function(c) {\n\t\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\t\to.push('</text></comment>');\n\t\t\t});\n\t\t} else {\n\t\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + lastauthor + '\"><text>');\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t\to.push('</text></comment>');\n\t\t}\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.6.207 ThreadedComments CT_ThreadedComments */\n\t\t\tcase '<ThreadedComments': break;\n\t\t\tcase '</ThreadedComments>': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '<threadedComment': comment = {author: y.personId, guid: y.id, ref: y.ref, T: 1}; break;\n\t\t\tcase '</threadedComment>': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '<text>': case '<text': tidx = idx + x.length; break;\n\t\t\tcase '</text>': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '<mentions': case '<mentions>': pass = true; break;\n\t\t\tcase '</mentions>': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('</ThreadedComments>');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.4.85 personList CT_PersonList */\n\t\t\tcase '<personList': break;\n\t\t\tcase '</personList>': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '<person': out.push({name: y.displayname, id: y.id }); break;\n\t\t\tcase '</person>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"</personList>\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array<RawComment>*/ {\n\tvar out/*:Array<RawComment>*/ = [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t\tif(c.T && c.ID && iauthor.indexOf(\"tc=\" + c.ID) == -1) {\n\t\t\t\tiauthor.push(\"tc=\" + c.ID);\n\t\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(\"tc=\" + c.ID));\n\t\t\t}\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tvar _ia = -1;\n\t\t\tif(c.ID) _ia = iauthor.indexOf(\"tc=\" + c.ID);\n\t\t\tif(_ia == -1 && comment[1][0].T && comment[1][0].ID) _ia = iauthor.indexOf(\"tc=\" + comment[1][0].ID);\n\t\t\tif(_ia == -1) _ia = iauthor.indexOf(c.a);\n\t\t\tc.iauthor = _ia;\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/^[\\/]*[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])(\\$?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])(\\$?)(\\d{1,7})(?![_.\\(A-Za-z0-9])/g;\ntry {\n\tcrefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\n}catch(e){}\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = $4 == \"$\" ? (r+1) : (r == 0 ? \"\" : \"[\" + r + \"]\");\n\t\t\tvar C = $2 == \"$\" ? (c+1) : (c == 0 ? \"\" : \"[\" + c + \"]\");\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array<number>*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array<number>*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array<Range>*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array<Array<any>>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t0x01: { n:'PtgExp', f:parse_PtgExp },\n\t0x02: { n:'PtgTbl', f:parse_PtgTbl },\n\t0x03: { n:'PtgAdd', f:parseread1 },\n\t0x04: { n:'PtgSub', f:parseread1 },\n\t0x05: { n:'PtgMul', f:parseread1 },\n\t0x06: { n:'PtgDiv', f:parseread1 },\n\t0x07: { n:'PtgPower', f:parseread1 },\n\t0x08: { n:'PtgConcat', f:parseread1 },\n\t0x09: { n:'PtgLt', f:parseread1 },\n\t0x0A: { n:'PtgLe', f:parseread1 },\n\t0x0B: { n:'PtgEq', f:parseread1 },\n\t0x0C: { n:'PtgGe', f:parseread1 },\n\t0x0D: { n:'PtgGt', f:parseread1 },\n\t0x0E: { n:'PtgNe', f:parseread1 },\n\t0x0F: { n:'PtgIsect', f:parseread1 },\n\t0x10: { n:'PtgUnion', f:parseread1 },\n\t0x11: { n:'PtgRange', f:parseread1 },\n\t0x12: { n:'PtgUplus', f:parseread1 },\n\t0x13: { n:'PtgUminus', f:parseread1 },\n\t0x14: { n:'PtgPercent', f:parseread1 },\n\t0x15: { n:'PtgParen', f:parseread1 },\n\t0x16: { n:'PtgMissArg', f:parseread1 },\n\t0x17: { n:'PtgStr', f:parse_PtgStr },\n\t0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n\t0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t0x1C: { n:'PtgErr', f:parse_PtgErr },\n\t0x1D: { n:'PtgBool', f:parse_PtgBool },\n\t0x1E: { n:'PtgInt', f:parse_PtgInt },\n\t0x1F: { n:'PtgNum', f:parse_PtgNum },\n\t0x20: { n:'PtgArray', f:parse_PtgArray },\n\t0x21: { n:'PtgFunc', f:parse_PtgFunc },\n\t0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t0x23: { n:'PtgName', f:parse_PtgName },\n\t0x24: { n:'PtgRef', f:parse_PtgRef },\n\t0x25: { n:'PtgArea', f:parse_PtgArea },\n\t0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n\t0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t0x39: { n:'PtgNameX', f:parse_PtgNameX },\n\t0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t0x40: 0x20, 0x60: 0x20,\n\t0x41: 0x21, 0x61: 0x21,\n\t0x42: 0x22, 0x62: 0x22,\n\t0x43: 0x23, 0x63: 0x23,\n\t0x44: 0x24, 0x64: 0x24,\n\t0x45: 0x25, 0x65: 0x25,\n\t0x46: 0x26, 0x66: 0x26,\n\t0x47: 0x27, 0x67: 0x27,\n\t0x48: 0x28, 0x68: 0x28,\n\t0x49: 0x29, 0x69: 0x29,\n\t0x4A: 0x2A, 0x6A: 0x2A,\n\t0x4B: 0x2B, 0x6B: 0x2B,\n\t0x4C: 0x2C, 0x6C: 0x2C,\n\t0x4D: 0x2D, 0x6D: 0x2D,\n\t0x4E: 0x2E, 0x6E: 0x2E,\n\t0x4F: 0x2F, 0x6F: 0x2F,\n\t0x58: 0x22, 0x78: 0x22,\n\t0x59: 0x39, 0x79: 0x39,\n\t0x5A: 0x3A, 0x7A: 0x3A,\n\t0x5B: 0x3B, 0x7B: 0x3B,\n\t0x5C: 0x3C, 0x7C: 0x3C,\n\t0x5D: 0x3D, 0x7D: 0x3D\n};\n\nvar Ptg18 = {\n\t0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t0x19: { n:'PtgList', f:parse_PtgList },\n\t0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n\t0xFF: {}\n};\nvar Ptg19 = {\n\t0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t0x21: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t0xFF: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array<Array<string>>*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array<string>*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// TODO: explore space\nfunction make_3d_range(start, end) {\n\tvar s = start.lastIndexOf(\"!\"), e = end.lastIndexOf(\"!\");\n\tif(s == -1 && e == -1) return start + \":\" + end;\n\tif(s > 0 && e > 0 && start.slice(0, s).toLowerCase() == end.slice(0, e).toLowerCase()) return start + \":\" + end.slice(e+1);\n\tconsole.error(\"Cannot hydrate range\", start, end);\n\treturn start + \":\" + end;\n}\n\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array<string>*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(make_3d_range(e2,e1));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\tif(stack[0] == \"TRUE\") return true; if(stack[0] == \"FALSE\") return false;\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n\n/* Writes a PtgNum or PtgInt */\nfunction write_XLSBFormulaNum(val/*:number*/) {\n\tif((val | 0) == val && val < Math.pow(2,16) && val >= 0) {\n\t\tvar oint = new_buf(11);\n\t\toint.write_shift(4, 3);\n\t\toint.write_shift(1, 0x1e);\n\t\toint.write_shift(2, val);\n\t\toint.write_shift(4, 0);\n\t\treturn oint;\n\t}\n\n\tvar num = new_buf(17);\n\tnum.write_shift(4, 11);\n\tnum.write_shift(1, 0x1f);\n\tnum.write_shift(8, val);\n\tnum.write_shift(4, 0);\n\treturn num;\n}\n/* Writes a PtgErr */\nfunction write_XLSBFormulaErr(val/*:number*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1C);\n\toint.write_shift(1, val);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n/* Writes a PtgBool */\nfunction write_XLSBFormulaBool(val/*:boolean*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1D);\n\toint.write_shift(1, val?1:0);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n\n/* Writes a PtgStr */\nfunction write_XLSBFormulaStr(val/*:string*/) {\n\tvar preamble = new_buf(7);\n\tpreamble.write_shift(4, 3 + 2 * val.length);\n\tpreamble.write_shift(1, 0x17);\n\tpreamble.write_shift(2, val.length);\n\n\tvar body = new_buf(2 * val.length);\n\tbody.write_shift(2 * val.length, val, \"utf16le\");\n\n\tvar postamble = new_buf(4);\n\tpostamble.write_shift(4, 0);\n\n\treturn bconcat([preamble, body, postamble]);\n}\n\n/* Writes a PtgRef */\nfunction write_XLSBFormulaRef(str) {\n\tvar cell = decode_cell(str);\n\tvar out = new_buf(15);\n\tout.write_shift(4, 7);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRef3d */\nfunction write_XLSBFormulaRef3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tvar cell = decode_cell(str);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRefErr3d */\nfunction write_XLSBFormulaRefErr3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1C | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, 0);\n\tout.write_shift(2, 0); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a single sheet range [PtgRef PtgRef PtgRange] */\nfunction write_XLSBFormulaRange(_str) {\n\tvar parts = _str.split(\":\"), str = parts[0];\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\t/* start cell */\n\tstr = parts[0]; var cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgRef3D PtgRef3D PtgRange] */\nfunction write_XLSBFormulaRangeWS(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar parts = _str.split(\":\");\n\n\tvar out = new_buf(27);\n\tout.write_shift(4, 19);\n\n\t/* start cell */\n\tvar str = parts[0], cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgArea3d] */\nfunction write_XLSBFormulaArea3D(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar range = decode_range(_str);\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\tout.write_shift(1, 0x1B | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, range.s.r);\n\tout.write_shift(4, range.e.r);\n\tout.write_shift(2, range.s.c);\n\tout.write_shift(2, range.e.c);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n\n/* General Formula */\nfunction write_XLSBFormula(val/*:string|number*/, wb) {\n\tif(typeof val == \"number\") return write_XLSBFormulaNum(val);\n\tif(typeof val == \"boolean\") return write_XLSBFormulaBool(val);\n\tif(/^#(DIV\\/0!|GETTING_DATA|N\\/A|NAME\\?|NULL!|NUM!|REF!|VALUE!)$/.test(val)) return write_XLSBFormulaErr(+RBErr[val]);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef(val);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRange(val);\n\tif(val.match(/^#REF!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaArea3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRangeWS(val, wb);\n\tif(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!#REF!$/.test(val)) return write_XLSBFormulaRefErr3D(val, wb);\n\tif(/^\".*\"$/.test(val)) return write_XLSBFormulaStr(val);\n\tif(/^[+-]\\d+$/.test(val)) return write_XLSBFormulaNum(parseInt(val, 10));\n\tthrow \"Formula |\" + val + \"| not supported for XLSB\";\n}\nvar write_XLSBNameParsedFormula = write_XLSBFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\tf = f.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tf = f.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tr = r.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tr = r.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/!/,\".\").replace(/:/, \":.\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array<any>*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF__load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles, date1904) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF__load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v, !!date1904);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v, !!date1904),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w+:)?mergeCell ref=[\"'][A-Z0-9:]+['\"]\\s*[\\/]?>/g;\nvar hlinkregex = /<(?:\\w+:)?hyperlink [^<>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w+:)?col\\b[^<>]*[\\/]?>/g;\nvar afregex = /<(?:\\w+:)?autoFilter[^>]*/g;\nvar marginregex= /<(?:\\w+:)?pageMargins[^<>]*\\/>/g;\nvar sheetprregex = /<(?:\\w+:)?sheetPr\\b[^<>]*?\\/>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = ({}/*:any*/); if(opts.dense) s[\"!data\"] = [];\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = str_match_xml_ns(data, \"sheetData\");\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = str_match_xml_ns(data1, \"sheetPr\"))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = str_match_xml_ns(data1, \"sheetViews\");\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array<ColInfo>*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles, wb);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array<Range>*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\t/* legacyDrawing */\n\tvar m;\n\tif((m = data2.match(/legacyDrawing r:id=\"(.*?)\"/))) s['!legrel'] = m[1];\n\n\tif(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(rels['!id'][s['!legrel']]) s['!legdrawel'] = rels['!id'][s['!legrel']];\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array<Range>*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array<string>*/, rels) {\n\tvar dense = s[\"!data\"] != null;\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_col(C) + encode_row(R);\n\t\t\tif(dense) {\n\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^<>a-z][^<>]*)?\\/?>/g;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(tag.rightToLeft && parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts, idx, wb, date1904)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif((cell.v === undefined || cell.t === \"z\" && !(opts||{}).sheetStubs) && typeof cell.f !== \"string\" && typeof cell.z == \"undefined\") return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n':\n\t\t\tif(isNaN(cell.v)) { cell.t = \"e\"; vv = BErr[cell.v = 0x24]; } // #NUM!\n\t\t\telse if(!isFinite(cell.v)) { cell.t = \"e\"; vv = BErr[cell.v = 0x07]; } // #DIV/0!\n\t\t\telse vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) {\n\t\t\t\tvar _vv = parseDate(cell.v, date1904);\n\t\t\t\tvv = _vv.toISOString();\n\t\t\t\tif(_vv.getUTCFullYear() < 1900) vv = vv.slice(vv.indexOf(\"T\") + 1).replace(\"Z\",\"\");\n\t\t\t} else {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v, date1904), date1904));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = (cell.t == \"z\" || cell.v == null)? \"\" : writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\telse o.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) {\n\t\tcell.l.display = escapexml(vv);\n\t\tws['!links'].push([ref, cell.l]);\n\t}\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles, wb) {\n\tvar ri = 0, x = \"\", cells/*:Array<string>*/ = [], cref/*:?Array<string>*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = s[\"!data\"] != null;\n\tvar rows/*:Array<RowInfo>*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tvar date1904 = !!((wb||{}).WBProps||{}).date1904;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(!opts.nodim) {\n\t\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\t\t}\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=str_match_xml_ns(d, \"v\"))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=str_match_xml_ns(d, \"f\"))!= null /*:: && cref != null*/) {\n\t\t\t\t\tif(cref[1] == \"\") {\n\t\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\t\tp.f=unescapexml(utf8read(cref[1]), true);\n\t\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^<>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? unescapexml(utf8read(p.v), true) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = str_match_xml_ns(d, \"is\");\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, date1904);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, date1904), date1904); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles, date1904);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.v = numdate(p.v + (date1904 ? 1462 : 0)); p.t = typeof p.v == \"number\" ? 'n' : 'd'; }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tvar _r;\n\t\t\tif(opts.nodim) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(guess.s.r > _r.r) guess.s.r = _r.r;\n\t\t\t\tif(guess.e.r < _r.r) guess.e.r = _r.r;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(!s[\"!data\"][_r.r]) s[\"!data\"][_r.r] = [];\n\t\t\t\ts[\"!data\"][_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], r/*:Array<string>*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array<string>*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = ws[\"!data\"] != null;\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb, date1904)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#[\\s\\S]*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\trel.display = l[1].display;\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = dense ? (ws[\"!data\"][caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(8 + 4 * data.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = ({}); if(opts.dense) s[\"!data\"] = [];\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array<Range>*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\tvar date1904 = 1462 * +!!((wb||{}).WBProps||{}).date1904;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles, date1904>0);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v + date1904); if(_d) { p.t = 'd'; p.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_col(C) + encode_row(R);\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\t\tif(val) s[\"!legrel\"] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\tif(rels['!id'][s['!legrel']]) s['!legdrawel'] = rels['!id'][s['!legrel']];\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/, date1904/*:boolean*/)/*:boolean*/ {\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v, date1904), date1904); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v == null ? \"\" : String(cell.v)/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else if(isNaN(cell.v)) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError({t:\"e\", v: 0x24}, o)); // #NUM!\n\t\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError({t:\"e\", v: 0x24}, o)); // #NUM!\n\t\t\t} else if(!isFinite(cell.v)) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError({t:\"e\", v: 0x07}, o)); // #DIV/0!\n\t\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError({t:\"e\", v: 0x07}, o)); // #DIV/0!\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = ws[\"!data\"] != null;\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen, date1904);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#[\\s\\S]*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref) });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array<number|string>, string, ?string]*/ {\n\tvar col/*:Array<number|string>*/ = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\"[^<>\\/]*><c:v>([^<])<\\/c:v><\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*)\"[^<>\\/]*><c:v>([^<]*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((str_match_xml(data, \"c:formatCode\") || [\"\",\"General\"])[1]);\n\n\t(str_match_ng(data, \"<c:f>\", \"</c:f>\")||[]).forEach(function(F) { f = F.replace(/<[^<>]*>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(str_match_ng(data, \"<c:numCache>\", \"</c:numCache>\")||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tif(cs[\"!data\"]) {\n\t\t\t\tif(!cs[\"!data\"][i]) cs[\"!data\"][i] = [];\n\t\t\t\tcs[\"!data\"][i][C] = {t:'n', v:n, z:cache[1] };\n\t\t\t} else cs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n//\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n//\t\t'xmlns': XMLNS_main[0],\n//\t\t'xmlns:r': XMLNS.r\n//\t})];\n//\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n//\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n//\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n//\treturn o.join(\"\");\n//}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n//\tvar ba = buf_array();\n//\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n//\t/* [BrtCsProp] */\n//\t/* CSVIEWS */\n//\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n//\t/* [USERCSVIEWS] */\n//\t/* [BrtMargins] */\n//\t/* [BrtCsPageSetup] */\n//\t/* [HEADERFOOTER] */\n//\t/* BrtDrawing */\n//\t/* [BrtLegacyDrawing] */\n//\t/* [BrtLegacyDrawingHF] */\n//\t/* [BrtBkHim] */\n//\t/* [WEBPUBITEMS] */\n//\t/* FRTCHARTSHEET */\n//\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n//\treturn ba.end();\n//}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\":][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\ttry {\n\t\tif(n == \"\") throw new Error(\"Sheet name cannot be blank\");\n\t\tif(n.length > 31) throw new Error(\"Sheet name cannot exceed 31 chars\");\n\t\tif(n.charCodeAt(0) == 0x27 || n.charCodeAt(n.length - 1) == 0x27) throw new Error(\"Sheet name cannot start or end with apostrophe (')\");\n\t\tif(n.toLowerCase() == \"history\") throw new Error(\"Sheet name cannot be 'History'\");\n\t\tbadchars.forEach(function(c) {\n\t\t\tif(n.indexOf(c) == -1) return;\n\t\t\tthrow new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t});\n\t} catch(e) { if(safe) return false; throw e; }\n\treturn true;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\twb.SheetNames.forEach(function(n, i) {\n\t\tvar ws = wb.Sheets[n];\n\t\tif(!ws || !ws[\"!autofilter\"]) return;\n\t\tvar DN;\n\t\tif(!wb.Workbook) wb.Workbook = {};\n\t\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\t\twb.Workbook.Names.forEach(function(dn) { if(dn.Name == \"_xlnm._FilterDatabase\" && dn.Sheet == i) DN = dn; });\n\t\tvar nn = formula_quote_sheet_name(n) + \"!\" + fix_range(ws[\"!autofilter\"].ref);\n\t\tif(DN) DN.Ref = nn;\n\t\telse wb.Workbook.Names.push({Name: \"_xlnm._FilterDatabase\", Sheet: i, Ref: nn});\n\t});\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS_main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nfunction write_wb_xml(wb/*:Workbook*//*::, opts:?WriteOpts*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to[o.length] = writextag('workbook', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t//'xmlns:mx': XMLNS.mx,\n\t\t//'xmlns:s': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t});\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.date1904) flags |= 0x01;\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tvar flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula;\n\tvar comment = \"\";\n\ttry {\n\t\tformula = parse_XLSBNameParsedFormula(data, 0, opts);\n\t\ttry {\n\t\t\tcomment = parse_XLNullableWideString(data);\n\t\t} catch(e){}\n\t} catch(e) { console.error(\"Could not parse defined name \" + name); }\n\tif(flags & 0x20) name = \"_xlnm.\" + name;\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula, Flags: flags}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\nfunction write_BrtName(name, wb) {\n\tvar o = new_buf(9);\n\tvar flags = 0;\n\tvar dname = name.Name;\n\tif(XLSLblBuiltIn.indexOf(dname) > -1) { flags |= 0x20; dname = dname.slice(6); }\n\to.write_shift(4, flags); // flags\n\to.write_shift(1, 0); // chKey\n\to.write_shift(4, name.Sheet == null ? 0xFFFFFFFF : name.Sheet);\n\n\tvar arr = [\n\t\to,\n\t\twrite_XLWideString(dname),\n\t\twrite_XLSBNameParsedFormula(name.Ref, wb)\n\t];\n\tif(name.Comment) arr.push(write_XLNullableWideString(name.Comment));\n\telse {\n\t\tvar x = new_buf(4);\n\t\tx.write_shift(4, 0xFFFFFFFF);\n\t\tarr.push(x);\n\t}\n\n\t// if macro (flags & 0x0F):\n\t// write_shift(4, 0xFFFFFFFF);\n\t// write_XLNullableWideString(description)\n\t// write_XLNullableWideString(helpTopic)\n\t// write_shift(4, 0xFFFFFFFF);\n\n\treturn bconcat(arr);\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = val.Ptg ? stringify_formula(val.Ptg, null, null, supbooks, opts) : \"#REF!\";\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\nfunction write_BRTNAMES(ba, wb) {\n\tif(!wb.Workbook || !wb.Workbook.Names) return;\n\twb.Workbook.Names.forEach(function(name) { try {\n\t\tif(name.Flags & 0x0e) return; // TODO: macro name write\n\t\twrite_record(ba, 0x0027 /* BrtName */, write_BrtName(name, wb));\n\t} catch(e) {\n\t\tconsole.error(\"Could not serialize defined name \" + JSON.stringify(name));\n\t} });\n}\n\nfunction write_SELF_EXTERNS_xlsb(wb) {\n\tvar L = wb.SheetNames.length;\n\tvar o = new_buf(12 * L + 28);\n\to.write_shift(4, L + 2);\n\to.write_shift(4, 0); o.write_shift(4, -2); o.write_shift(4, -2); // workbook-level reference\n\to.write_shift(4, 0); o.write_shift(4, -1); o.write_shift(4, -1); // #REF!...\n\tfor(var i = 0; i < L; ++i) {\n\t\to.write_shift(4, 0); o.write_shift(4, i); o.write_shift(4, i);\n\t}\n\treturn o;\n}\nfunction write_EXTERNALS_xlsb(ba, wb) {\n\twrite_record(ba, 0x0161 /* BrtBeginExternals */);\n\twrite_record(ba, 0x0165 /* BrtSupSelf */);\n\twrite_record(ba, 0x016A /* BrtExternSheet */, write_SELF_EXTERNS_xlsb(wb, 0));\n\twrite_record(ba, 0x0162 /* BrtEndExternals */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\twrite_EXTERNALS_xlsb(ba, wb);\n\tif((wb.Workbook||{}).Names) write_BRTNAMES(ba, wb);\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array<RawComment>*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\nvar attregexg2=/\\b((?:\\w+:)?[\\w]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/\\b((?:\\w+:)?[\\w]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value, date1904)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value, {date1904: !!date1904});\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o, date1904) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v, date1904);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v + (date1904 ? 1462 : 0)); if(_d) { cell.t = 'd'; cell.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o, date1904) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tvar ssid = styles[sid];\n\t\tif(ssid.nf) nf = ssid.nf;\n\t\tif(ssid.Interior) interiors.push(ssid.Interior);\n\t\tif(!ssid.Parent) break;\n\t\tsid = ssid.Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<[^<>]*>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = datenum(parseDate(xml, date1904), date1904);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o, date1904);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_prefix_dname(dname) {\n\treturn XLSLblBuiltIn.indexOf(\"_xlnm.\" + dname) > -1 ? \"_xlnm.\" + dname : dname;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array<string>*/ = [], cursheet/*:Worksheet*/ = ({}), sheetname = \"\"; if(opts.dense) cursheet[\"!data\"] = [];\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array<RowInfo>*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str_remove_ng(str, \"<!--\", \"-->\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts, Workbook.WBProps.date1904);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== void 0) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[\"!data\"][r]) cursheet[\"!data\"][r] = [];\n\t\t\t\t\t\tcursheet[\"!data\"][r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tif(cc > c || rr > r) merges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[\"!data\"][cmd]) cursheet[\"!data\"][cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[\"!data\"][cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = ({}); if(opts.dense) cursheet[\"!data\"] = [];\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF__load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: xlml_prefix_dname(_NamedRange.Name),\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(!parsexmlbool(tmp[\"ShowAlways\"]||\"0\")) comments.hidden = true;\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'hidehorizontalscrollbar' /*case 'HideHorizontalScrollBar'*/: break;\n\t\t\t\t\tcase 'hideverticalscrollbar' /*case 'HideVerticalScrollBar'*/: break;\n\t\t\t\t\tcase 'hideworkbooktabs' /*case 'HideWorkbookTabs'*/: break;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\tout.bookType = \"xlml\";\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(wb/*::, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\tif((((wb||{}).Workbook||{}).WBProps||{}).date1904) return '<ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\"><Date1904/></ExcelWorkbook>';\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array<string>*/ = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array<string>*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name.slice(0,6) == \"_xlnm.\" ? n.Name.slice(6) : n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array<string>*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array<any>*/)/*:string*/ {\n\t/* TODO: test multiple comments */\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\tvar p = {};\n\t\tif(c.a) p[\"ss:Author\"] = c.a;\n\t\tif(!comments.hidden) p[\"ss:ShowAlways\"] = \"1\";\n\t\treturn writextag(\"Comment\", d, p);\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array<string>*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_col(C) + encode_row(R), cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\tif(ws[\"!autofilter\"]) o.push('<AutoFilter x:Range=\"' + a1_to_rc(fix_range(ws[\"!autofilter\"].ref), {r:0,c:0}) + '\" xmlns=\"urn:schemas-microsoft-com:office:excel\"></AutoFilter>');\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array<string>*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002F /* FilePass */: case 0x0195 /* FileLock */: case 0x00E1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF && p.z == null) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v + (date1904 ? 1462 : 0)); if(_d) { p.t = 'd'; p.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar biff4w = false;\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(!biff4w && file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[\"!data\"][cell.r]) out[\"!data\"][cell.r] = [];\n\t\t\t\tout[\"!data\"][cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array<string>*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(RecordType) == -1 /* BOF */) break;\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* BOF */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x0043: /* BIFF2XF */ case 0x0243: /* BIFF3XF */ case 0x0443: /* BIFF4XF */\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[opts.biff == 4 ? opts.snames.length : val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth ? !biff4w : biff4w) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t0x0009: 2,\n\t\t\t\t\t\t0x0209: 3,\n\t\t\t\t\t\t0x0409: 4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t0x0200: 2,\n\t\t\t\t\t\t0x0300: 3,\n\t\t\t\t\t\t0x0400: 4,\n\t\t\t\t\t\t0x0500: 5,\n\t\t\t\t\t\t0x0600: 8,\n\t\t\t\t\t\t0x0002: 2,\n\t\t\t\t\t\t0x0007: 2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 4 && val.dt & 0x100) biff4w = true;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++ && !biff4w) break;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff == 4 && biff4w) {\n\t\t\t\t\t\tcur_sheet = (Directory[opts.snames.indexOf(cur_sheet)+1] || {name:\"\"}).name;\n\t\t\t\t\t} else if(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[\"!data\"][val.r]||[])[val.c]: out[encode_col(val.c) + encode_row(val.r)]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[\"!data\"][_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff >= 3 && opts.biff <= 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF__load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF__load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF__load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\t/* TODO: comment continuation (row == -1 / 0xFFFF) */\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[\"!data\"][val[0].r]) out[\"!data\"][val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[\"!data\"][val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) cmnt = {a:\"SheetJ5\", t:val[1]};\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\t\tif(val[3] != null && !(val[3] & 0x02)) cc.c.hidden = true;\n\t\t\t\t\t}\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t0x0000: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t0x0001: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t0x0002: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t0x0003: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t0x0004: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t0x0005: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t0x0006: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t0x0007: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t0x0008: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t0x0009: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t0x000A: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t0x000B: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t0x000C: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t0x000D: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t0x000E: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t0x000F: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t0x0010: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t0x0011: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t0x0012: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t0x0013: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t0x0014: { /* n:\"BrtPCDIMissing\" */ },\n\t0x0015: { /* n:\"BrtPCDINumber\" */ },\n\t0x0016: { /* n:\"BrtPCDIBoolean\" */ },\n\t0x0017: { /* n:\"BrtPCDIError\" */ },\n\t0x0018: { /* n:\"BrtPCDIString\" */ },\n\t0x0019: { /* n:\"BrtPCDIDatetime\" */ },\n\t0x001A: { /* n:\"BrtPCDIIndex\" */ },\n\t0x001B: { /* n:\"BrtPCDIAMissing\" */ },\n\t0x001C: { /* n:\"BrtPCDIANumber\" */ },\n\t0x001D: { /* n:\"BrtPCDIABoolean\" */ },\n\t0x001E: { /* n:\"BrtPCDIAError\" */ },\n\t0x001F: { /* n:\"BrtPCDIAString\" */ },\n\t0x0020: { /* n:\"BrtPCDIADatetime\" */ },\n\t0x0021: { /* n:\"BrtPCRRecord\" */ },\n\t0x0022: { /* n:\"BrtPCRRecordDt\" */ },\n\t0x0023: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t0x0024: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t0x0025: { /* n:\"BrtACBegin\", */ T:1 },\n\t0x0026: { /* n:\"BrtACEnd\", */ T:-1 },\n\t0x0027: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t0x0028: { /* n:\"BrtIndexRowBlock\" */ },\n\t0x002A: { /* n:\"BrtIndexBlock\" */ },\n\t0x002B: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t0x002C: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t0x002D: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t0x002E: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t0x002F: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t0x0030: { /* n:\"BrtStyle\" */ },\n\t0x0031: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t0x0032: { /* n:\"BrtValueMeta\" */ },\n\t0x0033: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t0x0034: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t0x0035: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t0x0036: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t0x0037: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t0x0038: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t0x0039: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t0x003A: { /* n:\"BrtMdxMbrIstr\" */ },\n\t0x003B: { /* n:\"BrtStr\" */ },\n\t0x003C: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t0x003E: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t0x003F: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t0x0040: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t0x0041: { /* n:\"BrtSxvcellNum\" */ },\n\t0x0042: { /* n:\"BrtSxvcellStr\" */ },\n\t0x0043: { /* n:\"BrtSxvcellBool\" */ },\n\t0x0044: { /* n:\"BrtSxvcellErr\" */ },\n\t0x0045: { /* n:\"BrtSxvcellDate\" */ },\n\t0x0046: { /* n:\"BrtSxvcellNil\" */ },\n\t0x0080: { /* n:\"BrtFileVersion\" */ },\n\t0x0081: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t0x0082: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t0x0083: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t0x0084: { /* n:\"BrtEndBook\", */ T:-1 },\n\t0x0085: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t0x0086: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t0x0087: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t0x0088: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t0x0089: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t0x008A: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t0x008B: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t0x008C: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t0x008D: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t0x008E: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t0x008F: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t0x0090: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t0x0091: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t0x0092: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t0x0093: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t0x0094: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t0x0097: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t0x0098: { /* n:\"BrtSel\" */ },\n\t0x0099: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t0x009A: { /* n:\"BrtWbFactoid\" */ },\n\t0x009B: { /* n:\"BrtFileRecover\" */ },\n\t0x009C: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t0x009D: { /* n:\"BrtCalcProp\" */ },\n\t0x009E: { /* n:\"BrtBookView\" */ },\n\t0x009F: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t0x00A0: { /* n:\"BrtEndSst\", */ T:-1 },\n\t0x00A1: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t0x00A2: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t0x00A3: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t0x00A4: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t0x00A5: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t0x00A6: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t0x00A7: { /* n:\"BrtFilter\" */ },\n\t0x00A8: { /* n:\"BrtColorFilter\" */ },\n\t0x00A9: { /* n:\"BrtIconFilter\" */ },\n\t0x00AA: { /* n:\"BrtTop10Filter\" */ },\n\t0x00AB: { /* n:\"BrtDynamicFilter\" */ },\n\t0x00AC: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t0x00AD: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t0x00AE: { /* n:\"BrtCustomFilter\" */ },\n\t0x00AF: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t0x00B0: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t0x00B1: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t0x00B2: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t0x00B3: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t0x00B4: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t0x00B5: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t0x00B6: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t0x00B7: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t0x00B8: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t0x00B9: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t0x00BA: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t0x00BB: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t0x00BC: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t0x00BD: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t0x00BE: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t0x00BF: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t0x00C0: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t0x00C1: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t0x00C2: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t0x00C3: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t0x00C4: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t0x00C5: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t0x00C6: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t0x00C7: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t0x00C8: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t0x00C9: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t0x00CA: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t0x00CB: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t0x00CC: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t0x00CD: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t0x00CE: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t0x00CF: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t0x00D0: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t0x00D1: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t0x00D2: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t0x00D3: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t0x00D4: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t0x00D5: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t0x00D6: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t0x00D7: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t0x00D8: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t0x00D9: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t0x00DA: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t0x00DB: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t0x00DC: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t0x00DD: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t0x00DE: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t0x00DF: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t0x00E0: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t0x00E1: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t0x00E2: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t0x00E3: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t0x00E4: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t0x00E5: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t0x00E6: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t0x00E7: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t0x00E8: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t0x00E9: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t0x00EA: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t0x00EB: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t0x00EC: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t0x00ED: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t0x00EE: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t0x00EF: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t0x00F0: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t0x00F1: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t0x00F2: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t0x00F3: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t0x00F4: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t0x00F5: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t0x00F6: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t0x00F7: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t0x00F8: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t0x00F9: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t0x00FA: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t0x00FB: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t0x00FC: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t0x00FD: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t0x00FE: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t0x00FF: { /* n:\"BrtBeginPName\", */ T:1 },\n\t0x0100: { /* n:\"BrtEndPName\", */ T:-1 },\n\t0x0101: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t0x0102: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t0x0103: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t0x0104: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t0x0105: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t0x0106: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t0x0107: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t0x0108: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t0x0109: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t0x010A: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t0x010B: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t0x010C: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t0x010D: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t0x010E: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t0x010F: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t0x0110: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t0x0111: { /* n:\"BrtBeginDims\", */ T:1 },\n\t0x0112: { /* n:\"BrtEndDims\", */ T:-1 },\n\t0x0113: { /* n:\"BrtBeginDim\", */ T:1 },\n\t0x0114: { /* n:\"BrtEndDim\", */ T:-1 },\n\t0x0115: { /* n:\"BrtIndexPartEnd\" */ },\n\t0x0116: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t0x0117: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t0x0118: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t0x0119: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t0x011A: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t0x011B: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t0x011C: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t0x011D: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t0x011E: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t0x011F: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t0x0120: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t0x0121: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t0x0122: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t0x0123: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t0x0124: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t0x0125: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t0x0126: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t0x0127: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t0x0128: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t0x0129: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t0x012A: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t0x012B: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t0x012C: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t0x012D: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t0x012E: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t0x012F: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t0x0130: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t0x0131: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t0x0132: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t0x0133: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t0x0134: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t0x0135: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t0x0136: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t0x0137: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t0x0138: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t0x0139: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t0x013A: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t0x013B: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t0x013C: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t0x013D: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t0x013E: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t0x013F: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t0x0140: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t0x0141: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t0x0142: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t0x0143: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t0x0144: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t0x0145: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t0x0146: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t0x0147: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t0x0148: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t0x0149: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t0x014A: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t0x014B: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t0x014C: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t0x014D: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t0x014E: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t0x014F: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t0x0150: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t0x0151: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t0x0152: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t0x0153: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t0x0154: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t0x0155: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t0x0156: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t0x0157: { /* n:\"BrtBeginList\", */ T:1 },\n\t0x0158: { /* n:\"BrtEndList\", */ T:-1 },\n\t0x0159: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t0x015A: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t0x015B: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t0x015C: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t0x015D: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t0x015E: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t0x015F: { /* n:\"BrtListCCFmla\" */ },\n\t0x0160: { /* n:\"BrtListTrFmla\" */ },\n\t0x0161: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t0x0162: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t0x0163: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t0x0165: { /* n:\"BrtSupSelf\" */ },\n\t0x0166: { /* n:\"BrtSupSame\" */ },\n\t0x0167: { /* n:\"BrtSupTabs\" */ },\n\t0x0168: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t0x0169: { /* n:\"BrtPlaceholderName\" */ },\n\t0x016A: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t0x016B: { /* n:\"BrtExternTableStart\" */ },\n\t0x016C: { /* n:\"BrtExternTableEnd\" */ },\n\t0x016E: { /* n:\"BrtExternRowHdr\" */ },\n\t0x016F: { /* n:\"BrtExternCellBlank\" */ },\n\t0x0170: { /* n:\"BrtExternCellReal\" */ },\n\t0x0171: { /* n:\"BrtExternCellBool\" */ },\n\t0x0172: { /* n:\"BrtExternCellError\" */ },\n\t0x0173: { /* n:\"BrtExternCellString\" */ },\n\t0x0174: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t0x0175: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t0x0176: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t0x0177: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t0x0178: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t0x0179: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t0x017A: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t0x017B: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t0x017C: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t0x017D: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t0x017E: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t0x017F: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t0x0180: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t0x0181: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t0x0182: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t0x0183: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t0x0184: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t0x0185: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t0x0186: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t0x0187: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t0x0188: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t0x0189: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t0x018A: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t0x018B: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t0x018C: { /* n:\"BrtBrk\" */ },\n\t0x018D: { /* n:\"BrtUserBookView\" */ },\n\t0x018E: { /* n:\"BrtInfo\" */ },\n\t0x018F: { /* n:\"BrtCUsr\" */ },\n\t0x0190: { /* n:\"BrtUsr\" */ },\n\t0x0191: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t0x0193: { /* n:\"BrtEOF\" */ },\n\t0x0194: { /* n:\"BrtUCR\" */ },\n\t0x0195: { /* n:\"BrtRRInsDel\" */ },\n\t0x0196: { /* n:\"BrtRREndInsDel\" */ },\n\t0x0197: { /* n:\"BrtRRMove\" */ },\n\t0x0198: { /* n:\"BrtRREndMove\" */ },\n\t0x0199: { /* n:\"BrtRRChgCell\" */ },\n\t0x019A: { /* n:\"BrtRREndChgCell\" */ },\n\t0x019B: { /* n:\"BrtRRHeader\" */ },\n\t0x019C: { /* n:\"BrtRRUserView\" */ },\n\t0x019D: { /* n:\"BrtRRRenSheet\" */ },\n\t0x019E: { /* n:\"BrtRRInsertSh\" */ },\n\t0x019F: { /* n:\"BrtRRDefName\" */ },\n\t0x01A0: { /* n:\"BrtRRNote\" */ },\n\t0x01A1: { /* n:\"BrtRRConflict\" */ },\n\t0x01A2: { /* n:\"BrtRRTQSIF\" */ },\n\t0x01A3: { /* n:\"BrtRRFormat\" */ },\n\t0x01A4: { /* n:\"BrtRREndFormat\" */ },\n\t0x01A5: { /* n:\"BrtRRAutoFmt\" */ },\n\t0x01A6: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t0x01A7: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t0x01A8: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t0x01A9: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t0x01AA: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t0x01AB: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t0x01AC: { /* n:\"BrtTable\" */ },\n\t0x01AD: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t0x01AE: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t0x01AF: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t0x01B0: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t0x01B1: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t0x01B2: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t0x01B3: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t0x01B4: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t0x01B5: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t0x01B6: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t0x01B7: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t0x01B8: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t0x01B9: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t0x01BA: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t0x01BB: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t0x01BC: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t0x01BD: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t0x01BE: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t0x01BF: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t0x01C0: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t0x01C1: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t0x01C2: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t0x01C3: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t0x01C4: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t0x01C5: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t0x01C6: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t0x01C7: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t0x01C8: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t0x01C9: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t0x01CA: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t0x01CB: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t0x01CC: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t0x01CD: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t0x01CE: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t0x01CF: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t0x01D0: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t0x01D1: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t0x01D2: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t0x01D3: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t0x01D4: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t0x01D5: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t0x01D6: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t0x01D7: { /* n:\"BrtCFVO\" */ },\n\t0x01D8: { /* n:\"BrtExternValueMeta\" */ },\n\t0x01D9: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t0x01DA: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t0x01DB: { /* n:\"BrtIndexedColor\" */ },\n\t0x01DC: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t0x01DD: { /* n:\"BrtPrintOptions\" */ },\n\t0x01DE: { /* n:\"BrtPageSetup\" */ },\n\t0x01DF: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t0x01E0: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t0x01E1: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t0x01E2: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t0x01E3: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t0x01E4: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t0x01E5: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t0x01E6: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t0x01E7: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t0x01E8: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t0x01E9: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t0x01EA: { /* n:\"BrtBeginMG\", */ T:1 },\n\t0x01EB: { /* n:\"BrtEndMG\", */ T:-1 },\n\t0x01EC: { /* n:\"BrtBeginMap\", */ T:1 },\n\t0x01ED: { /* n:\"BrtEndMap\", */ T:-1 },\n\t0x01EE: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t0x01EF: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t0x01F0: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t0x01F1: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t0x01F2: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t0x01F3: { /* n:\"BrtDRef\" */ },\n\t0x01F4: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t0x01F5: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t0x01F6: { /* n:\"BrtBeginSct\", */ T:1 },\n\t0x01F7: { /* n:\"BrtEndSct\", */ T:-1 },\n\t0x01F8: { /* n:\"BrtSlc\" */ },\n\t0x01F9: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t0x01FA: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t0x01FB: { /* n:\"BrtDXF\" */ },\n\t0x01FC: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t0x01FD: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t0x01FE: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t0x01FF: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t0x0200: { /* n:\"BrtTableStyleElement\" */ },\n\t0x0201: { /* n:\"BrtTableStyleClient\" */ },\n\t0x0202: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t0x0203: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t0x0204: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t0x0205: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t0x0206: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t0x0207: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t0x0208: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t0x0209: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t0x020A: { /* n:\"BrtVolSubtopic\" */ },\n\t0x020B: { /* n:\"BrtVolRef\" */ },\n\t0x020C: { /* n:\"BrtVolNum\" */ },\n\t0x020D: { /* n:\"BrtVolErr\" */ },\n\t0x020E: { /* n:\"BrtVolStr\" */ },\n\t0x020F: { /* n:\"BrtVolBool\" */ },\n\t0x0210: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t0x0211: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t0x0212: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t0x0213: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t0x0214: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t0x0215: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t0x0216: { /* n:\"BrtBookProtection\" */ },\n\t0x0217: { /* n:\"BrtSheetProtection\" */ },\n\t0x0218: { /* n:\"BrtRangeProtection\" */ },\n\t0x0219: { /* n:\"BrtPhoneticInfo\" */ },\n\t0x021A: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t0x021B: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t0x021C: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t0x021D: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t0x021E: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t0x0224: { /* n:\"BrtFileSharing\" */ },\n\t0x0225: { /* n:\"BrtOleSize\" */ },\n\t0x0226: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t0x0227: { /* n:\"BrtLegacyDrawing\", */ f:parse_XLNullableWideString },\n\t0x0228: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t0x0229: { /* n:\"BrtWebOpt\" */ },\n\t0x022A: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t0x022B: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t0x022C: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t0x022D: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t0x022E: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t0x022F: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t0x0230: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t0x0231: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t0x0232: { /* n:\"BrtBkHim\" */ },\n\t0x0234: { /* n:\"BrtColor\" */ },\n\t0x0235: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t0x0236: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t0x0239: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t0x023A: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t0x023C: { /* n:\"BrtMRUColor\" */ },\n\t0x023D: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t0x023E: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t0x0241: { /* n:\"BrtSupNameStart\" */ },\n\t0x0242: { /* n:\"BrtSupNameValueStart\" */ },\n\t0x0243: { /* n:\"BrtSupNameValueEnd\" */ },\n\t0x0244: { /* n:\"BrtSupNameNum\" */ },\n\t0x0245: { /* n:\"BrtSupNameErr\" */ },\n\t0x0246: { /* n:\"BrtSupNameSt\" */ },\n\t0x0247: { /* n:\"BrtSupNameNil\" */ },\n\t0x0248: { /* n:\"BrtSupNameBool\" */ },\n\t0x0249: { /* n:\"BrtSupNameFmla\" */ },\n\t0x024A: { /* n:\"BrtSupNameBits\" */ },\n\t0x024B: { /* n:\"BrtSupNameEnd\" */ },\n\t0x024C: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t0x024D: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t0x024E: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t0x024F: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t0x0250: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t0x0251: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t0x0252: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t0x0253: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t0x0254: { /* n:\"BrtSmartTagType\" */ },\n\t0x0255: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t0x0256: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t0x0257: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t0x0258: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t0x0259: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t0x025A: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t0x025B: { /* n:\"BrtBeginFills\", */ T:1 },\n\t0x025C: { /* n:\"BrtEndFills\", */ T:-1 },\n\t0x025D: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t0x025E: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t0x025F: { /* n:\"BrtCellWatch\" */ },\n\t0x0260: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t0x0261: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t0x0262: { /* n:\"BrtCrashRecErr\" */ },\n\t0x0263: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t0x0264: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t0x0265: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t0x0266: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t0x0267: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t0x0268: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t0x0269: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t0x026A: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t0x026B: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t0x026C: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t0x0271: { /* n:\"BrtBigName\" */ },\n\t0x0272: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t0x0273: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t0x0274: { /* n:\"BrtBeginComments\", */ T:1 },\n\t0x0275: { /* n:\"BrtEndComments\", */ T:-1 },\n\t0x0276: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t0x0277: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t0x0278: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t0x0279: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t0x027A: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t0x027B: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t0x027C: { /* n:\"BrtEndComment\", */ T:-1 },\n\t0x027D: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t0x027E: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t0x027F: { /* n:\"BrtOleObject\" */ },\n\t0x0280: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t0x0281: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t0x0282: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t0x0283: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t0x0284: { /* n:\"BrtActiveX\" */ },\n\t0x0285: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t0x0286: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t0x0288: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t0x0289: { /* n:\"BrtCellIgnoreEC\" */ },\n\t0x028A: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t0x028B: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t0x028C: { /* n:\"BrtCsPageSetup\" */ },\n\t0x028D: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t0x028E: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t0x028F: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t0x0290: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t0x0291: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t0x0292: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t0x0293: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t0x0294: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t0x0295: { /* n:\"BrtListPart\" */ },\n\t0x0296: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t0x0297: { /* n:\"BrtSheetCalcProp\" */ },\n\t0x0298: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t0x0299: { /* n:\"BrtFnGroup\" */ },\n\t0x029A: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t0x029B: { /* n:\"BrtSupAddin\" */ },\n\t0x029C: { /* n:\"BrtSXTDMPOrder\" */ },\n\t0x029D: { /* n:\"BrtCsProtection\" */ },\n\t0x029F: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t0x02A0: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t0x02A1: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t0x02A2: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t0x02A3: { /* n:\"BrtRRSortItem\" */ },\n\t0x02A4: { /* n:\"BrtFileSharingIso\" */ },\n\t0x02A5: { /* n:\"BrtBookProtectionIso\" */ },\n\t0x02A6: { /* n:\"BrtSheetProtectionIso\" */ },\n\t0x02A7: { /* n:\"BrtCsProtectionIso\" */ },\n\t0x02A8: { /* n:\"BrtRangeProtectionIso\" */ },\n\t0x02A9: { /* n:\"BrtDValList\" */ },\n\t0x0400: { /* n:\"BrtRwDescent\" */ },\n\t0x0401: { /* n:\"BrtKnownFonts\" */ },\n\t0x0402: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t0x0403: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t0x0404: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t0x0405: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t0x0406: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t0x0407: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t0x0408: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t0x0409: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t0x040A: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t0x040B: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t0x040C: { /* n:\"BrtNameExt\" */ },\n\t0x040D: { /* n:\"BrtPCDH14\" */ },\n\t0x040E: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t0x040F: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t0x0410: { /* n:\"BrtSXTH14\" */ },\n\t0x0411: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t0x0412: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t0x0413: { /* n:\"BrtSparkline\" */ },\n\t0x0414: { /* n:\"BrtSXDI14\" */ },\n\t0x0415: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t0x0416: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t0x0417: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t0x0418: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t0x0419: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t0x041A: { /* n:\"BrtCFVO14\" */ },\n\t0x041B: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t0x041C: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t0x041D: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t0x041E: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t0x041F: { /* n:\"BrtColor14\" */ },\n\t0x0420: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t0x0421: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t0x0422: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t0x0423: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t0x0425: { /* n:\"BrtSXVD14\" */ },\n\t0x0426: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t0x0427: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t0x0428: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t0x0429: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t0x042A: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t0x042B: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t0x042C: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t0x042D: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t0x042E: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t0x042F: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t0x0430: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t0x0431: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t0x0433: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t0x0434: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t0x0435: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t0x0436: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t0x0437: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t0x0438: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t0x0439: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t0x043A: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t0x043B: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t0x043C: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t0x043D: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t0x043E: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t0x043F: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t0x0440: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t0x0441: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t0x0442: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t0x0443: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t0x0444: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t0x0445: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t0x0446: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t0x0447: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t0x0448: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t0x0449: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t0x044A: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t0x044B: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t0x044C: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t0x044D: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t0x044E: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t0x044F: { /* n:\"BrtRangeProtection14\" */ },\n\t0x0450: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t0x0451: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t0x0457: { /* n:\"BrtList14\" */ },\n\t0x0458: { /* n:\"BrtCFIcon\" */ },\n\t0x0459: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t0x045A: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t0x045B: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t0x045C: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t0x045D: { /* n:\"BrtWbProp14\" */ },\n\t0x045E: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t0x045F: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t0x0460: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t0x0461: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t0x0462: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t0x0463: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t0x0464: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t0x0465: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t0x0466: { /* n:\"BrtSXTupleItems\" */ },\n\t0x0468: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t0x0469: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t0x046A: { /* n:\"BrtSlicerStyleElement\" */ },\n\t0x046B: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t0x046C: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t0x046D: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t0x046E: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t0x046F: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t0x0470: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t0x0471: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t0x0472: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t0x0473: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t0x0474: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t0x0475: { /* n:\"BrtPCDField14\" */ },\n\t0x0476: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t0x0477: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t0x0478: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t0x0479: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t0x047A: { /* n:\"BrtCFRuleExt\" */ },\n\t0x047B: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t0x047C: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t0x047D: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t0x047E: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t0x0480: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t0x0481: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t0x0482: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t0x0483: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t0x0484: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t0x0485: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t0x0486: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t0x0487: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t0x0488: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t0x0489: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t0x048A: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t0x048B: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t0x048C: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t0x048D: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t0x048E: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t0x048F: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t0x0490: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t0x0491: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t0x0492: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t0x0493: { /* n:\"BrtDxf14\" */ },\n\t0x0494: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t0x0495: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t0x0499: { /* n:\"BrtFilter14\" */ },\n\t0x049A: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t0x049C: { /* n:\"BrtCustomFilter14\" */ },\n\t0x049D: { /* n:\"BrtIconFilter14\" */ },\n\t0x049E: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t0x0800: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t0x0801: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t0x0802: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t0x0803: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t0x0804: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t0x0805: { /* n:\"BrtPivotTableRef\" */ },\n\t0x0806: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t0x0807: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t0x0808: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t0x0809: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t0x080A: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t0x080C: { /* n:\"BrtPcdCalcMem15\" */ },\n\t0x0813: { /* n:\"BrtQsi15\" */ },\n\t0x0814: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t0x0815: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t0x0816: { /* n:\"BrtWebExtension\" */ },\n\t0x0817: { /* n:\"BrtAbsPath15\" */ },\n\t0x0818: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t0x0819: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t0x081B: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t0x081C: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t0x081D: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t0x081E: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t0x081F: { /* n:\"BrtSxFilter15\" */ },\n\t0x0820: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t0x0821: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t0x0822: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t0x0823: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t0x0824: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t0x0825: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t0x0826: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t0x0827: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t0x0828: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t0x0829: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t0x082A: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t0x082B: { /* n:\"BrtWorkBookPr15\" */ },\n\t0x082C: { /* n:\"BrtPCDH15\" */ },\n\t0x082D: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t0x082E: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t0x082F: { /* n:\"BrtTimelineStyleElement\" */ },\n\t0x0830: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t0x0831: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t0x0832: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t0x0833: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t0x0834: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t0x0835: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t0x0836: { /* n:\"BrtDxf15\" */ },\n\t0x0837: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t0x0838: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t0x0839: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t0x083A: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t0x083B: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t0x083C: { /* n:\"BrtItemUniqueName\" */ },\n\t0x083D: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t0x083E: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t0x083F: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t0x0840: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t0x0841: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t0x0842: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t0x0843: { /* n:\"BrtTextPr15\" */ },\n\t0x0844: { /* n:\"BrtRangePr15\" */ },\n\t0x0845: { /* n:\"BrtDbCommand15\" */ },\n\t0x0846: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t0x0847: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t0x0848: { /* n:\"BrtDbTable15\" */ },\n\t0x0849: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t0x084A: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t0x084B: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t0x084C: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t0x084D: { /* n:\"BrtModelTable\" */ },\n\t0x084E: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t0x084F: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t0x0850: { /* n:\"BrtModelRelationship\" */ },\n\t0x0851: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t0x0852: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t0x0853: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t0x0854: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t0x0855: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t0x0856: { /* n:\"BrtFieldListActiveItem\" */ },\n\t0x0857: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t0x0858: { /* n:\"BrtSXDI15\" */ },\n\t0x0859: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t0x085A: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t0x085B: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t0x085C: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t0x085D: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t0x0C00: { /* n:\"BrtUid\" */ },\n\t0x0C01: { /* n:\"BrtRevisionPtr\" */ },\n\t0x1000: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t0x1001: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t0x138A: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t0x138B: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t0x13D9: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t0x13DA: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t0x13DB: { /* n:\"BrtRichFilter\" */ },\n\t0x13DC: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t0x13DD: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t0x13DE: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t0x13DF: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t0x13E0: { /* n:\"BrtCustomRichFilter\" */ },\n\t0x13E1: { /* n:\"BrtTop10RichFilter\" */ },\n\t0x13E2: { /* n:\"BrtDynamicRichFilter\" */ },\n\t0x13E4: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t0x13E5: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t0x13E6: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t0x13E7: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t0x13E8: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t0x13E9: { /* n:\"BrtCalcFeature\" */ },\n\t0x13EB: { /* n:\"BrtExternalLinksPr\" */ },\n\t0xFFFF: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t0x0006: { /* n:\"Formula\", */ f:parse_Formula },\n\t0x000a: { /* n:\"EOF\", */ f:parsenoop2 },\n\t0x000c: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t0x000d: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t0x000e: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t0x000f: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t0x0010: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t0x0011: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t0x0012: { /* n:\"Protect\", */ f:parsebool },\n\t0x0013: { /* n:\"Password\", */ f:parseuint16 },\n\t0x0014: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t0x0015: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t0x0017: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t0x0018: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t0x0019: { /* n:\"WinProtect\", */ f:parsebool },\n\t0x001a: { /* n:\"VerticalPageBreaks\", */ },\n\t0x001b: { /* n:\"HorizontalPageBreaks\", */ },\n\t0x001c: { /* n:\"Note\", */ f:parse_Note },\n\t0x001d: { /* n:\"Selection\", */ },\n\t0x0022: { /* n:\"Date1904\", */ f:parsebool },\n\t0x0023: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t0x0026: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t0x0027: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t0x0028: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t0x0029: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t0x002a: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t0x002b: { /* n:\"PrintGrid\", */ f:parsebool },\n\t0x002f: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t0x0031: { /* n:\"Font\", */ f:parse_Font },\n\t0x0033: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t0x003c: { /* n:\"Continue\", */ },\n\t0x003d: { /* n:\"Window1\", */ f:parse_Window1 },\n\t0x0040: { /* n:\"Backup\", */ f:parsebool },\n\t0x0041: { /* n:\"Pane\", */ f:parse_Pane },\n\t0x0042: { /* n:\"CodePage\", */ f:parseuint16 },\n\t0x004d: { /* n:\"Pls\", */ },\n\t0x0050: { /* n:\"DCon\", */ },\n\t0x0051: { /* n:\"DConRef\", */ },\n\t0x0052: { /* n:\"DConName\", */ },\n\t0x0055: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t0x0059: { /* n:\"XCT\", */ },\n\t0x005a: { /* n:\"CRN\", */ },\n\t0x005b: { /* n:\"FileSharing\", */ },\n\t0x005c: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t0x005d: { /* n:\"Obj\", */ f:parse_Obj },\n\t0x005e: { /* n:\"Uncalced\", */ },\n\t0x005f: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t0x0060: { /* n:\"Template\", */ },\n\t0x0061: { /* n:\"Intl\", */ },\n\t0x0063: { /* n:\"ObjProtect\", */ f:parsebool },\n\t0x007d: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t0x0080: { /* n:\"Guts\", */ f:parse_Guts },\n\t0x0081: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t0x0082: { /* n:\"GridSet\", */ f:parseuint16 },\n\t0x0083: { /* n:\"HCenter\", */ f:parsebool },\n\t0x0084: { /* n:\"VCenter\", */ f:parsebool },\n\t0x0085: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t0x0086: { /* n:\"WriteProtect\", */ },\n\t0x008c: { /* n:\"Country\", */ f:parse_Country },\n\t0x008d: { /* n:\"HideObj\", */ f:parseuint16 },\n\t0x0090: { /* n:\"Sort\", */ },\n\t0x0092: { /* n:\"Palette\", */ f:parse_Palette },\n\t0x0097: { /* n:\"Sync\", */ },\n\t0x0098: { /* n:\"LPr\", */ },\n\t0x0099: { /* n:\"DxGCol\", */ },\n\t0x009a: { /* n:\"FnGroupName\", */ },\n\t0x009b: { /* n:\"FilterMode\", */ },\n\t0x009c: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t0x009d: { /* n:\"AutoFilterInfo\", */ },\n\t0x009e: { /* n:\"AutoFilter\", */ },\n\t0x00a0: { /* n:\"Scl\", */ f:parse_Scl },\n\t0x00a1: { /* n:\"Setup\", */ f:parse_Setup },\n\t0x00ae: { /* n:\"ScenMan\", */ },\n\t0x00af: { /* n:\"SCENARIO\", */ },\n\t0x00b0: { /* n:\"SxView\", */ },\n\t0x00b1: { /* n:\"Sxvd\", */ },\n\t0x00b2: { /* n:\"SXVI\", */ },\n\t0x00b4: { /* n:\"SxIvd\", */ },\n\t0x00b5: { /* n:\"SXLI\", */ },\n\t0x00b6: { /* n:\"SXPI\", */ },\n\t0x00b8: { /* n:\"DocRoute\", */ },\n\t0x00b9: { /* n:\"RecipName\", */ },\n\t0x00bd: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t0x00be: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t0x00c1: { /* n:\"Mms\", */ f:parsenoop2 },\n\t0x00c5: { /* n:\"SXDI\", */ },\n\t0x00c6: { /* n:\"SXDB\", */ },\n\t0x00c7: { /* n:\"SXFDB\", */ },\n\t0x00c8: { /* n:\"SXDBB\", */ },\n\t0x00c9: { /* n:\"SXNum\", */ },\n\t0x00ca: { /* n:\"SxBool\", */ f:parsebool },\n\t0x00cb: { /* n:\"SxErr\", */ },\n\t0x00cc: { /* n:\"SXInt\", */ },\n\t0x00cd: { /* n:\"SXString\", */ },\n\t0x00ce: { /* n:\"SXDtr\", */ },\n\t0x00cf: { /* n:\"SxNil\", */ },\n\t0x00d0: { /* n:\"SXTbl\", */ },\n\t0x00d1: { /* n:\"SXTBRGIITM\", */ },\n\t0x00d2: { /* n:\"SxTbpg\", */ },\n\t0x00d3: { /* n:\"ObProj\", */ },\n\t0x00d5: { /* n:\"SXStreamID\", */ },\n\t0x00d7: { /* n:\"DBCell\", */ },\n\t0x00d8: { /* n:\"SXRng\", */ },\n\t0x00d9: { /* n:\"SxIsxoper\", */ },\n\t0x00da: { /* n:\"BookBool\", */ f:parseuint16 },\n\t0x00dc: { /* n:\"DbOrParamQry\", */ },\n\t0x00dd: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t0x00de: { /* n:\"OleObjectSize\", */ },\n\t0x00e0: { /* n:\"XF\", */ f:parse_XF },\n\t0x00e1: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t0x00e2: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t0x00e3: { /* n:\"SXVS\", */ },\n\t0x00e5: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t0x00e9: { /* n:\"BkHim\", */ },\n\t0x00eb: { /* n:\"MsoDrawingGroup\", */ },\n\t0x00ec: { /* n:\"MsoDrawing\", */ },\n\t0x00ed: { /* n:\"MsoDrawingSelection\", */ },\n\t0x00ef: { /* n:\"PhoneticInfo\", */ },\n\t0x00f0: { /* n:\"SxRule\", */ },\n\t0x00f1: { /* n:\"SXEx\", */ },\n\t0x00f2: { /* n:\"SxFilt\", */ },\n\t0x00f4: { /* n:\"SxDXF\", */ },\n\t0x00f5: { /* n:\"SxItm\", */ },\n\t0x00f6: { /* n:\"SxName\", */ },\n\t0x00f7: { /* n:\"SxSelect\", */ },\n\t0x00f8: { /* n:\"SXPair\", */ },\n\t0x00f9: { /* n:\"SxFmla\", */ },\n\t0x00fb: { /* n:\"SxFormat\", */ },\n\t0x00fc: { /* n:\"SST\", */ f:parse_SST },\n\t0x00fd: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t0x00ff: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t0x0100: { /* n:\"SXVDEx\", */ },\n\t0x0103: { /* n:\"SXFormula\", */ },\n\t0x0122: { /* n:\"SXDBEx\", */ },\n\t0x0137: { /* n:\"RRDInsDel\", */ },\n\t0x0138: { /* n:\"RRDHead\", */ },\n\t0x013b: { /* n:\"RRDChgCell\", */ },\n\t0x013d: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t0x013e: { /* n:\"RRDRenSheet\", */ },\n\t0x013f: { /* n:\"RRSort\", */ },\n\t0x0140: { /* n:\"RRDMove\", */ },\n\t0x014a: { /* n:\"RRFormat\", */ },\n\t0x014b: { /* n:\"RRAutoFmt\", */ },\n\t0x014d: { /* n:\"RRInsertSh\", */ },\n\t0x014e: { /* n:\"RRDMoveBegin\", */ },\n\t0x014f: { /* n:\"RRDMoveEnd\", */ },\n\t0x0150: { /* n:\"RRDInsDelBegin\", */ },\n\t0x0151: { /* n:\"RRDInsDelEnd\", */ },\n\t0x0152: { /* n:\"RRDConflict\", */ },\n\t0x0153: { /* n:\"RRDDefName\", */ },\n\t0x0154: { /* n:\"RRDRstEtxp\", */ },\n\t0x015f: { /* n:\"LRng\", */ },\n\t0x0160: { /* n:\"UsesELFs\", */ f:parsebool },\n\t0x0161: { /* n:\"DSF\", */ f:parsenoop2 },\n\t0x0191: { /* n:\"CUsr\", */ },\n\t0x0192: { /* n:\"CbUsr\", */ },\n\t0x0193: { /* n:\"UsrInfo\", */ },\n\t0x0194: { /* n:\"UsrExcl\", */ },\n\t0x0195: { /* n:\"FileLock\", */ },\n\t0x0196: { /* n:\"RRDInfo\", */ },\n\t0x0197: { /* n:\"BCUsrs\", */ },\n\t0x0198: { /* n:\"UsrChk\", */ },\n\t0x01a9: { /* n:\"UserBView\", */ },\n\t0x01aa: { /* n:\"UserSViewBegin\", */ },\n\t0x01ab: { /* n:\"UserSViewEnd\", */ },\n\t0x01ac: { /* n:\"RRDUserView\", */ },\n\t0x01ad: { /* n:\"Qsi\", */ },\n\t0x01ae: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t0x01af: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t0x01b0: { /* n:\"CondFmt\", */ },\n\t0x01b1: { /* n:\"CF\", */ },\n\t0x01b2: { /* n:\"DVal\", */ },\n\t0x01b5: { /* n:\"DConBin\", */ },\n\t0x01b6: { /* n:\"TxO\", */ f:parse_TxO },\n\t0x01b7: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t0x01b8: { /* n:\"HLink\", */ f:parse_HLink },\n\t0x01b9: { /* n:\"Lel\", */ },\n\t0x01ba: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t0x01bb: { /* n:\"SXFDBType\", */ },\n\t0x01bc: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t0x01bd: { /* n:\"ObNoMacros\", */ },\n\t0x01be: { /* n:\"Dv\", */ },\n\t0x01c0: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t0x01c1: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t0x01c2: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t0x0200: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t0x0201: { /* n:\"Blank\", */ f:parse_Blank },\n\t0x0203: { /* n:\"Number\", */ f:parse_Number },\n\t0x0204: { /* n:\"Label\", */ f:parse_Label },\n\t0x0205: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t0x0207: { /* n:\"String\", */ f:parse_String },\n\t0x0208: { /* n:\"Row\", */ f:parse_Row },\n\t0x020b: { /* n:\"Index\", */ },\n\t0x0221: { /* n:\"Array\", */ f:parse_Array },\n\t0x0225: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t0x0236: { /* n:\"Table\", */ },\n\t0x023e: { /* n:\"Window2\", */ f:parse_Window2 },\n\t0x027e: { /* n:\"RK\", */ f:parse_RK },\n\t0x0293: { /* n:\"Style\", */ },\n\t0x0418: { /* n:\"BigName\", */ },\n\t0x041e: { /* n:\"Format\", */ f:parse_Format },\n\t0x043c: { /* n:\"ContinueBigName\", */ },\n\t0x04bc: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t0x0800: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t0x0801: { /* n:\"WebPub\", */ },\n\t0x0802: { /* n:\"QsiSXTag\", */ },\n\t0x0803: { /* n:\"DBQueryExt\", */ },\n\t0x0804: { /* n:\"ExtString\", */ },\n\t0x0805: { /* n:\"TxtQry\", */ },\n\t0x0806: { /* n:\"Qsir\", */ },\n\t0x0807: { /* n:\"Qsif\", */ },\n\t0x0808: { /* n:\"RRDTQSIF\", */ },\n\t0x0809: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x080a: { /* n:\"OleDbConn\", */ },\n\t0x080b: { /* n:\"WOpt\", */ },\n\t0x080c: { /* n:\"SXViewEx\", */ },\n\t0x080d: { /* n:\"SXTH\", */ },\n\t0x080e: { /* n:\"SXPIEx\", */ },\n\t0x080f: { /* n:\"SXVDTEx\", */ },\n\t0x0810: { /* n:\"SXViewEx9\", */ },\n\t0x0812: { /* n:\"ContinueFrt\", */ },\n\t0x0813: { /* n:\"RealTimeData\", */ },\n\t0x0850: { /* n:\"ChartFrtInfo\", */ },\n\t0x0851: { /* n:\"FrtWrapper\", */ },\n\t0x0852: { /* n:\"StartBlock\", */ },\n\t0x0853: { /* n:\"EndBlock\", */ },\n\t0x0854: { /* n:\"StartObject\", */ },\n\t0x0855: { /* n:\"EndObject\", */ },\n\t0x0856: { /* n:\"CatLab\", */ },\n\t0x0857: { /* n:\"YMult\", */ },\n\t0x0858: { /* n:\"SXViewLink\", */ },\n\t0x0859: { /* n:\"PivotChartBits\", */ },\n\t0x085a: { /* n:\"FrtFontList\", */ },\n\t0x0862: { /* n:\"SheetExt\", */ },\n\t0x0863: { /* n:\"BookExt\", */ r:12},\n\t0x0864: { /* n:\"SXAddl\", */ },\n\t0x0865: { /* n:\"CrErr\", */ },\n\t0x0866: { /* n:\"HFPicture\", */ },\n\t0x0867: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t0x0868: { /* n:\"Feat\", */ },\n\t0x086a: { /* n:\"DataLabExt\", */ },\n\t0x086b: { /* n:\"DataLabExtContents\", */ },\n\t0x086c: { /* n:\"CellWatch\", */ },\n\t0x0871: { /* n:\"FeatHdr11\", */ },\n\t0x0872: { /* n:\"Feature11\", */ },\n\t0x0874: { /* n:\"DropDownObjIds\", */ },\n\t0x0875: { /* n:\"ContinueFrt11\", */ },\n\t0x0876: { /* n:\"DConn\", */ },\n\t0x0877: { /* n:\"List12\", */ },\n\t0x0878: { /* n:\"Feature12\", */ },\n\t0x0879: { /* n:\"CondFmt12\", */ },\n\t0x087a: { /* n:\"CF12\", */ },\n\t0x087b: { /* n:\"CFEx\", */ },\n\t0x087c: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t0x087d: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t0x087e: { /* n:\"AutoFilter12\", */ },\n\t0x087f: { /* n:\"ContinueFrt12\", */ },\n\t0x0884: { /* n:\"MDTInfo\", */ },\n\t0x0885: { /* n:\"MDXStr\", */ },\n\t0x0886: { /* n:\"MDXTuple\", */ },\n\t0x0887: { /* n:\"MDXSet\", */ },\n\t0x0888: { /* n:\"MDXProp\", */ },\n\t0x0889: { /* n:\"MDXKPI\", */ },\n\t0x088a: { /* n:\"MDB\", */ },\n\t0x088b: { /* n:\"PLV\", */ },\n\t0x088c: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t0x088d: { /* n:\"DXF\", */ },\n\t0x088e: { /* n:\"TableStyles\", */ r:12 },\n\t0x088f: { /* n:\"TableStyle\", */ },\n\t0x0890: { /* n:\"TableStyleElement\", */ },\n\t0x0892: { /* n:\"StyleExt\", */ },\n\t0x0893: { /* n:\"NamePublish\", */ },\n\t0x0894: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t0x0895: { /* n:\"SortData\", */ },\n\t0x0896: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t0x0897: { /* n:\"GUIDTypeLib\", */ },\n\t0x0898: { /* n:\"FnGrp12\", */ },\n\t0x0899: { /* n:\"NameFnGrp12\", */ },\n\t0x089a: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t0x089b: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t0x089c: { /* n:\"HeaderFooter\", */ },\n\t0x089d: { /* n:\"CrtLayout12\", */ },\n\t0x089e: { /* n:\"CrtMlFrt\", */ },\n\t0x089f: { /* n:\"CrtMlFrtContinue\", */ },\n\t0x08a3: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t0x08a4: { /* n:\"ShapePropsStream\", */ },\n\t0x08a5: { /* n:\"TextPropsStream\", */ },\n\t0x08a6: { /* n:\"RichTextStream\", */ },\n\t0x08a7: { /* n:\"CrtLayout12A\", */ },\n\t0x1001: { /* n:\"Units\", */ },\n\t0x1002: { /* n:\"Chart\", */ },\n\t0x1003: { /* n:\"Series\", */ },\n\t0x1006: { /* n:\"DataFormat\", */ },\n\t0x1007: { /* n:\"LineFormat\", */ },\n\t0x1009: { /* n:\"MarkerFormat\", */ },\n\t0x100a: { /* n:\"AreaFormat\", */ },\n\t0x100b: { /* n:\"PieFormat\", */ },\n\t0x100c: { /* n:\"AttachedLabel\", */ },\n\t0x100d: { /* n:\"SeriesText\", */ },\n\t0x1014: { /* n:\"ChartFormat\", */ },\n\t0x1015: { /* n:\"Legend\", */ },\n\t0x1016: { /* n:\"SeriesList\", */ },\n\t0x1017: { /* n:\"Bar\", */ },\n\t0x1018: { /* n:\"Line\", */ },\n\t0x1019: { /* n:\"Pie\", */ },\n\t0x101a: { /* n:\"Area\", */ },\n\t0x101b: { /* n:\"Scatter\", */ },\n\t0x101c: { /* n:\"CrtLine\", */ },\n\t0x101d: { /* n:\"Axis\", */ },\n\t0x101e: { /* n:\"Tick\", */ },\n\t0x101f: { /* n:\"ValueRange\", */ },\n\t0x1020: { /* n:\"CatSerRange\", */ },\n\t0x1021: { /* n:\"AxisLine\", */ },\n\t0x1022: { /* n:\"CrtLink\", */ },\n\t0x1024: { /* n:\"DefaultText\", */ },\n\t0x1025: { /* n:\"Text\", */ },\n\t0x1026: { /* n:\"FontX\", */ f:parseuint16 },\n\t0x1027: { /* n:\"ObjectLink\", */ },\n\t0x1032: { /* n:\"Frame\", */ },\n\t0x1033: { /* n:\"Begin\", */ },\n\t0x1034: { /* n:\"End\", */ },\n\t0x1035: { /* n:\"PlotArea\", */ },\n\t0x103a: { /* n:\"Chart3d\", */ },\n\t0x103c: { /* n:\"PicF\", */ },\n\t0x103d: { /* n:\"DropBar\", */ },\n\t0x103e: { /* n:\"Radar\", */ },\n\t0x103f: { /* n:\"Surf\", */ },\n\t0x1040: { /* n:\"RadarArea\", */ },\n\t0x1041: { /* n:\"AxisParent\", */ },\n\t0x1043: { /* n:\"LegendException\", */ },\n\t0x1044: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t0x1045: { /* n:\"SerToCrt\", */ },\n\t0x1046: { /* n:\"AxesUsed\", */ },\n\t0x1048: { /* n:\"SBaseRef\", */ },\n\t0x104a: { /* n:\"SerParent\", */ },\n\t0x104b: { /* n:\"SerAuxTrend\", */ },\n\t0x104e: { /* n:\"IFmtRecord\", */ },\n\t0x104f: { /* n:\"Pos\", */ },\n\t0x1050: { /* n:\"AlRuns\", */ },\n\t0x1051: { /* n:\"BRAI\", */ },\n\t0x105b: { /* n:\"SerAuxErrBar\", */ },\n\t0x105c: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t0x105d: { /* n:\"SerFmt\", */ },\n\t0x105f: { /* n:\"Chart3DBarShape\", */ },\n\t0x1060: { /* n:\"Fbi\", */ },\n\t0x1061: { /* n:\"BopPop\", */ },\n\t0x1062: { /* n:\"AxcExt\", */ },\n\t0x1063: { /* n:\"Dat\", */ },\n\t0x1064: { /* n:\"PlotGrowth\", */ },\n\t0x1065: { /* n:\"SIIndex\", */ },\n\t0x1066: { /* n:\"GelFrame\", */ },\n\t0x1067: { /* n:\"BopPopCustom\", */ },\n\t0x1068: { /* n:\"Fbi2\", */ },\n\n\t0x0000: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t0x0001: { /* n:\"BIFF2BLANK\", */ },\n\t0x0002: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t0x0003: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t0x0004: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t0x0005: { /* n:\"BIFF2BOOLERR\", */ f:parse_BIFF2BOOLERR },\n\t0x0007: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t0x0008: { /* n:\"BIFF2ROW\", */ },\n\t0x0009: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x000b: { /* n:\"Index\", */ },\n\t0x0016: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t0x001e: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t0x001f: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t0x0020: { /* n:\"BIFF2COLINFO\", */ },\n\t0x0021: { /* n:\"Array\", */ f:parse_Array },\n\t0x0024: { /* n:\"COLWIDTH\", */ },\n\t0x0025: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x002c ??\n\t// 0x002d ??\n\t// 0x002e ??\n\t// 0x0030 FONTCOUNT: number of fonts\n\t0x0032: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x0035: INFOOPTS\n\t// 0x0036: TABLE (BIFF2 only)\n\t// 0x0037: TABLE2 (BIFF2 only)\n\t// 0x0038: WNDESK\n\t// 0x0039 ??\n\t// 0x003a: BEGINPREF\n\t// 0x003b: ENDPREF\n\t0x003e: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x003f ??\n\t// 0x0046: SHOWSCROLL\n\t// 0x0047: SHOWFORMULA\n\t// 0x0048: STATUSBAR\n\t// 0x0049: SHORTMENUS\n\t// 0x004A:\n\t// 0x004B:\n\t// 0x004C:\n\t// 0x004E:\n\t// 0x004F:\n\t// 0x0058: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t0x0034: { /* n:\"DDEObjName\", */ },\n\t0x0043: { /* n:\"BIFF2XF\", */ f:parse_BIFF2XF },\n\t0x0044: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t0x0045: { /* n:\"BIFF2FONTCLR\", */ },\n\t0x0056: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t0x007e: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t0x007f: { /* n:\"ImData\", */ f:parse_ImData },\n\t0x0087: { /* n:\"Addin\", */ },\n\t0x0088: { /* n:\"Edg\", */ },\n\t0x0089: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t0x008F: { /* n:\"BIFF4SheetInfo\", */ f:parse_BIFF4SheetInfo },\n\t0x0091: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t0x0094: { /* n:\"LHRecord\", */ },\n\t0x0095: { /* n:\"LHNGraph\", */ },\n\t0x0096: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t0x00a9: { /* n:\"CoordList\", */ },\n\t0x00ab: { /* n:\"GCW\", */ },\n\t0x00bc: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t0x00bf: { /* n:\"ToolbarHdr\", */ },\n\t0x00c0: { /* n:\"ToolbarEnd\", */ },\n\t0x00c2: { /* n:\"AddMenu\", */ },\n\t0x00c3: { /* n:\"DelMenu\", */ },\n\t0x00d6: { /* n:\"RString\", */ f:parse_RString },\n\t0x00df: { /* n:\"UDDesc\", */ },\n\t0x00ea: { /* n:\"TabIdConf\", */ },\n\t0x0162: { /* n:\"XL5Modify\", */ },\n\t0x01a5: { /* n:\"FileSharing2\", */ },\n\t0x0206: { /* n:\"Formula\", */ f:parse_Formula },\n\t0x0209: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x0218: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t0x0223: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t0x0231: { /* n:\"Font\", */ },\n\t0x0243: { /* n:\"BIFF3XF\", */ f:parse_BIFF3XF },\n\t0x0406: { /* n:\"Formula\", */ f:parse_Formula },\n\t0x0409: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x0443: { /* n:\"BIFF4XF\", */ f:parse_BIFF4XF },\n\t0x086d: { /* n:\"FeatInfo\", */ },\n\t0x0873: { /* n:\"FeatInfo11\", */ },\n\t0x0881: { /* n:\"SXAddl12\", */ },\n\t0x08c0: { /* n:\"AutoWebPub\", */ },\n\t0x08c1: { /* n:\"ListObj\", */ },\n\t0x08c2: { /* n:\"ListField\", */ },\n\t0x08c3: { /* n:\"ListDV\", */ },\n\t0x08c4: { /* n:\"ListCondFmt\", */ },\n\t0x08c5: { /* n:\"ListCF\", */ },\n\t0x08c6: { /* n:\"FMQry\", */ },\n\t0x08c7: { /* n:\"FMSQry\", */ },\n\t0x08c8: { /* n:\"PLV\", */ },\n\t0x08c9: { /* n:\"LnExt\", */ },\n\t0x08ca: { /* n:\"MkrExt\", */ },\n\t0x08cb: { /* n:\"CrtCoopt\", */ },\n\t0x08d6: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/* --- multiplan 4 records --- */\n\t0x0065: { /* n:\"\", */ }, // one per window\n\t0x0066: { /* n:\"\", */ }, // calc settings\n\t0x0069: { /* n:\"\", */ }, // print header\n\t0x006a: { /* n:\"\", */ }, // print footer\n\t0x006b: { /* n:\"\", */ }, // print settings\n\t0x006d: { /* n:\"\", */ }, // one per window\n\t0x0070: { /* n:\"\", */ }, // includes default col width\n\t0x0072: { /* n:\"\", */ }, // includes selected cell\n\n\t0x7262: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_comments_biff2(ba/*:BufArray*/, comments/*:Array<[Comment[], number, number]>*/) {\n\tcomments.forEach(function(data) {\n\t\tvar text = data[0].map(function(cc) { return cc.t; }).join(\"\");\n\t\t// TODO: should '\\n' be translated to '\\r' to correct for Excel 5.0 bug when exporting to BIFF2/3 ?\n\t\tif(text.length <= 2048) return write_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text, data[1], data[2]));\n\t\twrite_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text.slice(0, 2048), data[1], data[2], text.length));\n\t\tfor(var i = 2048; i < text.length; i += 2048)\n\t\t\twrite_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text.slice(i, Math.min(i+2048, text.length)), -1, -1, Math.min(2048, text.length - i)));\n\t});\n}\n\n/* TODO: BIFF3/4 use different records -- see comments*/\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/) {\n\tvar ifmt = 0;\n\tif(cell.z != null) {\n\t\tifmt = opts._BIFF2FmtTable.indexOf(cell.z);\n\t\tif(ifmt == -1) { opts._BIFF2FmtTable.push(cell.z); ifmt = opts._BIFF2FmtTable.length - 1; }\n\t}\n\tvar ixfe = 0;\n\tif(cell.z != null) {\n\t\tfor(; ixfe < opts.cellXfs.length; ++ixfe) if(opts.cellXfs[ixfe].numFmtId == ifmt) break;\n\t\tif(ixfe == opts.cellXfs.length) opts.cellXfs.push({numFmtId: ifmt});\n\t}\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;\n\t\t\tif(opts.biff == 2 && (v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\t// 0x027E (RK) in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v, ixfe, ifmt));\n\t\t\telse if(isNaN(v))\n\t\t\t\t// 0x0205 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, 0x24, \"e\")); // #NUM!\n\t\t\telse if(!isFinite(v))\n\t\t\t\t// 0x0205 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, 0x07, \"e\")); // #DIV/0!\n\t\t\telse\n\t\t\t\t// 0x0203 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v, ixfe, ifmt));\n\t\t\treturn;\n\t\tcase 'b': case 'e':\n\t\t\t// 0x0205 in BIFF3/4\n\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\t// 0x0204 in BIFF3/4\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v == null ? \"\" : String(cell.v).slice(0,255)));\n\t\t\treturn;\n\t}\n\t// 0x0201 in BIFF3/4\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar dense = ws[\"!data\"] != null;\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), rr = \"\", cols/*:Array<string>*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t}\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tvar row = [], comments = [];\n\t/* TODO: 0x0000 / 0x0200 dimensions? */\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar cell = dense ? row[C] : ws[cols[C] + rr];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts, date1904);\n\t\t\tif(cell.c) comments.push([cell.c, R, C]);\n\t\t}\n\t}\n\n\t/* ... 0x12 0x19 0x13 (Password) */\n\twrite_comments_biff2(ba, comments);\n\t/* 0x3d (Window1) ... */\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, (o.biff == 4 ? 0x0409 : (o.biff == 3 ? 0x0209 : 0x0009)), write_BOF(wb, 0x10, o));\n\tif(((wb.Workbook||{}).WBProps||{}).date1904) write_biff_rec(ba, 0x0022, writebool(true));\n\to.cellXfs = [{numFmtId: 0}];\n\to._BIFF2FmtTable/*:Array<string>*/ = [\"General\"]; o._Fonts = [];\n\tvar body = buf_array();\n\twrite_ws_biff2(body, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\n\to._BIFF2FmtTable.forEach(function(f) {\n\t\tif(o.biff <= 3) write_biff_rec(ba, 0x001E, write_BIFF2Format(f));\n\t\telse write_biff_rec(ba, 0x041E, write_BIFF4Format(f));\n\t});\n\to.cellXfs.forEach(function(xf) {\n\t\tswitch(o.biff) {\n\t\t\tcase 2: write_biff_rec(ba, 0x0043, write_BIFF2XF(xf)); break;\n\t\t\tcase 3: write_biff_rec(ba, 0x0243, write_BIFF3XF(xf)); break;\n\t\t\tcase 4: write_biff_rec(ba, 0x0443, write_BIFF4XF(xf)); break;\n\t\t}\n\t});\n\tdelete o._BIFF2FmtTable; delete o.cellXfs; delete o._Fonts;\n\n\tba.push(body.end());\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nvar b8oid = 1, b8ocnts/*:Array<[number, number, number]>*/ = [];\nfunction write_MsoDrawingGroup() {\n\tvar buf = new_buf(82 + 8 * b8ocnts.length);\n\t/* [MS-ODRAW] 2.2.12 OfficeArtDggContainer */\n\tbuf.write_shift(2, 0x0F);\n\tbuf.write_shift(2, 0xF000);\n\tbuf.write_shift(4, 74 + 8 * b8ocnts.length);\n\t/* 2.2.48 OfficeArtFDGGBlock */\n\t{\n\t\tbuf.write_shift(2, 0);\n\t\tbuf.write_shift(2, 0xF006);\n\t\tbuf.write_shift(4, 16 + 8 * b8ocnts.length);\n\t\t/* 2.2.47 OfficeArtFDGG */\n\t\t{\n\t\t\tbuf.write_shift(4, b8oid);\n\t\t\tbuf.write_shift(4, b8ocnts.length+1);\n\t\t\tvar acc = 0; for(var i = 0; i < b8ocnts.length; ++i) acc += (b8ocnts[i] && b8ocnts[i][1] || 0); buf.write_shift(4, acc);\n\t\t\tbuf.write_shift(4, b8ocnts.length);\n\t\t}\n\t\t/* 2.2.46 OfficeArtIDCL + */\n\t\tb8ocnts.forEach(function(b8) {\n\t\t\tbuf.write_shift(4, b8[0]);\n\t\t\tbuf.write_shift(4, b8[2]);\n\t\t});\n\t}\n\t/* 2.2.9 OfficeArtFOPT */\n\t{\n\t\tbuf.write_shift(2, 0x33); // 0x03 | (3 << 4)\n\t\tbuf.write_shift(2, 0xF00B);\n\t\tbuf.write_shift(4, 0x12); // 3 * 6\n\t\t/* 2.3.21.15 Text Boolean Properties */\n\t\tbuf.write_shift(2, 0xBF); buf.write_shift(4, 0x00080008);\n\t\t/* 2.3.7.2 fillColor */\n\t\tbuf.write_shift(2, 0x0181); buf.write_shift(4, 0x08000041);\n\t\t/* 2.3.8.1 lineColor */\n\t\tbuf.write_shift(2, 0x01C0); buf.write_shift(4, 0x08000040);\n\t}\n\t/* 2.2.45 OfficeArtSplitMenuColorContainer */\n\t{\n\t\tbuf.write_shift(2, 0x40);\n\t\tbuf.write_shift(2, 0xF11E);\n\t\tbuf.write_shift(4, 16);\n\t\tbuf.write_shift(4, 0x0800000D);\n\t\tbuf.write_shift(4, 0x0800000C);\n\t\tbuf.write_shift(4, 0x08000017);\n\t\tbuf.write_shift(4, 0x100000F7);\n\t}\n\treturn buf;\n}\nfunction write_comments_biff8(ba/*:BufArray*/, comments/*:Array<[Comment[], number, number]>*/) {\n\tvar notes/*:Array<RawData>*/ = [], sz = 0, pl = buf_array(), baseid = b8oid;\n\tvar _oasc;\n\tcomments.forEach(function(c, ci) {\n\t\tvar author = \"\";\n\t\tvar text = c[0].map(function(t) { if(t.a && !author) author = t.a; return t.t; }).join(\"\");\n\t\t++b8oid;\n\n\t\t/* 2.2.14 OfficeArtSpContainer */\n\t\t{\n\t\t\tvar oasc = new_buf(0x96);\n\t\t\toasc.write_shift(2, 0x0F);\n\t\t\toasc.write_shift(2, 0xF004);\n\t\t\toasc.write_shift(4, 0x96);\n\t\t\t/* 2.2.40 OfficeArtFSP */\n\t\t\t{\n\t\t\t\toasc.write_shift(2, 0xca2); // 0x02 | (0xca << 4)\n\t\t\t\toasc.write_shift(2, 0xF00A);\n\t\t\t\toasc.write_shift(4, 8);\n\t\t\t\toasc.write_shift(4, b8oid);\n\t\t\t\toasc.write_shift(4, 0xA00);\n\t\t\t}\n\t\t\t/* 2.2.9 OfficeArtFOPT */\n\t\t\t{\n\t\t\t\toasc.write_shift(2, 0xE3); // 0x03 | (14 << 4)\n\t\t\t\toasc.write_shift(2, 0xF00B);\n\t\t\t\toasc.write_shift(4, 0x54); // 14 * 6\n\t\t\t\t/* 2.3.21.1 ITxid */\n\t\t\t\toasc.write_shift(2, 0x80); oasc.write_shift(4, 0);\n\t\t\t\t/* 2.3.21.12 txdir */\n\t\t\t\toasc.write_shift(2, 0x8B); oasc.write_shift(4, 0x02);\n\t\t\t\t/* 2.3.21.15 Text Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0xBF); oasc.write_shift(4, 0x00080008);\n\t\t\t\t/* 2.3.6.30 cxk */\n\t\t\t\toasc.write_shift(2, 0x0158); oasc.l += 4;\n\t\t\t\t/* 2.3.7.2 fillColor */\n\t\t\t\toasc.write_shift(2, 0x0181); oasc.write_shift(4, 0x08000050);\n\t\t\t\t/* 2.3.7.4 fillBackColor */\n\t\t\t\toasc.write_shift(2, 0x0183); oasc.write_shift(4, 0x08000050);\n\t\t\t\t/* 2.3.7.6 fillCrMod */\n\t\t\t\toasc.write_shift(2, 0x0185); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.7.43 Fill Style Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x01BF); oasc.write_shift(4, 0x00100010);\n\t\t\t\t/* 2.3.8.1 lineColor */\n\t\t\t\toasc.write_shift(2, 0x01C0); oasc.write_shift(4, 0x08000051);\n\t\t\t\t/* 2.3.8.4 lineCrMod */\n\t\t\t\toasc.write_shift(2, 0x01C3); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.13.2 shadowColor */\n\t\t\t\toasc.write_shift(2, 0x0201); oasc.write_shift(4, 0x08000051);\n\t\t\t\t/* 2.3.13.4 shadowCrMod */\n\t\t\t\toasc.write_shift(2, 0x0203); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.13.23 Shadow Style Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x023F); oasc.write_shift(4, 0x00030001);\n\t\t\t\t/* 2.3.4.44 Group Shape Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x03BF); oasc.write_shift(4, 0x00020000 | (c[0].hidden ? 2 : 0));\n\t\t\t}\n\t\t\t/* [MS-XLS] 2.5.193 OfficeArtClientAnchorSheet */\n\t\t\t{\n\t\t\t\toasc.l += 2;\n\t\t\t\toasc.write_shift(2, 0xF010);\n\t\t\t\toasc.write_shift(4, 0x12);\n\t\t\t\toasc.write_shift(2, 0x3); // do not move or size with cells\n\t\t\t\toasc.write_shift(2, c[2] + 2); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[1] + 1); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[2] + 4); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[1] + 5); oasc.l += 2;\n\t\t\t}\n\t\t\t/* [MS-XLS] 2.5.194 OfficeArtClientData */\n\t\t\t{\n\t\t\t\toasc.l += 2;\n\t\t\t\toasc.write_shift(2, 0xF011);\n\t\t\t\toasc.l += 4;\n\t\t\t}\n\t\t\toasc.l = 0x96;\n\t\t\tif(ci == 0) /* write_biff_rec(pl, 0x003C, oasc); */ _oasc = oasc;\n\t\t\telse write_biff_rec(pl, 0x00EC, oasc);\n\t\t}\n\t\tsz += 0x96;\n\n\t\t/* [MS-XLS] 2.4.181 Obj */\n\t\t{\n\t\t\tvar obj = new_buf(52); // 22 + 26 + 4\n\t\t\t/* [MS-XLS] 2.5.143 FtCmo */\n\t\t\tobj.write_shift(2, 0x15);\n\t\t\tobj.write_shift(2, 0x12);\n\t\t\tobj.write_shift(2, 0x19);\n\t\t\tobj.write_shift(2, b8oid);\n\t\t\tobj.write_shift(2, 0);\n\t\t\tobj.l = 22;\n\t\t\t/* [MS-XLS] 2.5.149 FtNts */\n\t\t\tobj.write_shift(2, 0x0D);\n\t\t\tobj.write_shift(2, 0x16);\n\t\t\tobj.write_shift(4, 0x62726272);\n\t\t\tobj.write_shift(4, 0x95374305);\n\t\t\tobj.write_shift(4, 0x80301328);\n\t\t\tobj.write_shift(4, 0x69696904 + b8oid*256);\n\t\t\tobj.write_shift(2,0);\n\t\t\tobj.write_shift(4,0);\n\t\t\t// reserved\n\t\t\tobj.l += 4;\n\t\t\twrite_biff_rec(pl, 0x005D, obj);\n\t\t}\n\n\t\t/* [MS-XLS] 2.5.195 OfficeArtClientTextbox */\n\t\t{\n\t\t\tvar oact = new_buf(8);\n\t\t\toact.l += 2;\n\t\t\toact.write_shift(2, 0xF00D);\n\t\t\toact.l += 4;\n\t\t\twrite_biff_rec(pl, 0x00EC, oact);\n\t\t}\n\t\tsz += 8;\n\n\t\t/* [MS-XLS] 2.4.329 TxO */\n\t\t{\n\t\t\tvar txo = new_buf(18);\n\t\t\ttxo.write_shift(2, 0x12);\n\t\t\ttxo.l += 8;\n\t\t\ttxo.write_shift(2, text.length);\n\t\t\ttxo.write_shift(2, 0x10);\n\t\t\ttxo.l += 4;\n\t\t\twrite_biff_rec(pl, 0x01b6, txo);\n\t\t\t/* text continue record TODO: switch to wide strings */\n\t\t\t{\n\t\t\t\tvar cont = new_buf(1 + text.length);\n\t\t\t\tcont.write_shift(1, 0);\n\t\t\t\tcont.write_shift(text.length, text, \"sbcs\");\n\t\t\t\twrite_biff_rec(pl, 0x003C, cont);\n\t\t\t}\n\t\t\t/* formatting continue records */\n\t\t\t{\n\t\t\t\tvar conf = new_buf(0x10);\n\t\t\t\tconf.l += 8;\n\t\t\t\tconf.write_shift(2, text.length);\n\t\t\t\tconf.l += 6;\n\t\t\t\twrite_biff_rec(pl, 0x003C, conf);\n\t\t\t}\n\t\t}\n\n\t\t/* 2.4.179 Note */\n\t\t{\n\t\t\tvar notesh = new_buf(12 + author.length);\n\t\t\tnotesh.write_shift(2, c[1]);\n\t\t\tnotesh.write_shift(2, c[2]);\n\t\t\tnotesh.write_shift(2, 0 | (c[0].hidden ? 0 : 2));\n\t\t\tnotesh.write_shift(2, b8oid);\n\t\t\tnotesh.write_shift(2, author.length);\n\t\t\tnotesh.write_shift(1, 0);\n\t\t\tnotesh.write_shift(author.length, author, \"sbcs\");\n\t\t\tnotesh.l ++;\n\t\t\tnotes.push(notesh);\n\t\t}\n\t});\n\t/* [MS-ODRAW] 2.2.13 OfficeArtDgContainer */\n\t{\n\t\tvar hdr = new_buf(80);\n\t\thdr.write_shift(2, 0x0F);\n\t\thdr.write_shift(2, 0xF002);\n\t\thdr.write_shift(4, sz + hdr.length - 8);\n\t\t/* [MS-ODRAW] 2.2.49 OfficeArtFDG */\n\t\t{\n\t\t\thdr.write_shift(2, 0x10);\n\t\t\thdr.write_shift(2, 0xF008);\n\t\t\thdr.write_shift(4, 0x08);\n\t\t\thdr.write_shift(4, comments.length + 1);\n\t\t\thdr.write_shift(4, b8oid);\n\t\t}\n\t\t/* [MS-ODRAW] 2.2.16 OfficeArtSpgrContainer */\n\t\t{\n\t\t\thdr.write_shift(2, 0x0f);\n\t\t\thdr.write_shift(2, 0xF003);\n\t\t\thdr.write_shift(4, sz + 0x30);\n\t\t\t/* [MS-ODRAW] 2.2.14 OfficeArtSpContainer */\n\t\t\t{\n\t\t\t\thdr.write_shift(2, 0x0f);\n\t\t\t\thdr.write_shift(2, 0xF004);\n\t\t\t\thdr.write_shift(4, 0x28);\n\t\t\t\t/* [MS-ODRAW] 2.2.38 OfficeArtFSPGR */\n\t\t\t\t{\n\t\t\t\t\thdr.write_shift(2, 0x01);\n\t\t\t\t\thdr.write_shift(2, 0xF009);\n\t\t\t\t\thdr.write_shift(4, 0x10);\n\t\t\t\t\thdr.l += 16;\n\t\t\t\t}\n\t\t\t\t/* [MS-ODRAW] 2.2.40 OfficeArtFSP */\n\t\t\t\t{\n\t\t\t\t\thdr.write_shift(2, 0x02);\n\t\t\t\t\thdr.write_shift(2, 0xF00A);\n\t\t\t\t\thdr.write_shift(4, 0x08);\n\t\t\t\t\thdr.write_shift(4, baseid);\n\t\t\t\t\thdr.write_shift(4, 0x05);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twrite_biff_rec(ba, 0x00EC, /* hdr */ _oasc ? bconcat([hdr, _oasc]) : hdr);\n\t}\n\tba.push(pl.end());\n\tnotes.forEach(function(n) { write_biff_rec(ba, 0x001C, n); });\n\tb8ocnts.push([baseid, comments.length + 1, b8oid]);\n\t++b8oid;\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, 0x0031 /* Font */, write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF/*:?SSFTable*/, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, 0x041E /* Format */, write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, 0x0867 /* FeatHdr */, o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, 0x0868 /* Feat */, o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, 0x00e0 /* XF */, write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, 0x00e0 /* XF */, write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba/*:BufArray*/, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, 0x01b8 /* HLink */, write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, 0x0800 /* HLinkTooltip */, write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_cols_biff8(ba, cols) {\n\tif(!cols) return;\n\tvar cnt = 0;\n\tcols.forEach(function(col, idx) {\n\t\tif(++cnt <= 256 && col) {\n\t\t\twrite_biff_rec(ba, 0x007d /* ColInfo */, write_ColInfo(col_obj_w(idx, col), idx));\n\t\t}\n\t});\n}\n\nfunction write_ws_biff8_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, 0x0006 /* Formula */, write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;\n\t\t\tif(isNaN(v)) write_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, 0x24, os, opts, \"e\")); // #NUM!\n\t\t\telse if(!isFinite(v)) write_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, 0x07, os, opts, \"e\")); // #DIV/0!\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\telse write_biff_rec(ba, 0x0203 /* Number */, write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v == null ? \"\" : String(cell.v), opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, 0x00fd /* LabelSst */, write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, 0x0204 /* Label */, write_Label(R, C, (cell.v == null ? \"\" : String(cell.v)).slice(0,255), os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheet/*:WBWSProp*/ = ((_WB.Sheets||[])[idx]||{}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tvar b8 = opts.biff == 8;\n\tvar ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x0200 /* Dimensions */, write_Dimensions(range, opts));\n\t/* ... */\n\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tif(b8) ws['!links'] = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tvar comments = [];\n\tvar row = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? row[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts, date1904);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t\tif(cell.c) comments.push([cell.c, R, C]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_comments_biff8(ba, comments); else write_comments_biff2(ba, comments);\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array<WBWSProp>*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C /* Country */, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture */\n\n\t/* BIFF8: MsoDrawingGroup [*Continue] */\n\tif(b8 && b8ocnts.length) write_biff_rec(C, 0x00EB /* MsoDrawingGroup */, write_MsoDrawingGroup());\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC /* SST */, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\tb8oid = 1; b8ocnts = [];\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar dense = (opts.dense != null) ? opts.dense : DENSE;\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(dense) ws[\"!data\"] = [];\n\tstr = str_remove_ng(str, \"<!--\", \"-->\");\n\tvar mtch/*:any*/ = str.match(/<table/i);\n\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^<>]*>)/i, \"<tr>\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array<Range>*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\tvar m = cell, cc = 0;\n\t\t\t/* TODO: parse styles etc */\n\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(opts.UTC === false) o.v = utc_to_local(o.v);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(o.cellText !== false) o.w = m;\n\t\t\tif(dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array<Range>*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array<string>*/ = [];\n\tvar sp = ({}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_col(C) + encode_row(R);\n\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tsp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\t// note: data-v is unaffected by the timezone interpretation\n\t\t\tif(cell.v != null) sp[\"data-v\"] = escapehtml(cell.v instanceof Date ? cell.v.toISOString() : cell.v);\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '<a href=\"' + escapehtml(cell.l.Target) +'\">' + w + '</a>';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"<tr>\";\n\treturn preamble + oo.join(\"\") + \"</tr>\";\n}\n\nvar HTML_BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export</title></head><body>';\nvar HTML_END = '</body></html>';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str_match_xml_ig(str, \"table\");\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find <table>\");\n\tif(mtch.length == 1) {\n\t\tvar w = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\t\tw.bookType = \"html\";\n\t\treturn w;\n\t}\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\twb.bookType = \"html\";\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [];\n\treturn out.join(\"\") + '<table' + (o && o.id ? ' id=\"' + o.id + '\"' : \"\") + '>';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array<string>*/ = [header];\n\tvar r = decode_range(ws['!ref'] || \"A1\");\n\tout.push(make_html_preamble(ws, r, o));\n\tif(ws[\"!ref\"]) for(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"</table>\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar rows/*:HTMLCollection<HTMLTableRowElement>*/ = table.rows;\n\tif(!rows) {\n\t\t/* not an HTML TABLE */\n\t\tthrow \"Unsupported origin when \" + table.tagName + \" is not a TABLE\";\n\t}\n\n\tvar opts = _opts || {};\n\tvar dense = ws[\"!data\"] != null;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array<Range>*/ = [], midx = 0;\n\tvar rowinfo/*:Array<RowInfo>*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection<HTMLTableCellElement>*/ = (row.cells);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(opts.UTC) o.v = local_to_utc(o.v);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new <a> */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\" &&\tl.slice(0, 11).toLowerCase() != 'javascript:') o.l = ({ Target: l });\n\t\t\tif(dense) { if(!ws[\"!data\"][R + or_R]) ws[\"!data\"][R + or_R] = []; ws[\"!data\"][R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\tvar o = sheet_to_workbook(parse_dom_table(table, opts), opts);\n\t//o.bookType = \"dom\"; // TODO: define a type for this\n\treturn o;\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array<any>*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(/<text:s\\/>/g,\" \")\n\t\t.replace(/<text:s text:c=\"(\\d+)\"\\/>/g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/<text:tab[^<>]*\\/>/g,\"\\t\")\n\t\t.replace(/<text:line-break\\/>/g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^<>]*>/g,\"\"));\n\n\treturn [v];\n}\n\n/* Note: ODS can stick styles in content.xml or styles.xml, FODS blurs lines */\nfunction parse_ods_styles(d/*:string*/, _opts, _nfm) {\n\tvar number_format_map = _nfm || {};\n\tvar str = xlml_normalize(d);\n\txlmlregex.lastIndex = 0;\n\tstr = remove_doctype(str_remove_ng(str, \"<!--\", \"-->\"));\n\tvar Rn, NFtag, NF = \"\", tNF = \"\", y, etpos = 0, tidx = -1, infmt = false, payload = \"\";\n\twhile((Rn = xlmlregex.exec(str))) {\n\t\tswitch((Rn[3]=Rn[3].replace(/_[\\s\\S]*$/,\"\"))) {\n\t\t/* Number Format Definitions */\n\t\tcase 'number-style': // <number:number-style> 16.29.2\n\t\tcase 'currency-style': // <number:currency-style> 16.29.8\n\t\tcase 'percentage-style': // <number:percentage-style> 16.29.10\n\t\tcase 'date-style': // <number:date-style> 16.29.11\n\t\tcase 'time-style': // <number:time-style> 16.29.19\n\t\tcase 'text-style': // <number:text-style> 16.29.26\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tif(NFtag['truncate-on-overflow'] == \"false\") {\n\t\t\t\t\tif(NF.match(/h/)) NF = NF.replace(/h+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/m/)) NF = NF.replace(/m+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/s/)) NF = NF.replace(/s+/, \"[$&]\");\n\t\t\t\t}\n\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t// LibreOffice bug https://bugs.documentfoundation.org/show_bug.cgi?id=149484\n\t\tcase 'boolean-style': // <number:boolean-style> 16.29.24\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tnumber_format_map[NFtag.name] = \"General\";\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t/* Number Format Elements */\n\t\tcase 'boolean': // <number:boolean> 16.29.25\n\t\t\tNF += \"General\"; // ODF spec is unfortunately underspecified here\n\t\t\tbreak;\n\n\t\tcase 'text': // <number:text> 16.29.27\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tif(payload == \"%\" && NFtag[0] == '<number:percentage-style') NF += \"%\";\n\t\t\t\telse NF += '\"' + payload.replace(/\"/g, '\"\"') + '\"';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} break;\n\n\n\t\tcase 'day': { // <number:day> 16.29.12\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"d\"; break;\n\t\t\t\tcase \"long\": NF += \"dd\"; break;\n\t\t\t\tdefault: NF += \"dd\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'day-of-week': { // <number:day-of-week> 16.29.16\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ddd\"; break;\n\t\t\t\tcase \"long\": NF += \"dddd\"; break;\n\t\t\t\tdefault: NF += \"ddd\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'era': { // <number:era> 16.29.15 TODO: proper mapping\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ee\"; break;\n\t\t\t\tcase \"long\": NF += \"eeee\"; break;\n\t\t\t\tdefault: NF += \"eeee\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'hours': { // <number:hours> 16.29.20\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"h\"; break;\n\t\t\t\tcase \"long\": NF += \"hh\"; break;\n\t\t\t\tdefault: NF += \"hh\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'minutes': { // <number:minutes> 16.29.21\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"mm\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'month': { // <number:month> 16.29.13\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(y[\"textual\"]) NF += \"mm\";\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"m\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'seconds': { // <number:seconds> 16.29.22\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"s\"; break;\n\t\t\t\tcase \"long\": NF += \"ss\"; break;\n\t\t\t\tdefault: NF += \"ss\"; break; // TODO: error condition\n\t\t\t}\n\t\t\tif(y[\"decimal-places\"]) NF += \".\" + fill(\"0\", +y[\"decimal-places\"]);\n\t\t} break;\n\n\t\tcase 'year': { // <number:year> 16.29.14\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"yy\"; break;\n\t\t\t\tcase \"long\": NF += \"yyyy\"; break;\n\t\t\t\tdefault: NF += \"yy\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'am-pm': // <number:am-pm> 16.29.23\n\t\t\tNF += \"AM/PM\"; // LO autocorrects A/P -> AM/PM\n\t\t\tbreak;\n\n\t\tcase 'week-of-year': // <number:week-of-year> 16.29.17\n\t\tcase 'quarter': // <number:quarter> 16.29.18\n\t\t\tconsole.error(\"Excel does not support ODS format token \" + Rn[3]);\n\t\t\tbreak;\n\n\t\tcase 'fill-character': // <number:fill-character> 16.29.5\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tNF += '\"' + payload.replace(/\"/g, '\"\"') + '\"*';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} break;\n\n\t\tcase 'scientific-number': // <number:scientific-number> 16.29.6\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tNF += \"0.\" + fill(\"0\", +y[\"min-decimal-places\"] || +y[\"decimal-places\"] || 2) + fill(\"?\", +y[\"decimal-places\"] - +y[\"min-decimal-places\"] || 0) + \"E\" + (parsexmlbool(y[\"forced-exponent-sign\"]) ? \"+\" : \"\") + fill(\"0\", +y[\"min-exponent-digits\"] || 2);\n\t\t\tbreak;\n\n\t\tcase 'fraction': // <number:fraction> 16.29.7\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(!+y[\"min-integer-digits\"]) NF += \"#\";\n\t\t\telse NF += fill(\"0\", +y[\"min-integer-digits\"]);\n\t\t\tNF += \" \";\n\t\t\tNF += fill(\"?\", +y[\"min-numerator-digits\"] || 1);\n\t\t\tNF += \"/\";\n\t\t\tif(+y[\"denominator-value\"]) NF += y[\"denominator-value\"];\n\t\t\telse NF += fill(\"?\", +y[\"min-denominator-digits\"] || 1);\n\t\t\tbreak;\n\n\t\tcase 'currency-symbol': // <number:currency-symbol> 16.29.9\n\t\t\t// TODO: localization with [$-...]\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tNF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} else NF += \"$\";\n\t\t\tbreak;\n\n\t\tcase 'text-properties': // <style:text-properties> 16.29.29\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch((y[\"color\"]||\"\").toLowerCase().replace(\"#\", \"\")) {\n\t\t\t\tcase \"ff0000\": case \"red\": NF = \"[Red]\" + NF; break;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'text-content': // <number:text-content> 16.29.28\n\t\t\tNF += \"@\";\n\t\t\tbreak;\n\n\t\tcase 'map': // <style:map> 16.3\n\t\t\t// TODO: handle more complex maps\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(unescapexml(y[\"condition\"]) == \"value()>=0\") NF = number_format_map[y[\"apply-style-name\"]] + \";\" + NF;\n\t\t\telse console.error(\"ODS number format may be incorrect: \" + y[\"condition\"]);\n\t\t\tbreak;\n\n\t\tcase 'number': // <number:number> 16.29.3\n\t\t\t// TODO: handle all the attributes\n\t\t\tif(Rn[1]==='/') break;\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\ttNF = \"\";\n\t\t\ttNF += fill(\"0\", +y[\"min-integer-digits\"] || 1);\n\t\t\tif(parsexmlbool(y[\"grouping\"])) tNF = commaify(fill(\"#\", Math.max(0, 4 - tNF.length)) + tNF);\n\t\t\tif(+y[\"min-decimal-places\"] || +y[\"decimal-places\"]) tNF += \".\";\n\t\t\tif(+y[\"min-decimal-places\"]) tNF += fill(\"0\", +y[\"min-decimal-places\"] || 1);\n\t\t\tif(+y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)) tNF += fill(\"0\", +y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)); // TODO: should this be \"#\" ?\n\t\t\tNF += tNF;\n\t\t\tbreak;\n\n\t\tcase 'embedded-text': // <number:embedded-text> 16.29.4\n\t\t\t// TODO: verify interplay with grouping et al\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tif(etpos == 0) NF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t\telse NF = NF.slice(0, etpos) + '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"' + NF.slice(etpos);\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t\tetpos = -+parsexmltag(Rn[0], false)[\"position\"] || 0;\n\t\t\t} break;\n\n\t}}\n\treturn number_format_map;\n}\n\nfunction parse_content_xml(d/*:string*/, _opts, _nfm)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array<any>*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar nfidx, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", 'å称':\"\"}*/;\n\t\tvar rowtag/*:: = {'è¡Œå·':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array<string>*/ = [];\n\t\tvar ws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/, oldtextp = \"\", oldtextpidx = 0;\n\t\tvar textR = [], oldtextR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = _nfm || {}, styles = {};\n\t\tvar merges/*:Array<Range>*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array<RowInfo>*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[], WBProps:{}};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = remove_doctype(str_remove_ng(str, \"<!--\", \"-->\"));\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_[\\s\\S]*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 <table:table>\n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['å称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = []; merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 <table:table-row-group>\n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case 'è¡Œ': // 9.1.3 <table:table-row>\n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['è¡Œå·']) R = rowtag['è¡Œå·'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 <table:covered-table-cell>\n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case 'æ•°æ®':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif((ctag['æ•°æ®ç±»åž‹'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[\"!data\"][R]) ws[\"!data\"][R] = [];\n\t\t\t\t\t\t\tws[\"!data\"][R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_col(C) + encode_row(R)] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = oldtextp = \"\"; textpidx = oldtextpidx = 0; textR = []; oldtextR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['æ•°æ®ç±»åž‹'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type TODO: verify ODS and UOS */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']) || (+ctag['boolean-value'] >= 1); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value);\n\t\t\t\t\t\t\tif(opts.cellDates && q.z && fmt_is_date(q.z)) { q.v = numdate(q.v + (WB.WBProps.date1904 ? 1462 : 0)); q.t = typeof q.v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value'], WB.WBProps.date1904);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v, WB.WBProps.date1904); }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'm/d/yy'; break;\n\t\t\t\t\t\t/* NOTE: for `time`, Excel ODS export incorrectly uses durations relative to 1900 epoch even if 1904 is specified */\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.v = numdate(q.v); q.t = typeof q.v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['æ•°æ®æ•°å€¼']);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[\"!data\"][R + rpt]) ws[\"!data\"][R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[\"!data\"][R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[\"!data\"][R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 <table:table-cell>\n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: <office:document> is the root for FODS\n\t\t\tcase 'document-content': case '电åè¡¨æ ¼æ–‡æ¡£': // 3.1.3.2 <office:document-content>\n\t\t\tcase 'spreadsheet': case '主体': // 3.7 <office:spreadsheet>\n\t\t\tcase 'scripts': // 3.12 <office:scripts>\n\t\t\tcase 'styles': // TODO <office:styles>\n\t\t\tcase 'font-face-decls': // 3.14 <office:font-face-decls>\n\t\t\tcase 'master-styles': // 3.15.4 <office:master-styles> -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 <office:annotation>\n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t\ttextp = oldtextp; textpidx = oldtextpidx; textR = oldtextR;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\t\tvar annotag = parsexmltag(Rn[0], true);\n\t\t\t\t\t/* office:display TODO: check if there is a global override */\n\t\t\t\t\tif(!(annotag[\"display\"] && parsexmlbool(annotag[\"display\"]))) comments.hidden = true;\n\t\t\t\t\toldtextp = textp; oldtextpidx = textpidx; oldtextR = textR;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 <dc:creator>\n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数æ®': // TODO: <office:meta> <uof:元数æ®> FODS/UOF\n\t\t\tcase 'settings': // TODO: <office:settings>\n\t\t\tcase 'config-item-set': // TODO: <office:config-item-set>\n\t\t\tcase 'config-item-map-indexed': // TODO: <office:config-item-map-indexed>\n\t\t\tcase 'config-item-map-entry': // TODO: <office:config-item-map-entry>\n\t\t\tcase 'config-item-map-named': // TODO: <office:config-item-map-entry>\n\t\t\tcase 'shapes': // 9.2.8 <table:shapes>\n\t\t\tcase 'frame': // 10.4.2 <draw:frame>\n\t\t\tcase 'text-box': // 10.4.3 <draw:text-box>\n\t\t\tcase 'image': // 10.4.4 <draw:image>\n\t\t\tcase 'data-pilot-tables': // 9.6.2 <table:data-pilot-tables>\n\t\t\tcase 'list-style': // 16.30 <text:list-style>\n\t\t\tcase 'form': // 13.13 <form:form>\n\t\t\tcase 'dde-links': // 9.8 <table:dde-links>\n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // <number:scientific-number>\n\t\t\tcase 'currency-symbol': // <number:currency-symbol>\n\t\t\tcase 'fill-character': // 16.29.5 <number:fill-character>\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-style': // 16.27.25 <number:text-style>\n\t\t\tcase 'boolean-style': // 16.27.23 <number:boolean-style>\n\t\t\tcase 'number-style': // 16.27.2 <number:number-style>\n\t\t\tcase 'currency-style': // 16.29.8 <number:currency-style>\n\t\t\tcase 'percentage-style': // 16.27.9 <number:percentage-style>\n\t\t\tcase 'date-style': // 16.27.10 <number:date-style>\n\t\t\tcase 'time-style': // 16.27.18 <number:time-style>\n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tvar xlmlidx = xlmlregex.lastIndex;\n\t\t\t\t\tparse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);\n\t\t\t\t\txlmlregex.lastIndex = xlmlidx;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tnfidx = xlmlregex.lastIndex - Rn[0].length;\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 <office:script>\n\t\t\tcase 'libraries': break; // TODO: <ooo:libraries>\n\t\t\tcase 'automatic-styles': break; // 3.15.3 <office:automatic-styles>\n\n\t\t\tcase 'default-style': // TODO: <style:default-style>\n\t\t\tcase 'page-layout': break; // TODO: <style:page-layout>\n\t\t\tcase 'style': { // 16.2 <style:style>\n\t\t\t\tvar styletag = parsexmltag(Rn[0], false);\n\t\t\t\tif(styletag[\"family\"] == \"table-cell\" && number_format_map[styletag[\"data-style-name\"]]) styles[styletag[\"name\"]] = number_format_map[styletag[\"data-style-name\"]];\n\t\t\t} break;\n\t\t\tcase 'map': break; // 16.3 <style:map>\n\t\t\tcase 'font-face': break; // 16.21 <style:font-face>\n\n\t\t\tcase 'paragraph-properties': break; // 17.6 <style:paragraph-properties>\n\t\t\tcase 'table-properties': break; // 17.15 <style:table-properties>\n\t\t\tcase 'table-column-properties': break; // 17.16 <style:table-column-properties>\n\t\t\tcase 'table-row-properties': break; // 17.17 <style:table-row-properties>\n\t\t\tcase 'table-cell-properties': break; // 17.18 <style:table-cell-properties>\n\n\t\t\tcase 'number': // 16.27.3 <number:number>\n\t\t\t\tbreak;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 <number:fraction>\n\n\t\t\tcase 'day': // 16.27.11 <number:day>\n\t\t\tcase 'month': // 16.27.12 <number:month>\n\t\t\tcase 'year': // 16.27.13 <number:year>\n\t\t\tcase 'era': // 16.27.14 <number:era>\n\t\t\tcase 'day-of-week': // 16.27.15 <number:day-of-week>\n\t\t\tcase 'week-of-year': // 16.27.16 <number:week-of-year>\n\t\t\tcase 'quarter': // 16.27.17 <number:quarter>\n\t\t\tcase 'hours': // 16.27.19 <number:hours>\n\t\t\tcase 'minutes': // 16.27.20 <number:minutes>\n\t\t\tcase 'seconds': // 16.27.21 <number:seconds>\n\t\t\tcase 'am-pm': // 16.27.22 <number:am-pm>\n\t\t\t\tbreak;\n\n\t\t\tcase 'boolean': break; // 16.27.24 <number:boolean>\n\t\t\tcase 'text': // 16.27.26 <number:text>\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 <table:named-range>\n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 <number:text-content>\n\t\t\tcase 'text-properties': break; // 16.27.27 <style:text-properties>\n\t\t\tcase 'embedded-text': break; // 16.27.4 <number:embedded-text>\n\n\t\t\tcase 'body': case '电åè¡¨æ ¼': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 <table:table-column>\n\t\t\tcase 'table-header-rows': break; // 9.1.7 <table:table-header-rows>\n\t\t\tcase 'table-rows': break; // 9.1.12 <table:table-rows>\n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 <table:table-column-group>\n\t\t\tcase 'table-header-columns': break; // 9.1.11 <table:table-header-columns>\n\t\t\tcase 'table-columns': break; // 9.1.12 <table:table-columns>\n\n\t\t\tcase 'null-date': // 9.4.2 <table:null-date>\n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\tswitch(tag[\"date-value\"]) {\n\t\t\t\t\tcase \"1904-01-01\": WB.WBProps.date1904 = true; break;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'graphic-properties': break; // 17.21 <style:graphic-properties>\n\t\t\tcase 'calculation-settings': break; // 9.4.1 <table:calculation-settings>\n\t\t\tcase 'named-expressions': break; // 9.4.11 <table:named-expressions>\n\t\t\tcase 'label-range': break; // 9.4.9 <table:label-range>\n\t\t\tcase 'label-ranges': break; // 9.4.10 <table:label-ranges>\n\t\t\tcase 'named-expression': break; // 9.4.13 <table:named-expression>\n\t\t\tcase 'sort': break; // 9.4.19 <table:sort>\n\t\t\tcase 'sort-by': break; // 9.4.20 <table:sort-by>\n\t\t\tcase 'sort-groups': break; // 9.4.22 <table:sort-groups>\n\n\t\t\tcase 'tab': break; // 6.1.4 <text:tab>\n\t\t\tcase 'line-break': break; // 6.1.5 <text:line-break>\n\t\t\tcase 'span': break; // 6.1.7 <text:span>\n\t\t\tcase 'p': case '文本串': // 5.1.3 <text:p>\n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else if(Rn[0].slice(-2) == \"/>\") {\n\t\t\t\t\t/* TODO: is self-closing 文本串 valid? */\n\t\t\t\t\ttextp += \"\\n\";\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // <text:p>\n\t\t\tcase 's': break; // <text:s>\n\n\t\t\tcase 'database-range': // 9.4.15 <table:database-range>\n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 <draw:object>\n\t\t\tcase 'title': case 'æ ‡é¢˜': break; // <*:title> OR <uof:æ ‡é¢˜>\n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 <table:iteration>\n\t\t\tcase 'content-validations': break; // 9.4.4 <table:\n\t\t\tcase 'content-validation': break; // 9.4.5 <table:\n\t\t\tcase 'help-message': break; // 9.4.6 <table:\n\t\t\tcase 'error-message': break; // 9.4.7 <table:\n\t\t\tcase 'database-ranges': break; // 9.4.14 <table:database-ranges>\n\n\t\t\t/* 9.5 Filters */\n\t\t\tcase 'filter': break; // 9.5.2 <table:filter>\n\t\t\tcase 'filter-and': break; // 9.5.3 <table:filter-and>\n\t\t\tcase 'filter-or': break; // 9.5.4 <table:filter-or>\n\t\t\tcase 'filter-condition': break; // 9.5.5 <table:filter-condition>\n\t\t\tcase 'filter-set-item': break; // 9.5.6 <table:filter-condition>\n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 <text:\n\t\t\tcase 'list-level-style-number': break; // 16.32 <text:\n\t\t\tcase 'list-level-properties': break; // 17.19 <style:\n\n\t\t\t/* 7.3 Document Fields */\n\t\t\tcase 'sender-firstname': // 7.3.6.2\n\t\t\tcase 'sender-lastname': // 7.3.6.3\n\t\t\tcase 'sender-initials': // 7.3.6.4\n\t\t\tcase 'sender-title': // 7.3.6.5\n\t\t\tcase 'sender-position': // 7.3.6.6\n\t\t\tcase 'sender-email': // 7.3.6.7\n\t\t\tcase 'sender-phone-private': // 7.3.6.8\n\t\t\tcase 'sender-fax': // 7.3.6.9\n\t\t\tcase 'sender-company': // 7.3.6.10\n\t\t\tcase 'sender-phone-work': // 7.3.6.11\n\t\t\tcase 'sender-street': // 7.3.6.12\n\t\t\tcase 'sender-city': // 7.3.6.13\n\t\t\tcase 'sender-postal-code': // 7.3.6.14\n\t\t\tcase 'sender-country': // 7.3.6.15\n\t\t\tcase 'sender-state-or-province': // 7.3.6.16\n\t\t\tcase 'author-name': // 7.3.7.1\n\t\t\tcase 'author-initials': // 7.3.7.2\n\t\t\tcase 'chapter': // 7.3.8\n\t\t\tcase 'file-name': // 7.3.9\n\t\t\tcase 'template-name': // 7.3.9\n\t\t\tcase 'sheet-name': // 7.3.9\n\t\t\t\tbreak;\n\n\t\t\tcase 'event-listener':\n\t\t\t\tbreak;\n\t\t\t/* TODO: FODS Properties */\n\t\t\tcase 'initial-creator':\n\t\t\tcase 'creation-date':\n\t\t\tcase 'print-date':\n\t\t\tcase 'generator':\n\t\t\tcase 'document-statistic':\n\t\t\tcase 'user-defined':\n\t\t\tcase 'editing-duration':\n\t\t\tcase 'editing-cycles':\n\t\t\t\tbreak;\n\n\t\t\t/* TODO: FODS Config */\n\t\t\tcase 'config-item':\n\t\t\t\tbreak;\n\n\t\t\t/* TODO: style tokens */\n\t\t\tcase 'page-number': break; // TODO <text:page-number>\n\t\t\tcase 'page-count': break; // TODO <text:page-count>\n\t\t\tcase 'time': break; // TODO <text:time>\n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 <table:\n\t\t\tcase 'detective': break; // 9.3.2 <table:\n\t\t\tcase 'operation': break; // 9.3.3 <table:\n\t\t\tcase 'highlighted-range': break; // 9.3.4 <table:\n\n\t\t\t/* 9.6 Data Pilot Tables <table: */\n\t\t\tcase 'data-pilot-table': // 9.6.3\n\t\t\tcase 'source-cell-range': // 9.6.5\n\t\t\tcase 'source-service': // 9.6.6\n\t\t\tcase 'data-pilot-field': // 9.6.7\n\t\t\tcase 'data-pilot-level': // 9.6.8\n\t\t\tcase 'data-pilot-subtotals': // 9.6.9\n\t\t\tcase 'data-pilot-subtotal': // 9.6.10\n\t\t\tcase 'data-pilot-members': // 9.6.11\n\t\t\tcase 'data-pilot-member': // 9.6.12\n\t\t\tcase 'data-pilot-display-info': // 9.6.13\n\t\t\tcase 'data-pilot-sort-info': // 9.6.14\n\t\t\tcase 'data-pilot-layout-info': // 9.6.15\n\t\t\tcase 'data-pilot-field-reference': // 9.6.16\n\t\t\tcase 'data-pilot-groups': // 9.6.17\n\t\t\tcase 'data-pilot-group': // 9.6.18\n\t\t\tcase 'data-pilot-group-member': // 9.6.19\n\t\t\t\tbreak;\n\n\t\t\t/* 10.3 Drawing Shapes */\n\t\t\tcase 'rect': // 10.3.2\n\t\t\t\tbreak;\n\n\t\t\t/* 14.6 DDE Connections */\n\t\t\tcase 'dde-connection-decls': // 14.6.2 <text:\n\t\t\tcase 'dde-connection-decl': // 14.6.3 <text:\n\t\t\tcase 'dde-link': // 14.6.4 <table:\n\t\t\tcase 'dde-source': // 14.6.5 <office:\n\t\t\t\tbreak;\n\n\t\t\tcase 'properties': break; // 13.7 <form:properties>\n\t\t\tcase 'property': break; // 13.8 <form:property>\n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // <table:\n\t\t\tcase 'office-document-common-attrs': break; // bare\n\t\t\tdefault: switch(Rn[2]) {\n\t\t\t\tcase 'dc:': // TODO: properties\n\t\t\t\tcase 'calcext:': // ignore undocumented extensions\n\t\t\t\tcase 'loext:': // ignore undocumented extensions\n\t\t\t\tcase 'ooo:': // ignore undocumented extensions\n\t\t\t\tcase 'chartooo:': // ignore undocumented extensions\n\t\t\t\tcase 'draw:': // TODO: drawing\n\t\t\t\tcase 'style:': // TODO: styles\n\t\t\t\tcase 'chart:': // TODO: charts\n\t\t\t\tcase 'form:': // TODO: forms\n\t\t\t\tcase 'uof:': // TODO: uof\n\t\t\t\tcase '表:': // TODO: uof\n\t\t\t\tcase 'å—:': // TODO: uof\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts.WTF) throw new Error(Rn);\n\t\t\t}\n\t\t}\n\t\tvar out/*:Workbook*/ = ({\n\t\t\tSheets: Sheets,\n\t\t\tSheetNames: SheetNames,\n\t\t\tWorkbook: WB\n\t\t}/*:any*/);\n\t\tif(opts.bookSheets) delete /*::(*/out/*:: :any)*/.Sheets;\n\t\treturn out;\n}\n\nfunction parse_ods(zip/*:ZIPFile*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\topts = opts || ({}/*:any*/);\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) parse_manifest(getzipdata(zip, 'META-INF/manifest.xml'), opts);\n\tvar styles = getzipstr(zip, 'styles.xml');\n\tvar Styles = styles && parse_ods_styles(utf8read(styles), opts);\n\tvar content = getzipstr(zip, 'content.xml');\n\tif(!content) throw new Error(\"Missing content.xml in ODS / UOF file\");\n\tvar wb = parse_content_xml(utf8read(content), opts, Styles);\n\tif(safegetzipfile(zip, 'meta.xml')) wb.Props = parse_core_props(getzipdata(zip, 'meta.xml'));\n\twb.bookType = \"ods\";\n\treturn wb;\n}\nfunction parse_fods(data/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar wb = parse_content_xml(data, opts);\n\twb.bookType = \"fods\";\n\treturn wb;\n}\n\n/* OpenDocument */\nvar write_styles_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\tvar master_styles = [\n\t\t'<office:master-styles>',\n\t\t\t'<style:master-page style:name=\"mp1\" style:page-layout-name=\"mp1\">',\n\t\t\t\t'<style:header/>',\n\t\t\t\t'<style:header-left style:display=\"false\"/>',\n\t\t\t\t'<style:footer/>',\n\t\t\t\t'<style:footer-left style:display=\"false\"/>',\n\t\t\t'</style:master-page>',\n\t\t'</office:master-styles>'\n\t].join(\"\");\n\n\tvar payload = '<office:document-styles ' + wxt_helper({\n\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t'office:version': \"1.2\"\n\t}) + '>' + master_styles + '</office:document-styles>';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\n\n// TODO: find out if anyone actually read the spec. LO has some wild errors\nfunction write_number_format_ods(nf/*:string*/, nfidx/*:string*/)/*:string*/ {\n\tvar type = \"number\", payload = \"\", nopts = { \"style:name\": nfidx }, c = \"\", i = 0;\n\tnf = nf.replace(/\"[$]\"/g, \"$\");\n\t/* TODO: replace with an actual parser based on a real grammar */\n\tj: {\n\t\t// TODO: support style maps\n\t\tif(nf.indexOf(\";\") > -1) {\n\t\t\tconsole.error(\"Unsupported ODS Style Map exported. Using first branch of \" + nf);\n\t\t\tnf = nf.slice(0, nf.indexOf(\";\"));\n\t\t}\n\n\t\tif(nf == \"@\") { type = \"text\"; payload = \"<number:text-content/>\"; break j; }\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* opening string literal */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '<number:fill-character>' + escapexml(c.replace(/\"\"/g, '\"')) + '</number:fill-character>';\n\t\t\t} else {\n\t\t\t\tpayload += '<number:text>' + escapexml(c.replace(/\"\"/g, '\"')) + '</number:text>';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* fractions */\n\t\tvar t = nf.match(/# (\\?+)\\/(\\?+)/);\n\t\tif(t) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:max-denominator-value\": Math.max(+(t[1].replace(/./g, \"9\")), +(t[2].replace(/./g, \"9\"))) }); break j; }\n\t\tif((t=nf.match(/# (\\?+)\\/(\\d+)/))) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:denominator-value\": +t[2]}); break j; }\n\n\t\t/* percentages */\n\t\tif((t=nf.match(/\\b(\\d+)(|\\.\\d+)%/))) { type = \"percentage\"; payload += writextag(\"number:number\", null, {\"number:decimal-places\": t[2] && t.length - 1 || 0, \"number:min-decimal-places\": t[2] && t.length - 1 || 0, \"number:min-integer-digits\": t[1].length }) + \"<number:text>%</number:text>\"; break j; }\n\n\t\t/* datetime */\n\t\tvar has_time = false;\n\t\tif([\"y\",\"m\",\"d\"].indexOf(nf[0]) > -1) {\n\t\t\ttype = \"date\";\n\t\t\tk: for(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\tcase \"m\":\n\t\t\t\t\tl: for(var h = i+1; h < nf.length; ++h) switch(nf[h]) {\n\t\t\t\t\t\tcase \"y\": case \"d\": break l;\n\t\t\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\t\t}\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"y\": case \"d\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"y\": case \"yy\": payload += \"<number:year/>\"; break;\n\t\t\t\t\t\tcase \"yyy\": case \"yyyy\": payload += '<number:year number:style=\"long\"/>'; break;\n\t\t\t\t\t\tcase \"mmmmm\": console.error(\"ODS has no equivalent of format |mmmmm|\");\n\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\tcase \"m\": case \"mm\": case \"mmm\": case \"mmmm\":\n\t\t\t\t\t\t\tpayload += '<number:month number:style=\"' + (c.length % 2 ? \"short\" : \"long\") + '\" number:textual=\"' + (c.length >= 3 ? \"true\" : \"false\") + '\"/>';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"d\": case \"dd\": payload += '<number:day number:style=\"' + (c.length % 2 ? \"short\" : \"long\") + '\"/>'; break;\n\t\t\t\t\t\tcase \"ddd\": case \"dddd\": payload += '<number:day-of-week number:style=\"' + (c.length % 2 ? \"short\" : \"long\") + '\"/>'; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '<number:text>' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '</number:text>';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\\\\': c = nf[++i];\n\t\t\t\t\tpayload += '<number:text>' + escapexml(c) + '</number:text>'; break;\n\t\t\t\tcase '/': case ':': payload += '<number:text>' + escapexml(c) + '</number:text>'; break;\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tif(!has_time) break j;\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\t\tif(nf.match(/^\\[?[hms]/)) {\n\t\t\tif(type == \"number\") type = \"time\";\n\t\t\tif(nf.match(/\\[/)) {\n\t\t\t\tnf = nf.replace(/[\\[\\]]/g, \"\");\n\t\t\t\tnopts['number:truncate-on-overflow'] = \"false\";\n\t\t\t}\n\t\t\tfor(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"m\": case \"s\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"h\": case \"hh\": payload += '<number:hours number:style=\"' + (c.length % 2 ? \"short\" : \"long\") + '\"/>'; break;\n\t\t\t\t\t\tcase \"m\": case \"mm\": payload += '<number:minutes number:style=\"' + (c.length % 2 ? \"short\" : \"long\") + '\"/>'; break;\n\t\t\t\t\t\tcase \"s\": case \"ss\":\n\t\t\t\t\t\t\tif(nf[i+1] == \".\") do { c += nf[i+1]; ++i; } while(nf[i+1] == \"0\");\n\t\t\t\t\t\t\tpayload += '<number:seconds number:style=\"' + (c.match(\"ss\") ? \"long\" : \"short\") + '\"' + (c.match(/\\./) ? ' number:decimal-places=\"' + (c.match(/0+/)||[\"\"])[0].length + '\"' : \"\")+ '/>'; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '<number:text>' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '</number:text>';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': case ':': payload += '<number:text>' + escapexml(c) + '</number:text>'; break;\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif(nf.slice(i, i+3).toLowerCase() == \"a/p\") { payload += '<number:am-pm/>'; i += 2; break; } // Note: ODF does not support A/P\n\t\t\t\t\tif(nf.slice(i, i+5).toLowerCase() == \"am/pm\") { payload += '<number:am-pm/>'; i += 4; break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tbreak j;\n\t\t}\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* should be in a char loop */\n\t\tif(nf[0] == \"$\") { payload += '<number:currency-symbol number:language=\"en\" number:country=\"US\">$</number:currency-symbol>'; nf = nf.slice(1); i = 0; }\n\t\ti = 0; if(nf[i] == '\"') {\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '<number:fill-character>' + escapexml(c.replace(/\"\"/g, '\"')) + '</number:fill-character>';\n\t\t\t} else {\n\t\t\t\tpayload += '<number:text>' + escapexml(c.replace(/\"\"/g, '\"')) + '</number:text>';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* number TODO: interstitial text e.g. 000)000-0000 */\n\t\tvar np = nf.match(/([#0][0#,]*)(\\.[0#]*|)(E[+]?0*|)/i);\n\t\tif(!np || !np[0]) console.error(\"Could not find numeric part of \" + nf);\n\t\telse {\n\t\t\tvar base = np[1].replace(/,/g, \"\");\n\t\t\tpayload += '<number:' + (np[3] ? \"scientific-\" : \"\")+ 'number' +\n\t\t\t\t' number:min-integer-digits=\"' + (base.indexOf(\"0\") == -1 ? \"0\" : base.length - base.indexOf(\"0\")) + '\"' +\n\t\t\t\t(np[0].indexOf(\",\") > -1 ? ' number:grouping=\"true\"' : \"\") +\n\t\t\t\t(np[2] && ' number:decimal-places=\"' + (np[2].length - 1) + '\"' || ' number:decimal-places=\"0\"') +\n\t\t\t\t(np[3] && np[3].indexOf(\"+\") > -1 ? ' number:forced-exponent-sign=\"true\"' : \"\" ) +\n\t\t\t\t(np[3] ? ' number:min-exponent-digits=\"' + np[3].match(/0+/)[0].length + '\"' : \"\" ) +\n\t\t\t\t'>' +\n\t\t\t\t/* TODO: interstitial text placeholders */\n\t\t\t\t'</number:' + (np[3] ? \"scientific-\" : \"\") + 'number>';\n\t\t\ti = np.index + np[0].length;\n\t\t}\n\n\t\t/* residual text */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tpayload += '<number:text>' + escapexml(c.replace(/\"\"/g, '\"')) + '</number:text>';\n\t\t}\n\t}\n\n\tif(!payload) { console.error(\"Could not generate ODS number format for |\" + nf + \"|\"); return \"\"; }\n\treturn writextag(\"number:\" + type + \"-style\", payload, nopts);\n}\n\nfunction write_names_ods(Names, SheetNames, idx) {\n\t//var scoped = Names.filter(function(name) { return name.Sheet == (idx == -1 ? null : idx); });\n\tvar scoped = []; for(var namei = 0; namei < Names.length; ++namei) {\n\t\tvar name = Names[namei];\n\t\tif(!name) continue;\n\t\tif(name.Sheet == (idx == -1 ? null : idx)) scoped.push(name);\n\t}\n\tif(!scoped.length) return \"\";\n\treturn \" <table:named-expressions>\\n\" + scoped.map(function(name) {\n\t\tvar odsref = (idx == -1 ? \"$\" : \"\") + csf_to_ods_3D(name.Ref);\n\t\treturn \" \" + writextag(\"table:named-range\", null, {\n\t\t\t\"table:name\": name.Name,\n\t\t\t\"table:cell-range-address\": odsref,\n\t\t\t\"table:base-cell-address\": odsref.replace(/[\\.][^\\.]*$/, \".$A$1\")\n\t\t});\n\t}).join(\"\\n\") + \"\\n </table:named-expressions>\\n\";\n}\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/, span)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '<text:s text:c=\"'+$$.length+'\"/>';})\n\t\t\t.replace(/\\t/g, \"<text:tab/>\")\n\t\t\t.replace(/\\n/g, span ? \"<text:line-break/>\": \"</text:p><text:p>\")\n\t\t\t.replace(/^ /, \"<text:s/>\").replace(/ $/, \"<text:s/>\");\n\t};\n\n\tvar null_cell_xml = ' <table:table-cell />\\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*/, opts, nfs, date1904)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array<string>*/ = [];\n\t\to.push(' <table:table table:name=\"' + escapexml(wb.SheetNames[i]) + '\" table:style-name=\"ta1\">\\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' <table:table-column' + (ws[\"!cols\"][C] ? ' table:style-name=\"co' + ws[\"!cols\"][C].ods + '\"' : '') + '></table:table-column>\\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' <table:table-row' + H + '></table:table-row>\\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' <table:table-row' + H + '>\\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(' <table:covered-table-cell/>\\n'); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v, date1904).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v, date1904).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e': // TODO: translate to ODS errors\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue; // TODO: empty cell with comments\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\tif(nfs[cell.z]) ct[\"table:style-name\"] = \"ce\" + nfs[cell.z].slice(1);\n\t\t\t\tvar payload = writextag('text:p', text_p, {});\n\t\t\t\tif(cell.c) {\n\t\t\t\t\tvar acreator = \"\", apayload = \"\", aprops = {};\n\t\t\t\t\tfor(var ci = 0; ci < cell.c.length; ++ci) {\n\t\t\t\t\t\tif(!acreator && cell.c[ci].a) acreator = cell.c[ci].a;\n\t\t\t\t\t\tapayload += \"<text:p>\" + write_text_p(cell.c[ci].t) + \"</text:p>\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!cell.c.hidden) aprops[\"office:display\"] = true;\n\t\t\t\t\tpayload = writextag('office:annotation', apayload, aprops) + payload;\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', payload, ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' </table:table-row>\\n');\n\t\t}\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i));\n\t\to.push(' </table:table>\\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array<string>*/, wb) {\n\t\to.push(' <office:automatic-styles>\\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' <style:style style:name=\"co' + cidx + '\" style:family=\"table-column\">\\n');\n\t\t\t\t\to.push(' <style:table-column-properties fo:break-before=\"auto\" style:column-width=\"' + w + '\"/>\\n');\n\t\t\t\t\to.push(' </style:style>\\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' <style:style style:name=\"ro' + ridx + '\" style:family=\"table-row\">\\n');\n\t\t\t\t\to.push(' <style:table-row-properties fo:break-before=\"auto\" style:row-height=\"' + h + '\"/>\\n');\n\t\t\t\t\to.push(' </style:style>\\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' <style:style style:name=\"ta1\" style:family=\"table\" style:master-page-name=\"mp1\">\\n');\n\t\to.push(' <style:table-properties table:display=\"true\" style:writing-mode=\"lr-tb\"/>\\n');\n\t\to.push(' </style:style>\\n');\n\n\t\to.push(' <number:date-style style:name=\"N37\" number:automatic-order=\"true\">\\n');\n\t\to.push(' <number:month number:style=\"long\"/>\\n');\n\t\to.push(' <number:text>/</number:text>\\n');\n\t\to.push(' <number:day number:style=\"long\"/>\\n');\n\t\to.push(' <number:text>/</number:text>\\n');\n\t\to.push(' <number:year/>\\n');\n\t\to.push(' </number:date-style>\\n');\n\n\t\t/* number formats, table cells, text */\n\t\tvar nfs = {};\n\t\tvar nfi = 69;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tvar dense = (ws[\"!data\"] != null);\n\t\t\tif(!ws[\"!ref\"]) return;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tfor(var R = 0; R <= range.e.r; ++R) for(var C = 0; C <= range.e.c; ++C) {\n\t\t\t\tvar c = dense ? (ws[\"!data\"][R]||[])[C] : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(!c || !c.z || c.z.toLowerCase() == \"general\") continue;\n\t\t\t\tif(!nfs[c.z]) {\n\t\t\t\t\tvar out = write_number_format_ods(c.z, \"N\" + nfi);\n\t\t\t\t\tif(out) { nfs[c.z] = \"N\" + nfi; ++nfi; o.push(out + \"\\n\"); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\to.push(' <style:style style:name=\"ce1\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"N37\"/>\\n');\n\t\tkeys(nfs).forEach(function(nf) {\n\t\t\to.push('<style:style style:name=\"ce' + nfs[nf].slice(1) + '\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"' + nfs[nf] + '\"/>\\n');\n\t\t});\n\n\t\t/* page-layout */\n\n\t\to.push(' </office:automatic-styles>\\n');\n\t\treturn nfs;\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('<office:document' + attr + fods + '>\\n');\n\t\t\to.push(write_meta_ods().replace(/<office:document-meta[^<>]*?>/, \"\").replace(/<\\/office:document-meta>/, \"\") + \"\\n\");\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('<office:document-content' + attr + '>\\n');\n\t\t// o.push(' <office:scripts/>\\n');\n\t\tvar nfs = write_automatic_styles_ods(o, wb);\n\t\to.push(' <office:body>\\n');\n\t\to.push(' <office:spreadsheet>\\n');\n\t\tif(((wb.Workbook||{}).WBProps||{}).date1904) o.push(' <table:calculation-settings table:case-sensitive=\"false\" table:search-criteria-must-apply-to-whole-cell=\"true\" table:use-wildcards=\"true\" table:use-regular-expressions=\"false\" table:automatic-find-labels=\"false\">\\n <table:null-date table:date-value=\"1904-01-01\"/>\\n </table:calculation-settings>\\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts, nfs, ((wb.Workbook||{}).WBProps||{}).date1904));\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));\n\t\to.push(' </office:spreadsheet>\\n');\n\t\to.push(' </office:body>\\n');\n\t\tif(opts.bookType == \"fods\") o.push('</office:document>');\n\t\telse o.push('</office:document-content>');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array<Array<string> >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nvar subarray = function() {\n try {\n if (typeof Uint8Array == \"undefined\")\n return \"slice\";\n if (typeof Uint8Array.prototype.subarray == \"undefined\")\n return \"slice\";\n if (typeof Buffer !== \"undefined\") {\n if (typeof Buffer.prototype.subarray == \"undefined\")\n return \"slice\";\n if ((typeof Buffer.from == \"function\" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)\n return \"subarray\";\n return \"slice\";\n }\n return \"subarray\";\n } catch (e) {\n return \"slice\";\n }\n}();\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8concat(u8a) {\n var len = 0;\n for (var i = 0; i < u8a.length; ++i)\n len += u8a[i].length;\n var out = new Uint8Array(len);\n var off = 0;\n for (i = 0; i < u8a.length; ++i) {\n var u8 = u8a[i], L = u8.length;\n if (L < 250) {\n for (var j = 0; j < L; ++j)\n out[off++] = u8[j];\n } else {\n out.set(u8, off);\n off += L;\n }\n }\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr.l;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n ptr.l = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz[subarray](0, L);\n}\nfunction parse_packed_varints(buf) {\n var ptr = { l: 0 };\n var out = [];\n while (ptr.l < buf.length)\n out.push(parse_varint49(buf, ptr));\n return out;\n}\nfunction write_packed_varints(nums) {\n return u8concat(nums.map(function(x) {\n return write_varint49(x);\n }));\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 15) << 28;\n return i32;\n}\nfunction varint_to_u64(buf) {\n var l = 0, lo = buf[l] & 127, hi = 0;\n varint:\n if (buf[l++] >= 128) {\n lo |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 28;\n hi = buf[l] >> 4 & 7;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 3;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 10;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 17;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 24;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 31;\n }\n return [lo >>> 0, hi >>> 0];\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var off = ptr.l;\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = num / 8 | 0;\n var data;\n var l = ptr.l;\n switch (type) {\n case 0:\n {\n while (buf[l++] >= 128)\n ;\n data = buf[subarray](ptr.l, l);\n ptr.l = l;\n }\n break;\n case 1:\n {\n data = buf[subarray](l, l + 8);\n ptr.l = l + 8;\n }\n break;\n case 2:\n {\n var len = parse_varint49(buf, ptr);\n data = buf[subarray](ptr.l, ptr.l + len);\n ptr.l += len;\n }\n break;\n case 5:\n {\n data = buf[subarray](l, l + 4);\n ptr.l = l + 4;\n }\n break;\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: data, type: type };\n if (out[num] == null)\n out[num] = [];\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n if (idx == 0)\n return;\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));\n ptr.l += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf[subarray](ptr.l, ptr.l + fl)\n });\n ptr.l += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [\n [],\n [{ data: write_varint49(ia.id), type: 0 }],\n []\n ];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = { l: 0 };\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n var l = ptr.l;\n while (l < buf.length) {\n var tag = buf[l] & 3;\n if (tag == 0) {\n var len = buf[l++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[l];\n if (c > 1)\n len |= buf[l + 1] << 8;\n if (c > 2)\n len |= buf[l + 2] << 16;\n if (c > 3)\n len |= buf[l + 3] << 24;\n len >>>= 0;\n len++;\n l += c;\n }\n chunks.push(buf[subarray](l, l + len));\n l += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[l] >> 2 & 7) + 4;\n offset = (buf[l++] & 224) << 3;\n offset |= buf[l++];\n } else {\n length = (buf[l++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[l] | buf[l + 1] << 8;\n l += 2;\n } else {\n offset = (buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16 | buf[l + 3] << 24) >>> 0;\n l += 4;\n }\n }\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n var j = chunks.length - 1, off = offset;\n while (j >= 0 && off >= chunks[j].length) {\n off -= chunks[j].length;\n --j;\n }\n if (j < 0) {\n if (off == 0)\n off = chunks[j = 0].length;\n else\n throw new Error(\"Invalid offset beyond length\");\n }\n if (length < off)\n chunks.push(chunks[j][subarray](chunks[j].length - off, chunks[j].length - off + length));\n else {\n if (off > 0) {\n chunks.push(chunks[j][subarray](chunks[j].length - off));\n length -= off;\n }\n ++j;\n while (length >= chunks[j].length) {\n chunks.push(chunks[j]);\n length -= chunks[j].length;\n ++j;\n }\n if (length)\n chunks.push(chunks[j][subarray](0, length));\n }\n if (chunks.length > 25)\n chunks = [u8concat(chunks)];\n }\n }\n var clen = 0;\n for (var u8i = 0; u8i < chunks.length; ++u8i)\n clen += chunks[u8i].length;\n if (clen != usz)\n throw new Error(\"Unexpected length: \".concat(clen, \" != \").concat(usz));\n return chunks;\n}\nfunction decompress_iwa_file(buf) {\n if (Array.isArray(buf))\n buf = new Uint8Array(buf);\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push.apply(out, parse_snappy_chunk(t, buf[subarray](l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return out.length == 1 ? out[0] : u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf[subarray](l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nvar numbers_lut_new = function() {\n return { sst: [], rsst: [], ofmt: [], nfmt: [], fmla: [], ferr: [], cmnt: [] };\n};\nfunction numbers_format_cell(cell, t, flags, ofmt, nfmt) {\n var _a, _b, _c, _d;\n var ctype = t & 255, ver = t >> 8;\n var fmt = ver >= 5 ? nfmt : ofmt;\n dur:\n if (flags & (ver > 4 ? 8 : 4) && cell.t == \"n\" && ctype == 7) {\n var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;\n if (dstyle == -1)\n break dur;\n var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;\n var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;\n var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;\n var d = cell.v, dd = d;\n autodur:\n if (auto) {\n if (d == 0) {\n dmin = dmax = 2;\n break autodur;\n }\n if (d >= 604800)\n dmin = 1;\n else if (d >= 86400)\n dmin = 2;\n else if (d >= 3600)\n dmin = 4;\n else if (d >= 60)\n dmin = 8;\n else if (d >= 1)\n dmin = 16;\n else\n dmin = 32;\n if (Math.floor(d) != d)\n dmax = 32;\n else if (d % 60)\n dmax = 16;\n else if (d % 3600)\n dmax = 8;\n else if (d % 86400)\n dmax = 4;\n else if (d % 604800)\n dmax = 2;\n if (dmax < dmin)\n dmax = dmin;\n }\n if (dmin == -1 || dmax == -1)\n break dur;\n var dstr = [], zstr = [];\n if (dmin == 1) {\n dd = d / 604800;\n if (dmax == 1) {\n zstr.push('d\"d\"');\n } else {\n dd |= 0;\n d -= 604800 * dd;\n }\n dstr.push(dd + (dstyle == 2 ? \" week\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"w\" : \"\"));\n }\n if (dmin <= 2 && dmax >= 2) {\n dd = d / 86400;\n if (dmax > 2) {\n dd |= 0;\n d -= 86400 * dd;\n }\n zstr.push('d\"d\"');\n dstr.push(dd + (dstyle == 2 ? \" day\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"d\" : \"\"));\n }\n if (dmin <= 4 && dmax >= 4) {\n dd = d / 3600;\n if (dmax > 4) {\n dd |= 0;\n d -= 3600 * dd;\n }\n zstr.push((dmin >= 4 ? \"[h]\" : \"h\") + '\"h\"');\n dstr.push(dd + (dstyle == 2 ? \" hour\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"h\" : \"\"));\n }\n if (dmin <= 8 && dmax >= 8) {\n dd = d / 60;\n if (dmax > 8) {\n dd |= 0;\n d -= 60 * dd;\n }\n zstr.push((dmin >= 8 ? \"[m]\" : \"m\") + '\"m\"');\n if (dstyle == 0)\n dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" minute\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"m\" : \"\"));\n }\n if (dmin <= 16 && dmax >= 16) {\n dd = d;\n if (dmax > 16) {\n dd |= 0;\n d -= dd;\n }\n zstr.push((dmin >= 16 ? \"[s]\" : \"s\") + '\"s\"');\n if (dstyle == 0)\n dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" second\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"s\" : \"\"));\n }\n if (dmax >= 32) {\n dd = Math.round(1e3 * d);\n if (dmin < 32)\n zstr.push('.000\"ms\"');\n if (dstyle == 0)\n dstr.push((dd >= 100 ? \"\" : dd >= 10 ? \"0\" : \"00\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" millisecond\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"ms\" : \"\"));\n }\n cell.w = dstr.join(dstyle == 0 ? \":\" : \" \");\n cell.z = zstr.join(dstyle == 0 ? '\":\"' : \" \");\n if (dstyle == 0)\n cell.w = cell.w.replace(/:(\\d\\d\\d)$/, \".$1\");\n }\n}\nfunction parse_old_storage(buf, lut, v, opts) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1));\n var doff = v > 1 ? 12 : 8;\n if (flags & 2) {\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 3468 : 396)) * 4;\n if (flags & 512) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);\n doff += 8;\n }\n if (v > 1) {\n flags = dv.getUint32(8, true) >>> 16;\n if (flags & 255) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n }\n var ret;\n var t = buf[v >= 4 ? 1 : 2];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n {\n if (opts == null ? void 0 : opts.cellDates)\n ret = { t: \"d\", v: dt };\n else\n ret = { t: \"n\", v: dc / 86400 + 35430, z: table_fmt[14] };\n }\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1) {\n var rts = lut.rsst[ridx];\n ret = { t: \"s\", v: rts.v };\n if (rts.l)\n ret.l = { Target: rts.l };\n } else\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | v << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction parse_new_storage(buf, lut, opts) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var fields = dv.getUint32(8, true);\n var doff = 12;\n var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1)), eidx = -1, fidx = -1;\n if (fields & 1) {\n d128 = readDecimal128LE(buf, doff);\n doff += 16;\n }\n if (fields & 2) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (fields & 4) {\n dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);\n doff += 8;\n }\n if (fields & 8) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 16) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(fields & 480) * 4;\n if (fields & 512) {\n fidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(fields & 1024) * 4;\n if (fields & 2048) {\n eidx = dv.getUint32(doff, true);\n doff += 4;\n }\n var ret;\n var t = buf[1];\n switch (t) {\n case 0:\n ret = { t: \"z\" };\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n {\n if (opts == null ? void 0 : opts.cellDates)\n ret = { t: \"d\", v: dt };\n else\n ret = { t: \"n\", v: dc / 86400 + 35430, z: table_fmt[14] };\n }\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1) {\n var rts = lut.rsst[ridx];\n ret = { t: \"s\", v: rts.v };\n if (rts.l)\n ret.l = { Target: rts.l };\n } else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n doff += popcnt(fields & 4096) * 4;\n if (fields & 516096) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 524288) {\n var cmntidx = dv.getUint32(doff, true);\n doff += 4;\n if (lut.cmnt[cmntidx])\n ret.c = iwa_to_s5s_comment(lut.cmnt[cmntidx]);\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction write_new_storage(cell, lut) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, fields = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n if (cell.z && fmt_is_date(cell.z)) {\n out[1] = 5;\n dv.setFloat64(l, (numdate(cell.v + 1462).getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 4;\n l += 8;\n break;\n } else {\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n fields |= 1;\n l += 16;\n }\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n fields |= 2;\n l += 8;\n break;\n case \"s\":\n {\n var s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n var irsst = lut.rsst.findIndex(function(v) {\n var _a;\n return v.v == s && v.l == ((_a = cell.l) == null ? void 0 : _a.Target);\n });\n if (irsst == -1)\n lut.rsst[irsst = lut.rsst.length] = { v: s, l: cell.l.Target };\n out[1] = 9;\n dv.setUint32(l, irsst, true);\n fields |= 16;\n l += 4;\n } else {\n var isst = lut.sst.indexOf(s);\n if (isst == -1)\n lut.sst[isst = lut.sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n fields |= 8;\n l += 4;\n }\n }\n break;\n case \"d\":\n out[1] = 5;\n dv.setFloat64(l, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 4;\n l += 8;\n break;\n case \"z\":\n out[1] = 0;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n if (cell.c) {\n lut.cmnt.push(s5s_to_iwa_comment(cell.c));\n dv.setUint32(l, lut.cmnt.length - 1, true);\n fields |= 524288;\n l += 4;\n }\n dv.setUint32(8, fields, true);\n return out[subarray](0, l);\n}\nfunction write_old_storage(cell, lut) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, fields = 0, s = \"\";\n out[0] = 4;\n switch (cell.t) {\n case \"n\":\n break;\n case \"b\":\n break;\n case \"s\":\n {\n s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n var irsst = lut.rsst.findIndex(function(v) {\n var _a;\n return v.v == s && v.l == ((_a = cell.l) == null ? void 0 : _a.Target);\n });\n if (irsst == -1)\n lut.rsst[irsst = lut.rsst.length] = { v: s, l: cell.l.Target };\n out[1] = 9;\n dv.setUint32(l, irsst, true);\n fields |= 512;\n l += 4;\n } else {\n }\n }\n break;\n case \"d\":\n break;\n case \"e\":\n break;\n case \"z\":\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n if (cell.c) {\n dv.setUint32(l, lut.cmnt.length - 1, true);\n fields |= 4096;\n l += 4;\n }\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n dv.setFloat64(l, cell.v, true);\n fields |= 32;\n l += 8;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n fields |= 32;\n l += 8;\n break;\n case \"s\":\n {\n s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n } else {\n var isst = lut.sst.indexOf(s);\n if (isst == -1)\n lut.sst[isst = lut.sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n fields |= 16;\n l += 4;\n }\n }\n break;\n case \"d\":\n out[1] = 5;\n dv.setFloat64(l, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 64;\n l += 8;\n break;\n case \"z\":\n out[1] = 0;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, fields, true);\n return out[subarray](0, l);\n}\nfunction parse_cell_storage(buf, lut, opts) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n return parse_old_storage(buf, lut, buf[0], opts);\n case 5:\n return parse_new_storage(buf, lut, opts);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return varint_to_i32(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(idx) }]\n ]);\n}\nfunction numbers_add_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n var orefidx = orefs.indexOf(ref);\n if (orefidx == -1) {\n orefs.push(ref);\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs) }];\n }\n}\nfunction numbers_del_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs.filter(function(r) {\n return r != ref;\n })) }];\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var _a, _b;\n var le = parse_shallow(entry.data);\n if (!le[1])\n return;\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n var richtext = { v: tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\") };\n data[key] = richtext;\n sfields:\n if ((_a = tswpsa == null ? void 0 : tswpsa[11]) == null ? void 0 : _a[0]) {\n var smartfields = (_b = parse_shallow(tswpsa[11][0].data)) == null ? void 0 : _b[1];\n if (!smartfields)\n break sfields;\n smartfields.forEach(function(sf) {\n var _a2, _b2, _c;\n var attr = parse_shallow(sf.data);\n if ((_a2 = attr[2]) == null ? void 0 : _a2[0]) {\n var obj = M[parse_TSP_Reference((_b2 = attr[2]) == null ? void 0 : _b2[0].data)][0];\n var objtype = varint_to_i32(obj.meta[1][0].data);\n switch (objtype) {\n case 2032:\n var hlink = parse_shallow(obj.data);\n if (((_c = hlink == null ? void 0 : hlink[2]) == null ? void 0 : _c[0]) && !richtext.l)\n richtext.l = u8str(hlink[2][0].data);\n break;\n case 2039:\n break;\n default:\n console.log(\"unrecognized ObjectAttribute type \".concat(objtype));\n }\n }\n });\n }\n }\n break;\n case 2:\n data[key] = parse_shallow(le[6][0].data);\n break;\n case 3:\n data[key] = parse_shallow(le[5][0].data);\n break;\n case 10:\n {\n var cs = M[parse_TSP_Reference(le[10][0].data)][0];\n data[key] = parse_TSD_CommentStorageArchive(M, cs.data);\n }\n break;\n default:\n throw type;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage[subarray](offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = -1;\n if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {\n if (varint_to_i32(pb[7][0].data) >>> 0)\n storage = 1;\n else\n storage = 0;\n }\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TSD_CommentStorageArchive(M, data) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n var out = { t: \"\", a: \"\" };\n var csp = parse_shallow(data);\n if ((_b = (_a = csp == null ? void 0 : csp[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data)\n out.t = u8str((_d = (_c = csp == null ? void 0 : csp[1]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) || \"\";\n if ((_f = (_e = csp == null ? void 0 : csp[3]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data) {\n var as = M[parse_TSP_Reference((_h = (_g = csp == null ? void 0 : csp[3]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data)][0];\n var asp = parse_shallow(as.data);\n if ((_j = (_i = asp[1]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data)\n out.a = u8str(asp[1][0].data);\n }\n if (csp == null ? void 0 : csp[4]) {\n out.replies = [];\n csp[4].forEach(function(pi) {\n var cs = M[parse_TSP_Reference(pi.data)][0];\n out.replies.push(parse_TSD_CommentStorageArchive(M, cs.data));\n });\n }\n return out;\n}\nfunction iwa_to_s5s_comment(iwa) {\n var out = [];\n out.push({ t: iwa.t || \"\", a: iwa.a, T: iwa.replies && iwa.replies.length > 0 });\n if (iwa.replies)\n iwa.replies.forEach(function(reply) {\n out.push({ t: reply.t || \"\", a: reply.a, T: true });\n });\n return out;\n}\nfunction s5s_to_iwa_comment(s5s) {\n var out = { a: \"\", t: \"\", replies: [] };\n for (var i = 0; i < s5s.length; ++i) {\n if (i == 0) {\n out.a = s5s[i].a;\n out.t = s5s[i].t;\n } else {\n out.replies.push({ a: s5s[i].a, t: s5s[i].t });\n }\n }\n return out;\n}\nfunction parse_TST_TableModelArchive(M, root, ws, opts) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var dense = ws[\"!data\"] != null, dws = ws;\n var store = parse_shallow(pb[4][0].data);\n var lut = numbers_lut_new();\n if ((_a = store[4]) == null ? void 0 : _a[0])\n lut.sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n if ((_b = store[6]) == null ? void 0 : _b[0])\n lut.fmla = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[6][0].data)][0]);\n if ((_c = store[11]) == null ? void 0 : _c[0])\n lut.ofmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[11][0].data)][0]);\n if ((_d = store[12]) == null ? void 0 : _d[0])\n lut.ferr = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[12][0].data)][0]);\n if ((_e = store[17]) == null ? void 0 : _e[0])\n lut.rsst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]);\n if ((_f = store[19]) == null ? void 0 : _f[0])\n lut.cmnt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[19][0].data)][0]);\n if ((_g = store[22]) == null ? void 0 : _g[0])\n lut.nfmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[22][0].data)][0]);\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n if (!((_h = store[9]) == null ? void 0 : _h[0]))\n throw \"NUMBERS file missing row tree\";\n var rtt = parse_shallow(store[9][0].data)[1].map(function(p) {\n return parse_shallow(p.data);\n });\n rtt.forEach(function(kv) {\n _R = varint_to_i32(kv[1][0].data);\n var tidx = varint_to_i32(kv[2][0].data);\n var t = tile[1][tidx];\n if (!t)\n throw \"NUMBERS missing tile \" + tidx;\n var tl = parse_shallow(t.data);\n var ref2 = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype2 = varint_to_i32(ref2.meta[1][0].data);\n if (mtype2 != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype2));\n var _tile = parse_TST_Tile(M, ref2);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var res = parse_cell_storage(buf, lut, opts);\n if (res) {\n if (dense) {\n if (!dws[\"!data\"][_R + R])\n dws[\"!data\"][_R + R] = [];\n dws[\"!data\"][_R + R][C] = res;\n } else {\n ws[encode_col(C) + encode_row(_R + R)] = res;\n }\n }\n });\n });\n _R += _tile.nrows;\n });\n if ((_i = store[13]) == null ? void 0 : _i[0]) {\n var ref = M[parse_TSP_Reference(store[13][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6144)\n throw new Error(\"Expected merge type 6144, found \".concat(mtype));\n ws[\"!merges\"] = (_j = parse_shallow(ref.data)) == null ? void 0 : _j[1].map(function(pi) {\n var merge = parse_shallow(pi.data);\n var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);\n return {\n s: { r: origin.getUint16(0, true), c: origin.getUint16(2, true) },\n e: {\n r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,\n c: origin.getUint16(2, true) + size.getUint16(2, true) - 1\n }\n };\n });\n }\n}\nfunction parse_TST_TableInfoArchive(M, root, opts) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n if (opts == null ? void 0 : opts.dense)\n out[\"!data\"] = [];\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out, opts);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root, opts) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m, opts));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root, opts) {\n var _a;\n var out = book_new();\n out.Workbook = { WBProps: { date1904: true } };\n var pb = parse_shallow(root.data);\n if ((_a = pb[2]) == null ? void 0 : _a[0])\n throw new Error(\"Keynote presentations are not supported\");\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m, opts);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n out.bookType = \"numbers\";\n return out;\n}\nfunction parse_numbers_iwa(cfb, opts) {\n var _a, _b, _c, _d, _e, _f, _g;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n if (s.content[0] != 0)\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n if (((_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1e4)\n throw new Error(\"Pages documents are not supported\");\n var docroot = ((_g = (_f = (_e = (_d = M == null ? void 0 : M[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot, opts);\n}\nfunction write_TST_TileRowInfo(data, lut, wide) {\n var _a, _b, _c;\n var tri = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(1) }]\n ];\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var cnt = 0;\n if (tri[7][0].data.length < 2 * data.length) {\n var new_7 = new Uint8Array(2 * data.length);\n new_7.set(tri[7][0].data);\n tri[7][0].data = new_7;\n }\n if (tri[4][0].data.length < 2 * data.length) {\n var new_4 = new Uint8Array(2 * data.length);\n new_4.set(tri[4][0].data);\n tri[4][0].data = new_4;\n }\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n var width = wide ? 4 : 1;\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null || data[C].t == \"z\" && !((_c = data[C].c) == null ? void 0 : _c.length) || data[C].t == \"e\") {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset / width, true);\n _dv.setUint16(C * 2, _last_offset / width, true);\n var celload, _celload;\n switch (data[C].t) {\n case \"d\":\n if (data[C].v instanceof Date) {\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n }\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n case \"s\":\n case \"n\":\n case \"b\":\n case \"z\":\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n {\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n }\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n tri[5][0].data = write_varint49(5);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n tri[8] = [{ type: 0, data: write_varint49(wide ? 1 : 0) }];\n return tri;\n}\nfunction write_iwam(type, payload) {\n return {\n meta: [\n [],\n [{ type: 0, data: write_varint49(type) }]\n ],\n data: payload\n };\n}\nfunction get_unique_msgid(dep, dependents) {\n if (!dependents.last)\n dependents.last = 927262;\n for (var i = dependents.last; i < 2e6; ++i)\n if (!dependents[i]) {\n dependents[dependents.last = i] = dep;\n return i;\n }\n throw new Error(\"Too many messages\");\n}\nfunction build_numbers_deps(cfb) {\n var dependents = {};\n var indices = [];\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {\n indices.push(packet.id);\n dependents[packet.id] = { deps: [], location: fp, type: varint_to_i32(packet.messages[0].meta[1][0].data) };\n });\n });\n cfb.FileIndex.forEach(function(fi) {\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {\n ia.messages.forEach(function(mess) {\n [5, 6].forEach(function(f) {\n if (!mess.meta[f])\n return;\n mess.meta[f].forEach(function(x) {\n dependents[ia.id].deps.push(varint_to_i32(x.data));\n });\n });\n });\n });\n });\n return dependents;\n}\nfunction write_TSP_Color_RGB(r, g, b) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [{ type: 5, data: new Uint8Array(Float32Array.from([r / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([g / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([b / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([1]).buffer) }],\n [],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(1) }]\n ]);\n}\nfunction get_author_color(n) {\n switch (n) {\n case 0:\n return write_TSP_Color_RGB(99, 222, 171);\n case 1:\n return write_TSP_Color_RGB(162, 197, 240);\n case 2:\n return write_TSP_Color_RGB(255, 189, 189);\n }\n return write_TSP_Color_RGB(Math.random() * 255, Math.random() * 255, Math.random() * 255);\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n var deps = build_numbers_deps(cfb);\n var docroot = numbers_iwa_find(cfb, deps, 1);\n if (docroot == null)\n throw \"Could not find message \".concat(1, \" in Numbers template\");\n var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n if (sheetrefs.length > 1)\n throw new Error(\"Template NUMBERS file must have exactly one sheet\");\n wb.SheetNames.forEach(function(name, idx) {\n if (idx >= 1) {\n numbers_add_ws(cfb, deps, idx + 1);\n docroot = numbers_iwa_find(cfb, deps, 1);\n sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n }\n write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);\n });\n return cfb;\n}\nfunction numbers_iwa_doit(cfb, deps, id, cb) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n cb(ainfo, x);\n entry.content = compress_iwa_file(write_iwa_file(x));\n entry.size = entry.content.length;\n}\nfunction numbers_iwa_find(cfb, deps, id) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n return ainfo;\n}\nfunction numbers_add_meta(mlist, newid, newloc) {\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newid) }],\n [{ type: 2, data: stru8(newloc.replace(/-[\\s\\S]*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newid + 1, varint_to_i32(mlist[1][0].data))) }];\n}\nfunction numbers_add_msg(cfb, type, msg, path, deps, id) {\n if (!id)\n id = get_unique_msgid({ deps: [], location: \"\", type: type }, deps);\n var loc = \"\".concat(path, \"-\").concat(id, \".iwa\");\n deps[id].location = \"Root Entry\" + loc;\n CFB.utils.cfb_add(cfb, loc, compress_iwa_file(write_iwa_file([{\n id: id,\n messages: [write_iwam(type, write_shallow(msg))]\n }])));\n var newloc = loc.replace(/^[\\/]/, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, id || 0, newloc);\n ai.messages[0].data = write_shallow(mlist);\n });\n return id;\n}\nfunction numbers_meta_add_dep(mlist, deps, id, dep) {\n var loc = deps[id].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n (Array.isArray(dep) ? dep : [dep]).forEach(function(dep2) {\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(dep2) }]\n ])\n });\n });\n mlist[3][parentidx].data = write_shallow(parent);\n}\nfunction numbers_meta_del_dep(mlist, deps, id, dep) {\n var loc = deps[id].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6] = parent[6].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != dep;\n });\n mlist[3][parentidx].data = write_shallow(parent);\n}\nfunction numbers_add_ws(cfb, deps, wsidx) {\n var sheetref = -1, newsheetref = -1;\n var remap = {};\n numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {\n var doc = parse_shallow(docroot.messages[0].data);\n sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n newsheetref = get_unique_msgid({ deps: [1], location: deps[sheetref].location, type: 2 }, deps);\n remap[sheetref] = newsheetref;\n numbers_add_oref(docroot, newsheetref);\n doc[1].push({ type: 2, data: write_TSP_Reference(newsheetref) });\n var sheet = numbers_iwa_find(cfb, deps, sheetref);\n sheet.id = newsheetref;\n if (deps[1].location == deps[newsheetref].location)\n arch.push(sheet);\n else\n numbers_iwa_doit(cfb, deps, newsheetref, function(_, x) {\n return x.push(sheet);\n });\n docroot.messages[0].data = write_shallow(doc);\n });\n var tiaref = -1;\n numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {\n var sa = parse_shallow(sheetroot.messages[0].data);\n for (var i = 3; i <= 69; ++i)\n delete sa[i];\n var drawables = mappa(sa[2], parse_TSP_Reference);\n drawables.forEach(function(n) {\n return numbers_del_oref(sheetroot, n);\n });\n tiaref = get_unique_msgid({ deps: [newsheetref], location: deps[drawables[0]].location, type: deps[drawables[0]].type }, deps);\n numbers_add_oref(sheetroot, tiaref);\n remap[drawables[0]] = tiaref;\n sa[2] = [{ type: 2, data: write_TSP_Reference(tiaref) }];\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n tia.id = tiaref;\n if (deps[drawables[0]].location == deps[newsheetref].location)\n arch.push(tia);\n else {\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, newsheetref, tiaref);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_iwa_doit(cfb, deps, tiaref, function(_, x) {\n return x.push(tia);\n });\n }\n sheetroot.messages[0].data = write_shallow(sa);\n });\n var tmaref = -1;\n numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {\n var tia = parse_shallow(tiaroot.messages[0].data);\n var da = parse_shallow(tia[1][0].data);\n for (var i = 3; i <= 69; ++i)\n delete da[i];\n var dap = parse_TSP_Reference(da[2][0].data);\n da[2][0].data = write_TSP_Reference(remap[dap]);\n tia[1][0].data = write_shallow(da);\n var oldtmaref = parse_TSP_Reference(tia[2][0].data);\n numbers_del_oref(tiaroot, oldtmaref);\n tmaref = get_unique_msgid({ deps: [tiaref], location: deps[oldtmaref].location, type: deps[oldtmaref].type }, deps);\n numbers_add_oref(tiaroot, tmaref);\n remap[oldtmaref] = tmaref;\n tia[2][0].data = write_TSP_Reference(tmaref);\n var tma = numbers_iwa_find(cfb, deps, oldtmaref);\n tma.id = tmaref;\n if (deps[tiaref].location == deps[tmaref].location)\n arch.push(tma);\n else\n numbers_iwa_doit(cfb, deps, tmaref, function(_, x) {\n return x.push(tma);\n });\n tiaroot.messages[0].data = write_shallow(tia);\n });\n numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {\n var _a, _b;\n var tma = parse_shallow(tmaroot.messages[0].data);\n var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, \"-\".concat((\"0000\" + wsidx.toString(16)).slice(-4)));\n tma[1][0].data = stru8(new_uuid);\n [12, 13, 29, 31, 32, 33, 39, 44, 47, 81, 82, 84].forEach(function(n) {\n return delete tma[n];\n });\n if (tma[45]) {\n var srrta = parse_shallow(tma[45][0].data);\n var ref = parse_TSP_Reference(srrta[1][0].data);\n numbers_del_oref(tmaroot, ref);\n delete tma[45];\n }\n if (tma[70]) {\n var hsoa = parse_shallow(tma[70][0].data);\n (_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {\n var hsa = parse_shallow(item.data);\n [2, 3].map(function(n) {\n return hsa[n][0];\n }).forEach(function(hseadata) {\n var hsea = parse_shallow(hseadata.data);\n if (!hsea[8])\n return;\n var ref2 = parse_TSP_Reference(hsea[8][0].data);\n numbers_del_oref(tmaroot, ref2);\n });\n });\n delete tma[70];\n }\n [\n 46,\n 30,\n 34,\n 35,\n 36,\n 38,\n 48,\n 49,\n 60,\n 61,\n 62,\n 63,\n 64,\n 71,\n 72,\n 73,\n 74,\n 75,\n 85,\n 86,\n 87,\n 88,\n 89\n ].forEach(function(n) {\n if (!tma[n])\n return;\n var ref2 = parse_TSP_Reference(tma[n][0].data);\n delete tma[n];\n numbers_del_oref(tmaroot, ref2);\n });\n var store = parse_shallow(tma[4][0].data);\n {\n [2, 4, 5, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22].forEach(function(n) {\n var _a2;\n if (!((_a2 = store[n]) == null ? void 0 : _a2[0]))\n return;\n var oldref = parse_TSP_Reference(store[n][0].data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location)\n arch.push(msg);\n else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, newref, newloc);\n numbers_meta_add_dep(mlist, deps, tmaref, newref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n store[n][0].data = write_TSP_Reference(newref);\n });\n var row_headers = parse_shallow(store[1][0].data);\n {\n (_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {\n var oldref = parse_TSP_Reference(tspref.data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location) {\n arch.push(msg);\n } else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, newref, newloc);\n numbers_meta_add_dep(mlist, deps, tmaref, newref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tspref.data = write_TSP_Reference(newref);\n });\n }\n store[1][0].data = write_shallow(row_headers);\n var tiles = parse_shallow(store[3][0].data);\n {\n tiles[1].forEach(function(t) {\n var tst = parse_shallow(t.data);\n var oldtileref = parse_TSP_Reference(tst[2][0].data);\n var newtileref = remap[oldtileref];\n if (!remap[oldtileref]) {\n newtileref = get_unique_msgid({ deps: [tmaref], location: \"\", type: deps[oldtileref].type }, deps);\n deps[newtileref].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileref, \".iwa\");\n remap[oldtileref] = newtileref;\n var oldtile = numbers_iwa_find(cfb, deps, oldtileref);\n oldtile.id = newtileref;\n numbers_del_oref(tmaroot, oldtileref);\n numbers_add_oref(tmaroot, newtileref);\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileref, \".iwa\"), compress_iwa_file(write_iwa_file([oldtile])));\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileref)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data))) }];\n numbers_meta_add_dep(mlist, deps, tmaref, newtileref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tst[2][0].data = write_TSP_Reference(newtileref);\n t.data = write_shallow(tst);\n });\n }\n store[3][0].data = write_shallow(tiles);\n }\n tma[4][0].data = write_shallow(store);\n tmaroot.messages[0].data = write_shallow(tma);\n });\n}\nfunction write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {\n var drawables = [];\n numbers_iwa_doit(cfb, deps, rootref, function(docroot) {\n var sheetref = parse_shallow(docroot.messages[0].data);\n {\n sheetref[1] = [{ type: 2, data: stru8(wsname) }];\n drawables = mappa(sheetref[2], parse_TSP_Reference);\n }\n docroot.messages[0].data = write_shallow(sheetref);\n });\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x) {\n return write_numbers_tma(cfb, deps, ws, docroot, x, tmaref);\n });\n}\nvar USE_WIDE_ROWS = true;\nfunction write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {\n if (!ws[\"!ref\"])\n throw new Error(\"Cannot export empty sheet to NUMBERS\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 999) {\n trunc = true;\n range.e.c = 999;\n }\n if (range.e.r > 999999) {\n trunc = true;\n range.e.r = 999999;\n }\n if (trunc)\n console.error(\"Truncating to \".concat(encode_range(range)));\n var data = [];\n if (ws[\"!data\"])\n data = ws[\"!data\"];\n else {\n var colstr = [];\n for (var _C = 0; _C <= range.e.c; ++_C)\n colstr[_C] = encode_col(_C);\n for (var R_ = 0; R_ <= range.e.r; ++R_) {\n data[R_] = [];\n var _R = \"\" + (R_ + 1);\n for (_C = 0; _C <= range.e.c; ++_C) {\n var _cell = ws[colstr[_C] + _R];\n if (!_cell)\n continue;\n data[R_][_C] = _cell;\n }\n }\n }\n var LUT = {\n cmnt: [{ a: \"~54ee77S~\", t: \"... the people who are crazy enough to think they can change the world, are the ones who do.\" }],\n ferr: [],\n fmla: [],\n nfmt: [],\n ofmt: [],\n rsst: [{ v: \"~54ee77S~\", l: \"https://sheetjs.com/\" }],\n sst: [\"~Sh33tJ5~\"]\n };\n var pb = parse_shallow(tmaroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {\n var _a;\n var base_bucket = parse_shallow(rowhead.messages[0].data);\n if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0])\n for (var R2 = 0; R2 < data.length; ++R2) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R2);\n _bucket[4][0].data = write_varint49(data[R2].length);\n base_bucket[2][R2] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n rowhead.messages[0].data = write_shallow(base_bucket);\n });\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {\n var base_bucket = parse_shallow(colhead.messages[0].data);\n for (var C = 0; C <= range.e.c; ++C) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n colhead.messages[0].data = write_shallow(base_bucket);\n });\n var rbtree = parse_shallow(store[9][0].data);\n rbtree[1] = [];\n var tilestore = parse_shallow(store[3][0].data);\n {\n var tstride = 256;\n tilestore[2] = [{ type: 0, data: write_varint49(tstride) }];\n var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);\n var save_token = function() {\n var metadata = numbers_iwa_find(cfb, deps, 2);\n var mlist = parse_shallow(metadata.messages[0].data);\n var mlst = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) == tileref;\n });\n return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;\n }();\n {\n CFB.utils.cfb_del(cfb, deps[tileref].location);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3] = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n numbers_meta_del_dep(mlist, deps, tmaref, tileref);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_del_oref(tmaroot, tileref);\n }\n tilestore[1] = [];\n var ntiles = Math.ceil((range.e.r + 1) / tstride);\n for (var tidx = 0; tidx < ntiles; ++tidx) {\n var newtileid = get_unique_msgid({\n deps: [],\n location: \"\",\n type: 6002\n }, deps);\n deps[newtileid].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileid, \".iwa\");\n var tiledata = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride)) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride) }],\n [],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 0, data: write_varint49(USE_WIDE_ROWS ? 1 : 0) }]\n ];\n for (var R = tidx * tstride; R <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R) {\n var tilerow = write_TST_TileRowInfo(data[R], LUT, USE_WIDE_ROWS);\n tilerow[1][0].data = write_varint49(R - tidx * tstride);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tilestore[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx) }],\n [{ type: 2, data: write_TSP_Reference(newtileid) }]\n ]) });\n var newtile = {\n id: newtileid,\n messages: [write_iwam(6002, write_shallow(tiledata))]\n };\n var tilecontent = compress_iwa_file(write_iwa_file([newtile]));\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileid, \".iwa\"), tilecontent);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileid)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(save_token) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data))) }];\n numbers_meta_add_dep(mlist, deps, tmaref, newtileid);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, newtileid);\n rbtree[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx * tstride) }],\n [{ type: 0, data: write_varint49(tidx) }]\n ]) });\n }\n }\n store[3][0].data = write_shallow(tilestore);\n store[9][0].data = write_shallow(rbtree);\n store[10] = [{ type: 2, data: new Uint8Array([]) }];\n if (ws[\"!merges\"]) {\n var mergeid = get_unique_msgid({\n type: 6144,\n deps: [tmaref],\n location: deps[tmaref].location\n }, deps);\n tmafile.push({\n id: mergeid,\n messages: [write_iwam(6144, write_shallow([\n [],\n ws[\"!merges\"].map(function(m) {\n return { type: 2, data: write_shallow([\n [],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.s.r, m.s.c]).buffer) }]\n ]) }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.e.r - m.s.r + 1, m.e.c - m.s.c + 1]).buffer) }]\n ]) }]\n ]) };\n })\n ]))]\n });\n store[13] = [{ type: 2, data: write_TSP_Reference(mergeid) }];\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, tmaref, mergeid);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, mergeid);\n } else\n delete store[13];\n var sstref = parse_TSP_Reference(store[4][0].data);\n numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n LUT.sst.forEach(function(str, i) {\n if (i == 0)\n return;\n sstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 2, data: stru8(str) }]\n ]) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n });\n var rsstref = parse_TSP_Reference(store[17][0].data);\n numbers_iwa_doit(cfb, deps, rsstref, function(rsstroot) {\n var rsstdata = parse_shallow(rsstroot.messages[0].data);\n rsstdata[3] = [];\n var style_indices = [\n 904980,\n 903835,\n 903815,\n 903845\n ];\n LUT.rsst.forEach(function(rsst, i) {\n if (i == 0)\n return;\n var tswpsa = [\n [],\n [{ type: 0, data: new Uint8Array([5]) }],\n [],\n [{ type: 2, data: stru8(rsst.v) }]\n ];\n tswpsa[10] = [{ type: 0, data: new Uint8Array([1]) }];\n tswpsa[19] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 18, 2, 101, 110]) }];\n tswpsa[5] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 155, 149, 55]) }];\n tswpsa[2] = [{ type: 2, data: new Uint8Array([8, 148, 158, 55]) }];\n tswpsa[6] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n tswpsa[7] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 135, 149, 55]) }];\n tswpsa[8] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 165, 149, 55]) }];\n tswpsa[14] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n tswpsa[24] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n var tswpsaid = get_unique_msgid({ deps: [], location: \"\", type: 2001 }, deps);\n var tswpsarefs = [];\n if (rsst.l) {\n var newhlinkid = numbers_add_msg(cfb, 2032, [\n [],\n [],\n [{ type: 2, data: stru8(rsst.l) }]\n ], \"/Index/Tables/DataList\", deps);\n tswpsa[11] = [];\n var smartfield = [[], []];\n if (!smartfield[1])\n smartfield[1] = [];\n smartfield[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: write_TSP_Reference(newhlinkid) }]\n ]) });\n tswpsa[11][0] = { type: 2, data: write_shallow(smartfield) };\n tswpsarefs.push(newhlinkid);\n }\n numbers_add_msg(cfb, 2001, tswpsa, \"/Index/Tables/DataList\", deps, tswpsaid);\n numbers_iwa_doit(cfb, deps, tswpsaid, function(iwa) {\n style_indices.forEach(function(ref) {\n return numbers_add_oref(iwa, ref);\n });\n tswpsarefs.forEach(function(ref) {\n return numbers_add_oref(iwa, ref);\n });\n });\n var rtpaid = numbers_add_msg(cfb, 6218, [\n [],\n [{ type: 2, data: write_TSP_Reference(tswpsaid) }],\n [],\n [{ type: 2, data: new Uint8Array([13, 255, 255, 255, 0, 18, 10, 16, 255, 255, 1, 24, 255, 255, 255, 255, 7]) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, rtpaid, function(iwa) {\n return numbers_add_oref(iwa, tswpsaid);\n });\n rsstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [],\n [],\n [],\n [],\n [],\n [{ type: 2, data: write_TSP_Reference(rtpaid) }]\n ]) });\n numbers_add_oref(rsstroot, rtpaid);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, rsstref, rtpaid);\n numbers_meta_add_dep(mlist, deps, rtpaid, tswpsaid);\n numbers_meta_add_dep(mlist, deps, tswpsaid, tswpsarefs);\n numbers_meta_add_dep(mlist, deps, tswpsaid, style_indices);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n rsstroot.messages[0].data = write_shallow(rsstdata);\n });\n if (LUT.cmnt.length > 1) {\n var cmntref = parse_TSP_Reference(store[19][0].data);\n var authors = {}, iauthor = 0;\n numbers_iwa_doit(cfb, deps, cmntref, function(cmntroot) {\n var cmntdata = parse_shallow(cmntroot.messages[0].data);\n {\n cmntdata[3] = [];\n LUT.cmnt.forEach(function(cc, i) {\n if (i == 0)\n return;\n var replies = [];\n if (cc.replies)\n cc.replies.forEach(function(c) {\n if (!authors[c.a || \"\"])\n authors[c.a || \"\"] = numbers_add_msg(cfb, 212, [\n [],\n [{ type: 2, data: stru8(c.a || \"\") }],\n [{ type: 2, data: get_author_color(++iauthor) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ], \"/Index/Tables/DataList\", deps);\n var aaaid2 = authors[c.a || \"\"];\n var csaid2 = numbers_add_msg(cfb, 3056, [\n [],\n [{ type: 2, data: stru8(c.t || \"\") }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 1, data: new Uint8Array([0, 0, 0, 128, 116, 109, 182, 65]) }]\n ]) }],\n [{ type: 2, data: write_TSP_Reference(aaaid2) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, csaid2, function(iwa) {\n return numbers_add_oref(iwa, aaaid2);\n });\n replies.push(csaid2);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, csaid2, aaaid2);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n if (!authors[cc.a || \"\"])\n authors[cc.a || \"\"] = numbers_add_msg(cfb, 212, [\n [],\n [{ type: 2, data: stru8(cc.a || \"\") }],\n [{ type: 2, data: get_author_color(++iauthor) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ], \"/Index/Tables/DataList\", deps);\n var aaaid = authors[cc.a || \"\"];\n var csaid = numbers_add_msg(cfb, 3056, [\n [],\n [{ type: 2, data: stru8(cc.t || \"\") }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 1, data: new Uint8Array([0, 0, 0, 128, 116, 109, 182, 65]) }]\n ]) }],\n [{ type: 2, data: write_TSP_Reference(aaaid) }],\n replies.map(function(r) {\n return { type: 2, data: write_TSP_Reference(r) };\n }),\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(0) }]\n ]) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, csaid, function(iwa) {\n numbers_add_oref(iwa, aaaid);\n replies.forEach(function(r) {\n return numbers_add_oref(iwa, r);\n });\n });\n cmntdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [{ type: 2, data: write_TSP_Reference(csaid) }]\n ]) });\n numbers_add_oref(cmntroot, csaid);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, cmntref, csaid);\n numbers_meta_add_dep(mlist, deps, csaid, aaaid);\n if (replies.length)\n numbers_meta_add_dep(mlist, deps, csaid, replies);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n }\n cmntdata[2][0].data = write_varint49(LUT.cmnt.length + 1);\n cmntroot.messages[0].data = write_shallow(cmntdata);\n });\n }\n }\n pb[4][0].data = write_shallow(store);\n }\n tmaroot.messages[0].data = write_shallow(pb);\n}\nfunction fix_opts_func(defaults/*:Array<Array<any> >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction parse_sheet_legacy_drawing(sheet, type, zip, path, idx, opts, wb, comments) {\n\tif(!sheet || !sheet['!legdrawel']) return;\n\tvar dfile = resolve_path(sheet['!legdrawel'].Target, path);\n\tvar draw = getzipstr(zip, dfile, true);\n\tif(draw) parse_vml(utf8read(draw), sheet, comments||[]);\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar comments = [], tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t\tparse_sheet_legacy_drawing(_ws, stype, zip, path, idx, opts, wb, comments);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip, opts);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip, opts);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tvar index_zip = CFB.find(zip, 'Index.zip');\n\t\tif(index_zip) {\n\t\t\topts = dup(opts);\n\t\t\tdelete opts.type;\n\t\t\tif(typeof index_zip.content == \"string\") opts.type = \"binary\";\n\t\t\t// TODO: Bun buffer bug\n\t\t\tif(typeof Bun !== \"undefined\" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);\n\t\t\treturn readSync(index_zip.content, opts);\n\t\t}\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\", opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/[\\S\\s]*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\t// TODO: pass back content types metadata for xlsm/xlsx resolution\n\tout.bookType = xlsb ? \"xlsb\" : \"xlsx\";\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip_xlsb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"bin\";\n\tvar vbafmt = true;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_bin(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_bin(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_bin(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_bin(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tvar ww = write_theme(wb.Themes, opts);\n\tzip_add_file(zip, f, ww);\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_bin(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_bin());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array<number>*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\tif(typeof ArrayBuffer !== \"undefined\" && data instanceof ArrayBuffer) d = new Uint8Array(data);\n\td = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(1200, d.slice(2), 'str') : (\n\t\t(has_buf && Buffer.isBuffer(data)) ? data.slice(2).toString(\"utf16le\") :\n\t\t(typeof Uint8Array !== \"undefined\" && d instanceof Uint8Array) ? (\n\t\t\ttypeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\").decode(d.slice(2)) : utf16lereadu(d.slice(2))\n\t\t) : utf16leread(d.slice(2))\n\t);\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(o.codepage && typeof $cptable === \"undefined\") console.error(\"Codepage tables are not loaded. Non-ASCII characters may not give expected results\");\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return rtf_to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t\tcase 0x08: if(n[1] === 0xE7) throw new Error(\"Unsupported Multiplan 1.x file!\"); break;\n\t\tcase 0x0C:\n\t\t\tif(n[1] === 0xEC) throw new Error(\"Unsupported Multiplan 2.x file!\");\n\t\t\tif(n[1] === 0xED) throw new Error(\"Unsupported Multiplan 3.x file!\");\n\t\t\tbreak;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tswitch(opts.bookType) {\n\t\tcase \"ods\": return write_ods(wb, opts);\n\t\tcase \"numbers\": return write_numbers_iwa(wb, opts);\n\t\tcase \"xlsb\": return write_zip_xlsb(wb, opts);\n\t\tdefault: return write_zip_xlsx(wb, opts);\n\t}\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode_pass(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array<string>*/, header/*:number*/, hdr/*:Array<any>*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true, dense = (sheet[\"!data\"] != null);\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[\"!data\"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[cols[C] + rr];\n\t\tif(val == null || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'b':\n\t\t\tcase 'n': if(!val.z || !fmt_is_date(val.z)) break;\n\t\t\tv = numdate(v); // TODO: date1904 setting should also be stored in worksheet object\n\t\t\tif(typeof v == \"number\") break;\n\t\t\t/* falls through */\n\t\t\tcase 'd': if(!(o && (o.UTC||(o.raw === false)))) v = utc_to_local(new Date(v)); break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = (val.t === 'n' && typeof o.rawNumbers === 'boolean' ? o.rawNumbers : raw) ? v : format_cell(val, v, o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array<any>*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array<string>*/ = [];\n\tvar out/*:Array<any>*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array<string>*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array<string>*/ = [], txt = \"\", rr = encode_row(R);\n\tvar dense = sheet[\"!data\"] != null;\n\tvar datarow = dense && sheet[\"!data\"][R] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = dense ? datarow[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.strip) while(row[row.length - 1] === \"\") --row.length;\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar row = \"\", cols/*:Array<string>*/ = [];\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array<string>*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array<string>*/ = [], C;\n\tvar cmds/*:Array<string>*/ = [];\n\tvar dense = sheet[\"!data\"] != null;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array<any>*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({});\n\tif(!_ws && dense) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array<string>*/ = o.header || [], C = 0;\n\tvar ROW = [];\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tif(dense && !ws[\"!data\"][_R + R + offset]) ws[\"!data\"][_R + R + offset] = [];\n\t\tif(dense) ROW = ws[\"!data\"][_R + R + offset];\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = dense ? \"\" : (encode_col(_C + C) + encode_row(_R + R + offset));\n\t\t\tvar cell/*:Cell*/ = dense ? ROW[_C + C] : ws[ref];\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tif(dense) ROW[_C + C] = v;\n\t\t\t\telse ws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.UTC) v = local_to_utc(v);\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (cell != null && cell.z && fmt_is_date(cell.z)) ? cell.z : (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) {\n\t\t\t\t\tif(!dense) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t\telse ROW[_C + C] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t} else {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(dense && !ws[\"!data\"][_R]) ws[\"!data\"][_R] = [];\n\tif(offset) for(C = 0; C < hdr.length; ++C) {\n\t\tif(dense) ws[\"!data\"][_R][C + _C] = {t:'s', v:hdr[C]};\n\t\telse ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\t}\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array<any>*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\tif(ws[\"!data\"] != null) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[\"!data\"][RC.r]) ws[\"!data\"][RC.r] = [];\n\t\t\treturn ws[\"!data\"][RC.r][RC.c] || (ws[\"!data\"][RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_col(C||0) + encode_row(R));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank or single-sheet workbook object */\nfunction book_new(ws/*:?Worksheet*/, wsname/*:?string*/)/*:Workbook*/ {\n\tvar wb = { SheetNames: [], Sheets: {} };\n\tif(ws) book_append_sheet(wb, ws, wsname || \"Sheet1\");\n\treturn wb;\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0 && name.length < 32) {\n\t\tvar m = name.match(/\\d+$/); // at this point, name length is capped at 32\n\t\ti = m && +m[0] || 0;\n\t\tvar root = m && name.slice(0, m.index) || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\tvar wsr = decode_range(ws[\"!ref\"]);\n\tif(wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;\n\tif(wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;\n\tif(wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;\n\tif(wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;\n\tws[\"!ref\"] = encode_range(wsr);\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_new: sheet_new,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar row/*:?string*/ = \"\", cols/*:Array<string>*/ = [];\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<RowInfo>*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"</table>\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array<any>*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array<string>*/ = [];\n\tvar counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array<ColInfo>*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array<RowInfo>*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n\tset_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\nexport default {\n\tparse_xlscfb,\n\tparse_zip,\n\tread: readSync,\n\treadFile: readFileSync,\n\treadFileSync,\n\twrite: writeSync,\n\twriteFile: writeFileSync,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteXLSX: writeSyncXLSX,\n\twriteFileXLSX: writeFileSyncXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\tstream: __stream,\n\tSSF,\n\tCFB\n}\n","export default [\n{ \"name\": \"Afghanistan\", \"code\": \"93\" },\n{ \"name\": \"Albania\", \"code\": \"355\" },\n{ \"name\": \"Algeria\", \"code\": \"213\" },\n{ \"name\": \"American Samoa\", \"code\": \"1-684\" },\n{ \"name\": \"Andorra\", \"code\": \"376\" },\n{ \"name\": \"Angola\", \"code\": \"244\" },\n{ \"name\": \"Anguilla\", \"code\": \"1-264\" },\n{ \"name\": \"Antarctica\", \"code\": \"672\" },\n{ \"name\": \"Antigua and Barbuda\", \"code\": \"1-268\" },\n{ \"name\": \"Argentina\", \"code\": \"54\" },\n{ \"name\": \"Armenia\", \"code\": \"374\" },\n{ \"name\": \"Aruba\", \"code\": \"297\" },\n{ \"name\": \"Australia\", \"code\": \"61\" },\n{ \"name\": \"Austria\", \"code\": \"43\" },\n{ \"name\": \"Azerbaijan\", \"code\": \"994\" },\n{ \"name\": \"Bahamas\", \"code\": \"1-242\" },\n{ \"name\": \"Bahrain\", \"code\": \"973\" },\n{ \"name\": \"Bangladesh\", \"code\": \"880\" },\n{ \"name\": \"Barbados\", \"code\": \"1-246\" },\n{ \"name\": \"Belarus\", \"code\": \"375\" },\n{ \"name\": \"Belgium\", \"code\": \"32\" },\n{ \"name\": \"Belize\", \"code\": \"501\" },\n{ \"name\": \"Benin\", \"code\": \"229\" },\n{ \"name\": \"Bermuda\", \"code\": \"1-441\" },\n{ \"name\": \"Bhutan\", \"code\": \"975\" },\n{ \"name\": \"Bolivia\", \"code\": \"591\" },\n{ \"name\": \"Bosnia and Herzegovina\", \"code\": \"387\" },\n{ \"name\": \"Botswana\", \"code\": \"267\" },\n{ \"name\": \"Brazil\", \"code\": \"55\" },\n{ \"name\": \"British Indian Ocean Territory\", \"code\": \"246\" },\n{ \"name\": \"British Virgin Islands\", \"code\": \"1-284\" },\n{ \"name\": \"Brunei\", \"code\": \"673\" },\n{ \"name\": \"Bulgaria\", \"code\": \"359\" },\n{ \"name\": \"Burkina Faso\", \"code\": \"226\" },\n{ \"name\": \"Burundi\", \"code\": \"257\" },\n{ \"name\": \"Cambodia\", \"code\": \"855\" },\n{ \"name\": \"Cameroon\", \"code\": \"237\" },\n{ \"name\": \"Canada\", \"code\": \"1\" },\n{ \"name\": \"Cape Verde\", \"code\": \"238\" },\n{ \"name\": \"Cayman Islands\", \"code\": \"1-345\" },\n{ \"name\": \"Central African Republic\", \"code\": \"236\" },\n{ \"name\": \"Chad\", \"code\": \"235\" },\n{ \"name\": \"Chile\", \"code\": \"56\" },\n{ \"name\": \"China\", \"code\": \"86\" },\n{ \"name\": \"Christmas Island\", \"code\": \"61\" },\n{ \"name\": \"Cocos Islands\", \"code\": \"61\" },\n{ \"name\": \"Colombia\", \"code\": \"57\" },\n{ \"name\": \"Comoros\", \"code\": \"269\" },\n{ \"name\": \"Cook Islands\", \"code\": \"682\" },\n{ \"name\": \"Costa Rica\", \"code\": \"506\" },\n{ \"name\": \"Croatia\", \"code\": \"385\" },\n{ \"name\": \"Cuba\", \"code\": \"53\" },\n{ \"name\": \"Curacao\", \"code\": \"599\" },\n{ \"name\": \"Cyprus\", \"code\": \"357\" },\n{ \"name\": \"Czech Republic\", \"code\": \"420\" },\n{ \"name\": \"Democratic Republic of the Congo\", \"code\": \"243\" },\n{ \"name\": \"Denmark\", \"code\": \"45\" },\n{ \"name\": \"Djibouti\", \"code\": \"253\" },\n{ \"name\": \"Dominica\", \"code\": \"1-767\" },\n{ \"name\": \"Dominican Republic\", \"code\": \"1-809, 1-829, 1-849\" },\n{ \"name\": \"East Timor\", \"code\": \"670\" },\n{ \"name\": \"Ecuador\", \"code\": \"593\" },\n{ \"name\": \"Egypt\", \"code\": \"20\" },\n{ \"name\": \"El Salvador\", \"code\": \"503\" },\n{ \"name\": \"Equatorial Guinea\", \"code\": \"240\" },\n{ \"name\": \"Eritrea\", \"code\": \"291\" },\n{ \"name\": \"Estonia\", \"code\": \"372\" },\n{ \"name\": \"Ethiopia\", \"code\": \"251\" },\n{ \"name\": \"Falkland Islands\", \"code\": \"500\" },\n{ \"name\": \"Faroe Islands\", \"code\": \"298\" },\n{ \"name\": \"Fiji\", \"code\": \"679\" },\n{ \"name\": \"Finland\", \"code\": \"358\" },\n{ \"name\": \"France\", \"code\": \"33\" },\n{ \"name\": \"French Polynesia\", \"code\": \"689\" },\n{ \"name\": \"Gabon\", \"code\": \"241\" },\n{ \"name\": \"Gambia\", \"code\": \"220\" },\n{ \"name\": \"Georgia\", \"code\": \"995\" },\n{ \"name\": \"Germany\", \"code\": \"49\" },\n{ \"name\": \"Ghana\", \"code\": \"233\" },\n{ \"name\": \"Gibraltar\", \"code\": \"350\" },\n{ \"name\": \"Greece\", \"code\": \"30\" },\n{ \"name\": \"Greenland\", \"code\": \"299\" },\n{ \"name\": \"Grenada\", \"code\": \"1-473\" },\n{ \"name\": \"Guam\", \"code\": \"1-671\" },\n{ \"name\": \"Guatemala\", \"code\": \"502\" },\n{ \"name\": \"Guernsey\", \"code\": \"44-1481\" },\n{ \"name\": \"Guinea\", \"code\": \"224\" },\n{ \"name\": \"Guinea-Bissau\", \"code\": \"245\" },\n{ \"name\": \"Guyana\", \"code\": \"592\" },\n{ \"name\": \"Haiti\", \"code\": \"509\" },\n{ \"name\": \"Honduras\", \"code\": \"504\" },\n{ \"name\": \"Hong Kong\", \"code\": \"852\" },\n{ \"name\": \"Hungary\", \"code\": \"36\" },\n{ \"name\": \"Iceland\", \"code\": \"354\" },\n{ \"name\": \"India\", \"code\": \"91\" },\n{ \"name\": \"Indonesia\", \"code\": \"62\" },\n{ \"name\": \"Iran\", \"code\": \"98\" },\n{ \"name\": \"Iraq\", \"code\": \"964\" },\n{ \"name\": \"Ireland\", \"code\": \"353\" },\n{ \"name\": \"Isle of Man\", \"code\": \"44-1624\" },\n{ \"name\": \"Israel\", \"code\": \"972\" },\n{ \"name\": \"Italy\", \"code\": \"39\" },\n{ \"name\": \"Ivory Coast\", \"code\": \"225\" },\n{ \"name\": \"Jamaica\", \"code\": \"1-876\" },\n{ \"name\": \"Japan\", \"code\": \"81\" },\n{ \"name\": \"Jersey\", \"code\": \"44-1534\" },\n{ \"name\": \"Jordan\", \"code\": \"962\" },\n{ \"name\": \"Kazakhstan\", \"code\": \"7\" },\n{ \"name\": \"Kenya\", \"code\": \"254\" },\n{ \"name\": \"Kiribati\", \"code\": \"686\" },\n{ \"name\": \"Kosovo\", \"code\": \"383\" },\n{ \"name\": \"Kuwait\", \"code\": \"965\" },\n{ \"name\": \"Kyrgyzstan\", \"code\": \"996\" },\n{ \"name\": \"Laos\", \"code\": \"856\" },\n{ \"name\": \"Latvia\", \"code\": \"371\" },\n{ \"name\": \"Lebanon\", \"code\": \"961\" },\n{ \"name\": \"Lesotho\", \"code\": \"266\" },\n{ \"name\": \"Liberia\", \"code\": \"231\" },\n{ \"name\": \"Libya\", \"code\": \"218\" },\n{ \"name\": \"Liechtenstein\", \"code\": \"423\" },\n{ \"name\": \"Lithuania\", \"code\": \"370\" },\n{ \"name\": \"Luxembourg\", \"code\": \"352\" },\n{ \"name\": \"Macau\", \"code\": \"853\" },\n{ \"name\": \"Macedonia\", \"code\": \"389\" },\n{ \"name\": \"Madagascar\", \"code\": \"261\" },\n{ \"name\": \"Malawi\", \"code\": \"265\" },\n{ \"name\": \"Malaysia\", \"code\": \"60\" },\n{ \"name\": \"Maldives\", \"code\": \"960\" },\n{ \"name\": \"Mali\", \"code\": \"223\" },\n{ \"name\": \"Malta\", \"code\": \"356\" },\n{ \"name\": \"Marshall Islands\", \"code\": \"692\" },\n{ \"name\": \"Mauritania\", \"code\": \"222\" },\n{ \"name\": \"Mauritius\", \"code\": \"230\" },\n{ \"name\": \"Mayotte\", \"code\": \"262\" },\n{ \"name\": \"Mexico\", \"code\": \"52\" },\n{ \"name\": \"Micronesia\", \"code\": \"691\" },\n{ \"name\": \"Moldova\", \"code\": \"373\" },\n{ \"name\": \"Monaco\", \"code\": \"377\" },\n{ \"name\": \"Mongolia\", \"code\": \"976\" },\n{ \"name\": \"Montenegro\", \"code\": \"382\" },\n{ \"name\": \"Montserrat\", \"code\": \"1-664\" },\n{ \"name\": \"Morocco\", \"code\": \"212\" },\n{ \"name\": \"Mozambique\", \"code\": \"258\" },\n{ \"name\": \"Myanmar\", \"code\": \"95\" },\n{ \"name\": \"Namibia\", \"code\": \"264\" },\n{ \"name\": \"Nauru\", \"code\": \"674\" },\n{ \"name\": \"Nepal\", \"code\": \"977\" },\n{ \"name\": \"Netherlands\", \"code\": \"31\" },\n{ \"name\": \"Netherlands Antilles\", \"code\": \"599\" },\n{ \"name\": \"New Caledonia\", \"code\": \"687\" },\n{ \"name\": \"New Zealand\", \"code\": \"64\" },\n{ \"name\": \"Nicaragua\", \"code\": \"505\" },\n{ \"name\": \"Niger\", \"code\": \"227\" },\n{ \"name\": \"Nigeria\", \"code\": \"234\" },\n{ \"name\": \"Niue\", \"code\": \"683\" },\n{ \"name\": \"North Korea\", \"code\": \"850\" },\n{ \"name\": \"Northern Mariana Islands\", \"code\": \"1-670\" },\n{ \"name\": \"Norway\", \"code\": \"47\" },\n{ \"name\": \"Oman\", \"code\": \"968\" },\n{ \"name\": \"Pakistan\", \"code\": \"92\" },\n{ \"name\": \"Palau\", \"code\": \"680\" },\n{ \"name\": \"Palestine\", \"code\": \"970\" },\n{ \"name\": \"Panama\", \"code\": \"507\" },\n{ \"name\": \"Papua New Guinea\", \"code\": \"675\" },\n{ \"name\": \"Paraguay\", \"code\": \"595\" },\n{ \"name\": \"Peru\", \"code\": \"51\" },\n{ \"name\": \"Philippines\", \"code\": \"63\" },\n{ \"name\": \"Pitcairn\", \"code\": \"64\" },\n{ \"name\": \"Poland\", \"code\": \"48\" },\n{ \"name\": \"Portugal\", \"code\": \"351\" },\n{ \"name\": \"Puerto Rico\", \"code\": \"1-787, 1-939\" },\n{ \"name\": \"Qatar\", \"code\": \"974\" },\n{ \"name\": \"Republic of the Congo\", \"code\": \"242\" },\n{ \"name\": \"Reunion\", \"code\": \"262\" },\n{ \"name\": \"Romania\", \"code\": \"40\" },\n{ \"name\": \"Russia\", \"code\": \"7\" },\n{ \"name\": \"Rwanda\", \"code\": \"250\" },\n{ \"name\": \"Saint Barthelemy\", \"code\": \"590\" },\n{ \"name\": \"Saint Helena\", \"code\": \"290\" },\n{ \"name\": \"Saint Kitts and Nevis\", \"code\": \"1-869\" },\n{ \"name\": \"Saint Lucia\", \"code\": \"1-758\" },\n{ \"name\": \"Saint Martin\", \"code\": \"590\" },\n{ \"name\": \"Saint Pierre and Miquelon\", \"code\": \"508\" },\n{ \"name\": \"Saint Vincent and the Grenadines\", \"code\": \"1-784\" },\n{ \"name\": \"Samoa\", \"code\": \"685\" },\n{ \"name\": \"San Marino\", \"code\": \"378\" },\n{ \"name\": \"Sao Tome and Principe\", \"code\": \"239\" },\n{ \"name\": \"Saudi Arabia\", \"code\": \"966\" },\n{ \"name\": \"Senegal\", \"code\": \"221\" },\n{ \"name\": \"Serbia\", \"code\": \"381\" },\n{ \"name\": \"Seychelles\", \"code\": \"248\" },\n{ \"name\": \"Sierra Leone\", \"code\": \"232\" },\n{ \"name\": \"Singapore\", \"code\": \"65\" },\n{ \"name\": \"Sint Maarten\", \"code\": \"1-721\" },\n{ \"name\": \"Slovakia\", \"code\": \"421\" },\n{ \"name\": \"Slovenia\", \"code\": \"386\" },\n{ \"name\": \"Solomon Islands\", \"code\": \"677\" },\n{ \"name\": \"Somalia\", \"code\": \"252\" },\n{ \"name\": \"South Africa\", \"code\": \"27\" },\n{ \"name\": \"South Korea\", \"code\": \"82\" },\n{ \"name\": \"South Sudan\", \"code\": \"211\" },\n{ \"name\": \"Spain\", \"code\": \"34\" },\n{ \"name\": \"Sri Lanka\", \"code\": \"94\" },\n{ \"name\": \"Sudan\", \"code\": \"249\" },\n{ \"name\": \"Suriname\", \"code\": \"597\" },\n{ \"name\": \"Svalbard and Jan Mayen\", \"code\": \"47\" },\n{ \"name\": \"Swaziland\", \"code\": \"268\" },\n{ \"name\": \"Sweden\", \"code\": \"46\" },\n{ \"name\": \"Switzerland\", \"code\": \"41\" },\n{ \"name\": \"Syria\", \"code\": \"963\" },\n{ \"name\": \"Taiwan\", \"code\": \"886\" },\n{ \"name\": \"Tajikistan\", \"code\": \"992\" },\n{ \"name\": \"Tanzania\", \"code\": \"255\" },\n{ \"name\": \"Thailand\", \"code\": \"66\" },\n{ \"name\": \"Togo\", \"code\": \"228\" },\n{ \"name\": \"Tokelau\", \"code\": \"690\" },\n{ \"name\": \"Tonga\", \"code\": \"676\" },\n{ \"name\": \"Trinidad and Tobago\", \"code\": \"1-868\" },\n{ \"name\": \"Tunisia\", \"code\": \"216\" },\n{ \"name\": \"Turkey\", \"code\": \"90\" },\n{ \"name\": \"Turkmenistan\", \"code\": \"993\" },\n{ \"name\": \"Turks and Caicos Islands\", \"code\": \"1-649\" },\n{ \"name\": \"Tuvalu\", \"code\": \"688\" },\n{ \"name\": \"U.S. Virgin Islands\", \"code\": \"1-340\" },\n{ \"name\": \"Uganda\", \"code\": \"256\" },\n{ \"name\": \"Ukraine\", \"code\": \"380\" },\n{ \"name\": \"United Arab Emirates\", \"code\": \"971\" },\n{ \"name\": \"United Kingdom\", \"code\": \"44\" },\n{ \"name\": \"United States\", \"code\": \"1\" },\n{ \"name\": \"Uruguay\", \"code\": \"598\" },\n{ \"name\": \"Uzbekistan\", \"code\": \"998\" },\n{ \"name\": \"Vanuatu\", \"code\": \"678\" },\n{ \"name\": \"Vatican\", \"code\": \"379\" },\n{ \"name\": \"Venezuela\", \"code\": \"58\" },\n{ \"name\": \"Vietnam\", \"code\": \"84\" },\n{ \"name\": \"Wallis and Futuna\", \"code\": \"681\" },\n{ \"name\": \"Western Sahara\", \"code\": \"212\" },\n{ \"name\": \"Yemen\", \"code\": \"967\" },\n{ \"name\": \"Zambia\", \"code\": \"260\" },\n{ \"name\": \"Zimbabwe\", \"code\": \"263\" },\n]","import { getterTree, mutationTree, actionTree } from 'typed-vuex'\nimport { $storex } from './index'\n\nimport XLSX from \"xlsx\"\nimport COUNTRY_CODES from './countryCodes'\n\nexport const namespaced = true\n\nexport const state = () => ({\n authenticated: false,\n user: null,\n vouchers: {}\n})\n\nexport const getters = getterTree(state, {\n countryCodes: () => COUNTRY_CODES\n})\n\nexport const mutations = mutationTree(state, {\n async onSignup (state, { authenticated, user }) {\n },\n setVoucher (state, voucher) {\n state.vouchers = {\n ...state.vouchers,\n [voucher.booking_id]: voucher\n }\n }\n})\n\n \nexport const actions = actionTree(\n { state, getters, mutations },\n {\n init () {\n },\n async search (_, filters){\n let searchFn = $storex.api.suppliers.bookings.search\n if (filters.agencyOrProviderSelector === 'agency') {\n searchFn = $storex.api.agencies.bookings.search\n }\n const { data: bookings } = await searchFn(filters)\n // Dirty fix for \"{}\" values '(\n const removeSillyValues = b => Object.keys(b)\n .reduce((acc, key) => {\n let value = b[key]\n if (value && typeof(value) === 'object' &&\n Object.keys(value).length === 0) {\n value = null\n }\n if (`${value}` === \"{}\") {\n value = null\n }\n acc[key] = value\n return acc\n }, {})\n\n return bookings.map(removeSillyValues)\n },\n exportExcel (_, bookingList) {\n const cleanRows = bookingList\n .map(booking => ({\n ...booking,\n idBooking: `OWT-${booking.idBooking}`,\n DateCreated: `${booking.DateCreated || \"\"}`.split(\"T\")[0],\n TravelDate: `${booking.TravelDate || \"\"}`.split(\"T\")[0],\n DateCancellation: `${booking.DateCancellation || \"\"}`.split(\"T\")[0],\n Phone: `${booking.Phone}`.split(\" \")[0].replace(\"'\", \"\"),\n PhoneType: `${booking.Phone}`.split(\" \")[1]\n }))\n const worksheet = XLSX.utils.json_to_sheet(cleanRows)\n const workbook = XLSX.utils.book_new()\n XLSX.utils.book_append_sheet(workbook, worksheet, \"Bookings\")\n XLSX.writeFile(workbook, \"Bookings.xlsx\", { compression: true })\n },\n async loadBooking ({ state: { vouchers } }, bookingId) {\n if (vouchers[bookingId]) {\n return vouchers[bookingId]\n }\n const { data: bookingVoucher } = await $storex.api.transfers.booking(bookingId)\n if (bookingVoucher.booking_id) {\n $storex.bookings.setVoucher(bookingVoucher)\n }\n return bookingVoucher\n },\n async cancelBooking(_, bookingId) {\n const { data } = await $storex.api.transfers.cancelBooking(bookingId)\n },\n async emailBooking(_, { bookingId, email }) {\n await $storex.api.transfers.emailBooking(bookingId, email)\n }\n }\n)","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","import moment from 'moment'\nimport { getterTree, mutationTree, actionTree } from 'typed-vuex'\nimport { $storex } from './index'\n\n\nexport const namespaced = true\n\nlet lastSearch = null\ntry {\n lastSearch = JSON.parse(localStorage.getItem(\"lastTransferSearch\"))\n} catch (ex){}\n\n\nconst SEARCH_KEYS = [\n \"from\",\n \"to\",\n \"date\",\n \"time\",\n \"adults\",\n \"children\",\n \"infants\",\n \"baby_seats\",\n \"booster_seats\",\n \"sale_currency\"\n]\n\nfunction getDestinationValue (destination) {\n if (Number.isInteger(destination)) {\n return destination\n }\n \n if (Array.isArray(destination)) {\n return JSON.stringify(destination) \n }\n\n if (destination.idZone) {\n return destination.idZone\n }\n return JSON.stringify([destination.location.latitude, destination.location.longitude])\n}\n\nfunction parseQueryValue (val) {\n try {\n return JSON.parse(val)\n } catch {}\n return val\n}\n\nfunction parseVehicleResult(vehicle, search) {\n const transferData = {\n contract_line_id: 38875,\n supplier_currency: \"EUR\",\n sale_currency: \"EUR\",\n price_type: \"Vehicle\",\n vehicle_description: \"Private car - Economy\",\n vehicle_class: \"Economy\",\n vehicle_type: \"Sedan\",\n journey_time_mins: 143,\n pickup_time_recommended: \"2024-06-19T17:52:00\",\n luggage_allowance: 3,\n max_passengers: 3,\n meet_greet: false,\n driver_wait_mins: 60,\n base_price: \"69.00\",\n sale_price: \"69.00\",\n dateTime: \"2024-06-19T15:52:00.000Z\"\n };\n \n const searchQuery = [\n ...Object.keys(transferData).map(key => `${key}=${encodeURIComponent(vehicle[key])}`),\n ...Object.keys(search).map(key => `${key}=${encodeURIComponent(JSON.stringify(search[key]))}`)\n ].join(\"&\")\n return { ...vehicle, searchQuery }\n}\n\nexport const state = () => ({\n lastSearch: lastSearch ? { search: lastSearch, results: null } : null,\n user: null,\n searching: false\n})\n\nexport const getters = getterTree(state, {\n})\n\nexport const mutations = mutationTree(state, {\n async setLastSearch (state, lastSearch) {\n const { search, results } = lastSearch\n localStorage.setItem(\"lastTransferSearch\", search ? JSON.stringify(search): {})\n if (search) {\n const searchQuery = {\n ...search,\n from: search.from.name,\n to: search.to.name\n }\n lastSearch.searchQuery = searchQuery\n }\n if (results?.vehicles) {\n const { from, to, date, time } = { ...search }\n const apiSearch = {\n from,\n to,\n travel_date: `${date}T${time}`,\n date,\n time,\n adults: search.adults,\n children: search.children,\n infants: search.infants,\n baby_seats: search.baby_seats,\n booster_seats: search.booster_seats,\n }\n results.vehicles = results.vehicles.map(vehicle => parseVehicleResult(vehicle, apiSearch))\n } else {\n lastSearch.results = null\n }\n state.lastSearch = lastSearch\n },\n setSearching (state, value) {\n state.searching = value\n }\n})\n\nexport const actions = actionTree(\n { state, getters, mutations },\n {\n init () {\n },\n async searchFromLink (_, query) {\n const search = SEARCH_KEYS.reduce((acc, key) => ({\n ...acc,\n [key]: parseQueryValue(query[key])\n }), {})\n return $storex.search.search(search)\n },\n async search (_, search){\n const { from, to, date, time, travel_date } = search\n \n const apiSearch = {\n ...search,\n from: getDestinationValue(from),\n to: getDestinationValue(to),\n travel_date: travel_date || `${date}T${time}`\n }\n console.log(\"Searching\", apiSearch)\n $storex.search.setSearching(true)\n try {\n const { data } = await $storex.api.transfers.search(apiSearch)\n data.vehicles?.forEach(v => {\n const { vehicle_type } = v\n switch (vehicle_type.toLowerCase()) {\n case \"minivan\":\n v.vehicle_icon = \"fa-solid fa-van-shuttle\"\n break;\n default:\n v.vehicle_icon = \"fa-solid fa-car\"\n }\n v.dateTime = moment(v.pickup_time_recommended)\n })\n $storex.search.setLastSearch({ search, results: data })\n return data\n } catch (error) {\n $storex.search.setLastSearch({ search, error })\n } finally {\n $storex.search.setSearching(false)\n }\n } \n }\n)","import { getterTree, mutationTree, actionTree } from 'typed-vuex'\nimport { $storex } from './index'\n\nexport const namespaced = true\n\n\nfunction getLastSearches () {\n try {\n const searches = JSON.parse(localStorage.getItem(\"lastAIPrompts\"))\n if (Object.keys(searches).length) {\n return searches\n }\n } catch {}\n return {}\n}\n\nfunction setLastSearches (searches) {\n try {\n localStorage.setItem(\"lastAIPrompts\", JSON.stringify(searches))\n } catch {}\n}\n\nexport const state = () => ({\n})\n\nexport const getters = getterTree(state, {\n lastSearches: getLastSearches\n})\n\nexport const mutations = mutationTree(state, {\n})\n\nexport const actions = actionTree(\n { state, getters, mutations },\n {\n async init () {\n },\n async assistant (_, { prompt, noCache }) {\n const lastSearches = noCache ? {} : getLastSearches()\n const body = document.body.outerHTML\n let data = lastSearches[prompt]\n if (!data) {\n const res = await $storex.api.ai({ prompt, body })\n data = res.data\n }\n console.log(\"AI JS instructions\", data)\n if (data.jsInstructions) {\n try {\n const newFn = new Function(`${data.jsInstructions}`)\n console.log(\"JS instructions\", newFn.toString())\n newFn()\n if (!lastSearches[prompt]) {\n setLastSearches({\n ...lastSearches,\n [prompt]: data\n })\n }\n } catch (ex) {\n console.error(ex)\n }\n }\n },\n async register (_, { email, company }) {\n }\n }\n)","import { createStore, Store } from 'vuex'\nimport {\n useAccessor,\n mutationTree\n} from 'typed-vuex'\nimport api from '../api'\nimport * as i18n from '../i18n'\n\n\nimport * as user from './user'\nimport * as bookings from './bookings'\nimport * as search from './search'\nimport * as ai from './ai'\n\n\nconst modules = { user, bookings, search, ai }\n\nconst state = () => ({\n loading: false,\n currentLanguage: i18n.getCurrentLanguage()\n})\n\nconst mutations = mutationTree(state, {\n setLoading(state, loading) {\n state.loading = loading\n },\n setCurrentLanguage(state, language) {\n i18n.setLanguage(language)\n state.currentLanguage = i18n.getCurrentLanguage()\n }\n})\n\nconst storePattern = {\n state,\n mutations,\n modules,\n}\n\nconst store = createStore(storePattern)\n\nexport const $storex = useAccessor(store, storePattern)\n\n$storex.store = new Store()\n$storex.api = api\n$storex.i18n = i18n\nwindow.$storex = $storex\n\n$storex.user.init()\n\nexport default store","<script setup>\nimport ThemeSelectorVue from \"./ThemeSelector.vue\";\n</script>\n<template>\n <div class=\"flex flex-col h-full w-60 p-6 bg-base-200\">\n <div>\n <img class=\"w-full\" src=\"/logo_long.png\" />\n <div class=\"flex gap-2 justify-end\">\n <div class=\"badge badge-warning badge-xs\" v-if=\"$user.agency\">{{ $user[\"api-domain\"] }}</div>\n <div class=\"badge badge-neutral text-neutral-content badge-xs\">{{ $user.role }}</div>\n </div>\n </div>\n <div class=\"mt-8 pl-6 grow flex flex-col w-full\">\n <div class=\"hidden flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md mb-6\" @click=\"$router.push({ path: '/' })\">\n <i class=\"fa-solid fa-home\"></i>\n Home\n </div>\n <div class=\"flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md\" @click=\"$router.push({ path: '/admin' })\" v-if=\"$storex.user.isAdmin\">\n <i class=\"fa-solid fa-gear\"></i>\n Admin\n </div>\n <div class=\"flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md\" @click=\"$router.push({ path: '/search' })\" v-if=\"$user.agency\">\n <i class=\"fa-solid fa-route\"></i>\n New Booking\n </div>\n <div class=\"flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md\" @click=\"$router.push({ path: '/bookings' })\" v-if=\"showBookings\">\n <i class=\"fa-solid fa-file-invoice\"></i>\n My Bookings\n </div>\n <div class=\"flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md\" @click=\"$router.push({ path: '/places' })\">\n <i class=\"fa-solid fa-map-marker\"></i>\n Places\n </div>\n <div class=\"hidden flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md\" @click=\"$router.push({ path: '/support' })\">\n <i class=\"fa-regular fa-envelope\"></i>\n Support\n </div>\n <div class=\"grow\"></div>\n <div class=\"hidden flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md\" @click=\"$router.push({ path: '/profile' })\">\n <i class=\"fa-regular fa-id-badge\"></i>\n Profile\n </div>\n <div class=\"flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md text-xs\">\n <a :href=\"$router.resolve({name: 'termsandconds'}).href\" target=\"_blank\">Terms and Conditions</a>\n </div>\n <div class=\"flex gap-6 items-center p-2 click hover:bg-base-300/30 rounded-md text-xs\">\n <a :href=\"$router.resolve({name: 'privacy'}).href\" target=\"_blank\">Privacy Policy</a>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n computed: {\n showBookings () {\n return this.$user.provider || this.$user.agency\n }\n }\n}\n</script>\n","<template>\n <div :class=\"['dropdown dropdown-open p-1 w-full']\">\n <label v-bind=\"$attrs\" class=\"flex items-center gap-2\">\n <input type=\"text\" class=\"grow focus-visible:border-none focus-visible:outline-none bg-transparent\" :placeholder=\"placeholder\"\n v-model=\"query\"\n @input=\"onQueryChange\"\n @keydown.esc=\"onCancel\"\n @keydown.enter=\"onSendRaw\" \n />\n <slot name=\"icon\">\n <span v-if=\"searchTrigger\"><button class=\"btn btn-xs loading\"></button></span>\n <span v-else><i class=\"fa-solid fa-magnifying-glass\"></i></span>\n </slot>\n </label>\n <div class=\"dropdown-content z-[100] menu p-2 shadow bg-base-100 rounded-box w-52\" v-if=\"open\">\n <div class=\"p-2 click flex gap-2 items-center\" v-for=\"result in results\" :key=\"result\"\n @click=\"onResult(result)\"\n >\n <!-- Results can have an \"icon\" attribute with a \"fontawesome\" icon classes. If present add the icon for each result -->\n <span class=\"text-info\" v-if=\"result.icon\">\n <i :class=\"result.icon\"></i>\n </span>\n <a>{{ result.name }}</a>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n props: ['value', 'placeholder', 'search', 'thinking'],\n data () {\n return {\n query: this.$props.value,\n open: false,\n results: null,\n searchTrigger: null\n }\n },\n computed: {\n },\n watch: {\n value (newVal) {\n this.query = newVal\n }\n },\n methods: {\n async doSearch () {\n this.results = await this.search(this.query)\n this.open = !!this.results?.length\n this.searchTrigger = null\n },\n onResult (result) {\n this.$emit('selected', result)\n this.query = result.name\n this.open = false\n },\n onCancel () {\n this.open = false\n this.results = null\n },\n onSendRaw () {\n this.onResult({ name: this.query, raw: true }) \n },\n onQueryChange () {\n if (!this.results?.find(r => r.name === this.query)) {\n clearTimeout(this.searchTrigger)\n this.searchTrigger = setTimeout(() => this.doSearch(), 500)\n }\n }\n }\n\n}\n</script>","<script setup>\nimport AutocompleteVue from './Autocomplete.vue'\n</script>\n<template lang=\"pug\">\n div.assistant\n div.border.rounded-full.p-1(class=\"hidden lg:flex bg-base-200\")\n AutocompleteVue.px-2(:search=\"search\" @selected=\"onSelect\")\n template(v-slot:icon)\n <span class=\"loading loading-spinner loading-xs\" v-if=\"aiThinking\"></span>\n span(@click=\"chatAI(selection, true)\" v-else)\n <i class=\"fa-solid fa-headset\"></i>\n button(class=\"lg:hidden btn btn-primary btn-circle\"\n @click=\"openAssistant = true\")\n <span class=\"loading loading-spinner loading-xs\" v-if=\"aiThinking\"></span>\n span(v-else)\n <i class=\"fa-solid fa-headset\"></i>\n <dialog class=\"modal\" v-if=\"openAssistant\"> \n <div class=\"modal-box\">\n <form method=\"dialog\" @click=\"openAssistant = false\">\n <button class=\"btn btn-sm btn-circle btn-ghost absolute right-2 top-2\">✕</button>\n </form>\n <h3 class=\"font-bold text-lg\">Hello!</h3>\n <p class=\"py-4\">Press ESC key or click on ✕ button to close</p>\n </div>\n </dialog>\n</template>\n<script>\nexport default {\n data () {\n return {\n aiThinking: null,\n openAssistant: false,\n selection: null\n }\n },\n computed: {\n },\n methods: {\n async search(term) {\n const res = Object.keys(this.$storex.ai.lastSearches)\n .filter(prompt => prompt.indexOf(term) !== -1)\n .map(name => ({ name }))\n return Promise.resolve(res)\n },\n onSelect ({ name, raw }) {\n this.selection = name\n this.chatAI(name)\n },\n async chatAI (prompt, noCache) {\n if (prompt.length < 10) {\n return\n } \n this.aiThinking = true\n try {\n await this.$storex.ai.assistant({ prompt, noCache })\n } catch (ex) {\n console.error(ex)\n }\n this.aiThinking = false\n }\n }\n}\n</script>","(function(){\"use strict\";try{if(typeof document<\"u\"){var r=document.createElement(\"style\");r.appendChild(document.createTextNode('.vtd-datepicker-overlay.open:before{display:block;opacity:.5}.vtd-datepicker:before{--vtd-datepicker: 0px;content:\"\";position:absolute;top:0;height:1rem;width:1rem;border-width:1px;border-color:#0000001a;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}:is(.dark .vtd-datepicker):before{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.vtd-datepicker:before{transform:translate(50%,-50%) rotate(-45deg);-webkit-clip-path:polygon(calc(var(--vtd-datepicker) * -1) calc(var(--vtd-datepicker) * -1),calc(100% + var(--vtd-datepicker)) calc(var(--vtd-datepicker) * -1),calc(100% + var(--vtd-datepicker)) calc(100% + var(--vtd-datepicker)));clip-path:polygon(calc(var(--vtd-datepicker) * -1) calc(var(--vtd-datepicker) * -1),calc(100% + var(--vtd-datepicker)) calc(var(--vtd-datepicker) * -1),calc(100% + var(--vtd-datepicker)) calc(100% + var(--vtd-datepicker)))}.vtd-datepicker.place-left:before{left:.25rem}:is(.dark .vtd-datepicker.place-left):before{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.vtd-datepicker.place-right:before{right:1.25rem}:is(.dark .vtd-datepicker.place-right):before{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}')),document.head.appendChild(r)}}catch(t){console.error(\"vite-plugin-css-injected-by-js\",t)}})();\nimport { cloneVNode as Jt, h as ve, Fragment as xe, inject as De, provide as se, ref as J, onMounted as ot, watchEffect as _e, computed as ue, defineComponent as de, onUnmounted as et, Teleport as Xt, reactive as ht, shallowRef as Qt, openBlock as z, createElementBlock as Z, createElementVNode as Y, withDirectives as me, vShow as pe, toDisplayString as ae, renderList as Ke, withModifiers as $e, unref as le, createCommentVNode as ye, createVNode as ee, TransitionGroup as eo, withCtx as Fe, normalizeClass as Te, Transition as yt, nextTick as He, watch as it, isProxy as to, createBlock as Ue, renderSlot as ct, mergeProps as oo, vModelText as ro } from \"vue\";\nfunction Oe(e, r, ...u) {\n if (e in r) {\n let a = r[e];\n return typeof a == \"function\" ? a(...u) : a;\n }\n let t = new Error(`Tried to handle \"${e}\" but there is no handler defined. Only defined handlers are: ${Object.keys(r).map((a) => `\"${a}\"`).join(\", \")}.`);\n throw Error.captureStackTrace && Error.captureStackTrace(t, Oe), t;\n}\nvar ze = ((e) => (e[e.None = 0] = \"None\", e[e.RenderStrategy = 1] = \"RenderStrategy\", e[e.Static = 2] = \"Static\", e))(ze || {}), ao = ((e) => (e[e.Unmount = 0] = \"Unmount\", e[e.Hidden = 1] = \"Hidden\", e))(ao || {});\nfunction Pe({ visible: e = !0, features: r = 0, ourProps: u, theirProps: t, ...a }) {\n var n;\n let v = gt(t, u), s = Object.assign(a, { props: v });\n if (e || r & 2 && v.static)\n return st(s);\n if (r & 1) {\n let h = (n = v.unmount) == null || n ? 0 : 1;\n return Oe(h, { 0() {\n return null;\n }, 1() {\n return st({ ...a, props: { ...v, hidden: !0, style: { display: \"none\" } } });\n } });\n }\n return st(s);\n}\nfunction st({ props: e, attrs: r, slots: u, slot: t, name: a }) {\n var n, v;\n let { as: s, ...h } = no(e, [\"unmount\", \"static\"]), c = (n = u.default) == null ? void 0 : n.call(u, t), g = {};\n if (t) {\n let b = !1, S = [];\n for (let [V, I] of Object.entries(t))\n typeof I == \"boolean\" && (b = !0), I === !0 && S.push(V);\n b && (g[\"data-headlessui-state\"] = S.join(\" \"));\n }\n if (s === \"template\") {\n if (c = bt(c ?? []), Object.keys(h).length > 0 || Object.keys(r).length > 0) {\n let [b, ...S] = c ?? [];\n if (!so(b) || S.length > 0)\n throw new Error(['Passing props on \"template\"!', \"\", `The current component <${a} /> is rendering a \"template\".`, \"However we need to passthrough the following props:\", Object.keys(h).concat(Object.keys(r)).map((x) => x.trim()).filter((x, D, E) => E.indexOf(x) === D).sort((x, D) => x.localeCompare(D)).map((x) => ` - ${x}`).join(`\n`), \"\", \"You can apply a few solutions:\", ['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"template\".', \"Render a single element as the child so that we can forward the props onto that element.\"].map((x) => ` - ${x}`).join(`\n`)].join(`\n`));\n let V = gt((v = b.props) != null ? v : {}, h), I = Jt(b, V);\n for (let x in V)\n x.startsWith(\"on\") && (I.props || (I.props = {}), I.props[x] = V[x]);\n return I;\n }\n return Array.isArray(c) && c.length === 1 ? c[0] : c;\n }\n return ve(s, Object.assign({}, h, g), { default: () => c });\n}\nfunction bt(e) {\n return e.flatMap((r) => r.type === xe ? bt(r.children) : [r]);\n}\nfunction gt(...e) {\n if (e.length === 0)\n return {};\n if (e.length === 1)\n return e[0];\n let r = {}, u = {};\n for (let t of e)\n for (let a in t)\n a.startsWith(\"on\") && typeof t[a] == \"function\" ? (u[a] != null || (u[a] = []), u[a].push(t[a])) : r[a] = t[a];\n if (r.disabled || r[\"aria-disabled\"])\n return Object.assign(r, Object.fromEntries(Object.keys(u).map((t) => [t, void 0])));\n for (let t in u)\n Object.assign(r, { [t](a, ...n) {\n let v = u[t];\n for (let s of v) {\n if (a instanceof Event && a.defaultPrevented)\n return;\n s(a, ...n);\n }\n } });\n return r;\n}\nfunction no(e, r = []) {\n let u = Object.assign({}, e);\n for (let t of r)\n t in u && delete u[t];\n return u;\n}\nfunction so(e) {\n return e == null ? !1 : typeof e.type == \"string\" || typeof e.type == \"object\" || typeof e.type == \"function\";\n}\nlet lo = 0;\nfunction uo() {\n return ++lo;\n}\nfunction Be() {\n return uo();\n}\nvar Ve = ((e) => (e.Space = \" \", e.Enter = \"Enter\", e.Escape = \"Escape\", e.Backspace = \"Backspace\", e.Delete = \"Delete\", e.ArrowLeft = \"ArrowLeft\", e.ArrowUp = \"ArrowUp\", e.ArrowRight = \"ArrowRight\", e.ArrowDown = \"ArrowDown\", e.Home = \"Home\", e.End = \"End\", e.PageUp = \"PageUp\", e.PageDown = \"PageDown\", e.Tab = \"Tab\", e))(Ve || {});\nfunction H(e) {\n var r;\n return e == null || e.value == null ? null : (r = e.value.$el) != null ? r : e.value;\n}\nlet xt = Symbol(\"Context\");\nvar Le = ((e) => (e[e.Open = 1] = \"Open\", e[e.Closed = 2] = \"Closed\", e[e.Closing = 4] = \"Closing\", e[e.Opening = 8] = \"Opening\", e))(Le || {});\nfunction wt() {\n return De(xt, null);\n}\nfunction io(e) {\n se(xt, e);\n}\nfunction ft(e, r) {\n if (e)\n return e;\n let u = r ?? \"button\";\n if (typeof u == \"string\" && u.toLowerCase() === \"button\")\n return \"button\";\n}\nfunction co(e, r) {\n let u = J(ft(e.value.type, e.value.as));\n return ot(() => {\n u.value = ft(e.value.type, e.value.as);\n }), _e(() => {\n var t;\n u.value || H(r) && H(r) instanceof HTMLButtonElement && !((t = H(r)) != null && t.hasAttribute(\"type\")) && (u.value = \"button\");\n }), u;\n}\nvar fo = Object.defineProperty, mo = (e, r, u) => r in e ? fo(e, r, { enumerable: !0, configurable: !0, writable: !0, value: u }) : e[r] = u, mt = (e, r, u) => (mo(e, typeof r != \"symbol\" ? r + \"\" : r, u), u);\nclass po {\n constructor() {\n mt(this, \"current\", this.detect()), mt(this, \"currentId\", 0);\n }\n set(r) {\n this.current !== r && (this.currentId = 0, this.current = r);\n }\n reset() {\n this.set(this.detect());\n }\n nextId() {\n return ++this.currentId;\n }\n get isServer() {\n return this.current === \"server\";\n }\n get isClient() {\n return this.current === \"client\";\n }\n detect() {\n return typeof window > \"u\" || typeof document > \"u\" ? \"server\" : \"client\";\n }\n}\nlet rt = new po();\nfunction Ae(e) {\n if (rt.isServer)\n return null;\n if (e instanceof Node)\n return e.ownerDocument;\n if (e != null && e.hasOwnProperty(\"value\")) {\n let r = H(e);\n if (r)\n return r.ownerDocument;\n }\n return document;\n}\nlet lt = [\"[contentEditable=true]\", \"[tabindex]\", \"a[href]\", \"area[href]\", \"button:not([disabled])\", \"iframe\", \"input:not([disabled])\", \"select:not([disabled])\", \"textarea:not([disabled])\"].map((e) => `${e}:not([tabindex='-1'])`).join(\",\");\nvar Me = ((e) => (e[e.First = 1] = \"First\", e[e.Previous = 2] = \"Previous\", e[e.Next = 4] = \"Next\", e[e.Last = 8] = \"Last\", e[e.WrapAround = 16] = \"WrapAround\", e[e.NoScroll = 32] = \"NoScroll\", e))(Me || {}), tt = ((e) => (e[e.Error = 0] = \"Error\", e[e.Overflow = 1] = \"Overflow\", e[e.Success = 2] = \"Success\", e[e.Underflow = 3] = \"Underflow\", e))(tt || {}), vo = ((e) => (e[e.Previous = -1] = \"Previous\", e[e.Next = 1] = \"Next\", e))(vo || {});\nfunction at(e = document.body) {\n return e == null ? [] : Array.from(e.querySelectorAll(lt)).sort((r, u) => Math.sign((r.tabIndex || Number.MAX_SAFE_INTEGER) - (u.tabIndex || Number.MAX_SAFE_INTEGER)));\n}\nvar dt = ((e) => (e[e.Strict = 0] = \"Strict\", e[e.Loose = 1] = \"Loose\", e))(dt || {});\nfunction kt(e, r = 0) {\n var u;\n return e === ((u = Ae(e)) == null ? void 0 : u.body) ? !1 : Oe(r, { 0() {\n return e.matches(lt);\n }, 1() {\n let t = e;\n for (; t !== null; ) {\n if (t.matches(lt))\n return !0;\n t = t.parentElement;\n }\n return !1;\n } });\n}\nvar ho = ((e) => (e[e.Keyboard = 0] = \"Keyboard\", e[e.Mouse = 1] = \"Mouse\", e))(ho || {});\ntypeof window < \"u\" && typeof document < \"u\" && (document.addEventListener(\"keydown\", (e) => {\n e.metaKey || e.altKey || e.ctrlKey || (document.documentElement.dataset.headlessuiFocusVisible = \"\");\n}, !0), document.addEventListener(\"click\", (e) => {\n e.detail === 1 ? delete document.documentElement.dataset.headlessuiFocusVisible : e.detail === 0 && (document.documentElement.dataset.headlessuiFocusVisible = \"\");\n}, !0));\nlet yo = [\"textarea\", \"input\"].join(\",\");\nfunction bo(e) {\n var r, u;\n return (u = (r = e == null ? void 0 : e.matches) == null ? void 0 : r.call(e, yo)) != null ? u : !1;\n}\nfunction go(e, r = (u) => u) {\n return e.slice().sort((u, t) => {\n let a = r(u), n = r(t);\n if (a === null || n === null)\n return 0;\n let v = a.compareDocumentPosition(n);\n return v & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : v & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;\n });\n}\nfunction Ee(e, r, { sorted: u = !0, relativeTo: t = null, skipElements: a = [] } = {}) {\n var n;\n let v = (n = Array.isArray(e) ? e.length > 0 ? e[0].ownerDocument : document : e == null ? void 0 : e.ownerDocument) != null ? n : document, s = Array.isArray(e) ? u ? go(e) : e : at(e);\n a.length > 0 && s.length > 1 && (s = s.filter((I) => !a.includes(I))), t = t ?? v.activeElement;\n let h = (() => {\n if (r & 5)\n return 1;\n if (r & 10)\n return -1;\n throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\");\n })(), c = (() => {\n if (r & 1)\n return 0;\n if (r & 2)\n return Math.max(0, s.indexOf(t)) - 1;\n if (r & 4)\n return Math.max(0, s.indexOf(t)) + 1;\n if (r & 8)\n return s.length - 1;\n throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\");\n })(), g = r & 32 ? { preventScroll: !0 } : {}, b = 0, S = s.length, V;\n do {\n if (b >= S || b + S <= 0)\n return 0;\n let I = c + b;\n if (r & 16)\n I = (I + S) % S;\n else {\n if (I < 0)\n return 3;\n if (I >= S)\n return 1;\n }\n V = s[I], V == null || V.focus(g), b += h;\n } while (V !== v.activeElement);\n return r & 6 && bo(V) && V.select(), 2;\n}\nfunction Ge(e, r, u) {\n rt.isServer || _e((t) => {\n document.addEventListener(e, r, u), t(() => document.removeEventListener(e, r, u));\n });\n}\nfunction jt(e, r, u) {\n rt.isServer || _e((t) => {\n window.addEventListener(e, r, u), t(() => window.removeEventListener(e, r, u));\n });\n}\nfunction xo(e, r, u = ue(() => !0)) {\n function t(n, v) {\n if (!u.value || n.defaultPrevented)\n return;\n let s = v(n);\n if (s === null || !s.getRootNode().contains(s))\n return;\n let h = function c(g) {\n return typeof g == \"function\" ? c(g()) : Array.isArray(g) || g instanceof Set ? g : [g];\n }(e);\n for (let c of h) {\n if (c === null)\n continue;\n let g = c instanceof HTMLElement ? c : H(c);\n if (g != null && g.contains(s) || n.composed && n.composedPath().includes(g))\n return;\n }\n return !kt(s, dt.Loose) && s.tabIndex !== -1 && n.preventDefault(), r(n, s);\n }\n let a = J(null);\n Ge(\"pointerdown\", (n) => {\n var v, s;\n u.value && (a.value = ((s = (v = n.composedPath) == null ? void 0 : v.call(n)) == null ? void 0 : s[0]) || n.target);\n }, !0), Ge(\"mousedown\", (n) => {\n var v, s;\n u.value && (a.value = ((s = (v = n.composedPath) == null ? void 0 : v.call(n)) == null ? void 0 : s[0]) || n.target);\n }, !0), Ge(\"click\", (n) => {\n a.value && (t(n, () => a.value), a.value = null);\n }, !0), Ge(\"touchend\", (n) => t(n, () => n.target instanceof HTMLElement ? n.target : null), !0), jt(\"blur\", (n) => t(n, () => window.document.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null), !0);\n}\nvar Ne = ((e) => (e[e.None = 1] = \"None\", e[e.Focusable = 2] = \"Focusable\", e[e.Hidden = 4] = \"Hidden\", e))(Ne || {});\nlet We = de({ name: \"Hidden\", props: { as: { type: [Object, String], default: \"div\" }, features: { type: Number, default: 1 } }, setup(e, { slots: r, attrs: u }) {\n return () => {\n let { features: t, ...a } = e, n = { \"aria-hidden\": (t & 2) === 2 ? !0 : void 0, style: { position: \"fixed\", top: 1, left: 1, width: 1, height: 0, padding: 0, margin: -1, overflow: \"hidden\", clip: \"rect(0, 0, 0, 0)\", whiteSpace: \"nowrap\", borderWidth: \"0\", ...(t & 4) === 4 && (t & 2) !== 2 && { display: \"none\" } } };\n return Pe({ ourProps: n, theirProps: a, slot: {}, attrs: u, slots: r, name: \"Hidden\" });\n };\n} });\nvar Se = ((e) => (e[e.Forwards = 0] = \"Forwards\", e[e.Backwards = 1] = \"Backwards\", e))(Se || {});\nfunction _t() {\n let e = J(0);\n return jt(\"keydown\", (r) => {\n r.key === \"Tab\" && (e.value = r.shiftKey ? 1 : 0);\n }), e;\n}\nfunction wo(e, r, u, t) {\n rt.isServer || _e((a) => {\n e = e ?? window, e.addEventListener(r, u, t), a(() => e.removeEventListener(r, u, t));\n });\n}\nlet $t = Symbol(\"ForcePortalRootContext\");\nfunction ko() {\n return De($t, !1);\n}\nde({ name: \"ForcePortalRoot\", props: { as: { type: [Object, String], default: \"template\" }, force: { type: Boolean, default: !1 } }, setup(e, { slots: r, attrs: u }) {\n return se($t, e.force), () => {\n let { force: t, ...a } = e;\n return Pe({ theirProps: a, ourProps: {}, slot: {}, slots: r, attrs: u, name: \"ForcePortalRoot\" });\n };\n} });\nfunction jo(e) {\n let r = Ae(e);\n if (!r) {\n if (e === null)\n return null;\n throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${e}`);\n }\n let u = r.getElementById(\"headlessui-portal-root\");\n if (u)\n return u;\n let t = r.createElement(\"div\");\n return t.setAttribute(\"id\", \"headlessui-portal-root\"), r.body.appendChild(t);\n}\nde({ name: \"Portal\", props: { as: { type: [Object, String], default: \"div\" } }, setup(e, { slots: r, attrs: u }) {\n let t = J(null), a = ue(() => Ae(t)), n = ko(), v = De(Mt, null), s = J(n === !0 || v == null ? jo(t.value) : v.resolveTarget());\n _e(() => {\n n || v != null && (s.value = v.resolveTarget());\n });\n let h = De(ut, null);\n return ot(() => {\n let c = H(t);\n c && h && et(h.register(c));\n }), et(() => {\n var c, g;\n let b = (c = a.value) == null ? void 0 : c.getElementById(\"headlessui-portal-root\");\n b && s.value === b && s.value.children.length <= 0 && ((g = s.value.parentElement) == null || g.removeChild(s.value));\n }), () => {\n if (s.value === null)\n return null;\n let c = { ref: t, \"data-headlessui-portal\": \"\" };\n return ve(Xt, { to: s.value }, Pe({ ourProps: c, theirProps: e, slot: {}, attrs: u, slots: r, name: \"Portal\" }));\n };\n} });\nlet ut = Symbol(\"PortalParentContext\");\nfunction _o() {\n let e = De(ut, null), r = J([]);\n function u(n) {\n return r.value.push(n), e && e.register(n), () => t(n);\n }\n function t(n) {\n let v = r.value.indexOf(n);\n v !== -1 && r.value.splice(v, 1), e && e.unregister(n);\n }\n let a = { register: u, unregister: t, portals: r };\n return [r, de({ name: \"PortalWrapper\", setup(n, { slots: v }) {\n return se(ut, a), () => {\n var s;\n return (s = v.default) == null ? void 0 : s.call(v);\n };\n } })];\n}\nlet Mt = Symbol(\"PortalGroupContext\");\nde({ name: \"PortalGroup\", props: { as: { type: [Object, String], default: \"template\" }, target: { type: Object, default: null } }, setup(e, { attrs: r, slots: u }) {\n let t = ht({ resolveTarget() {\n return e.target;\n } });\n return se(Mt, t), () => {\n let { target: a, ...n } = e;\n return Pe({ theirProps: n, ourProps: {}, slot: {}, attrs: r, slots: u, name: \"PortalGroup\" });\n };\n} });\nfunction $o({ defaultContainers: e = [], portals: r, mainTreeNodeRef: u } = {}) {\n let t = J(null), a = Ae(t);\n function n() {\n var v;\n let s = [];\n for (let h of e)\n h !== null && (h instanceof HTMLElement ? s.push(h) : \"value\" in h && h.value instanceof HTMLElement && s.push(h.value));\n if (r != null && r.value)\n for (let h of r.value)\n s.push(h);\n for (let h of (v = a == null ? void 0 : a.querySelectorAll(\"html > *, body > *\")) != null ? v : [])\n h !== document.body && h !== document.head && h instanceof HTMLElement && h.id !== \"headlessui-portal-root\" && (h.contains(H(t)) || s.some((c) => h.contains(c)) || s.push(h));\n return s;\n }\n return { resolveContainers: n, contains(v) {\n return n().some((s) => s.contains(v));\n }, mainTreeNodeRef: t, MainTreeNode() {\n return u != null ? null : ve(We, { features: Ne.Hidden, ref: t });\n } };\n}\nfunction Mo() {\n let e = J(null);\n return { mainTreeNodeRef: e, MainTreeNode() {\n return ve(We, { features: Ne.Hidden, ref: e });\n } };\n}\nvar So = ((e) => (e[e.Open = 0] = \"Open\", e[e.Closed = 1] = \"Closed\", e))(So || {});\nlet St = Symbol(\"PopoverContext\");\nfunction nt(e) {\n let r = De(St, null);\n if (r === null) {\n let u = new Error(`<${e} /> is missing a parent <${Vt.name} /> component.`);\n throw Error.captureStackTrace && Error.captureStackTrace(u, nt), u;\n }\n return r;\n}\nlet Dt = Symbol(\"PopoverGroupContext\");\nfunction Ot() {\n return De(Dt, null);\n}\nlet Pt = Symbol(\"PopoverPanelContext\");\nfunction Do() {\n return De(Pt, null);\n}\nlet Vt = de({ name: \"Popover\", inheritAttrs: !1, props: { as: { type: [Object, String], default: \"div\" } }, setup(e, { slots: r, attrs: u, expose: t }) {\n var a;\n let n = J(null);\n t({ el: n, $el: n });\n let v = J(1), s = J(null), h = J(null), c = J(null), g = J(null), b = ue(() => Ae(n)), S = ue(() => {\n var T, O;\n if (!H(s) || !H(g))\n return !1;\n for (let q of document.querySelectorAll(\"body > *\"))\n if (Number(q == null ? void 0 : q.contains(H(s))) ^ Number(q == null ? void 0 : q.contains(H(g))))\n return !0;\n let l = at(), o = l.indexOf(H(s)), R = (o + l.length - 1) % l.length, N = (o + 1) % l.length, _ = l[R], K = l[N];\n return !((T = H(g)) != null && T.contains(_)) && !((O = H(g)) != null && O.contains(K));\n }), V = { popoverState: v, buttonId: J(null), panelId: J(null), panel: g, button: s, isPortalled: S, beforePanelSentinel: h, afterPanelSentinel: c, togglePopover() {\n v.value = Oe(v.value, { 0: 1, 1: 0 });\n }, closePopover() {\n v.value !== 1 && (v.value = 1);\n }, close(T) {\n V.closePopover();\n let O = (() => T ? T instanceof HTMLElement ? T : T.value instanceof HTMLElement ? H(T) : H(V.button) : H(V.button))();\n O == null || O.focus();\n } };\n se(St, V), io(ue(() => Oe(v.value, { 0: Le.Open, 1: Le.Closed })));\n let I = { buttonId: V.buttonId, panelId: V.panelId, close() {\n V.closePopover();\n } }, x = Ot(), D = x == null ? void 0 : x.registerPopover, [E, k] = _o(), w = $o({ mainTreeNodeRef: x == null ? void 0 : x.mainTreeNodeRef, portals: E, defaultContainers: [s, g] });\n function P() {\n var T, O, l, o;\n return (o = x == null ? void 0 : x.isFocusWithinPopoverGroup()) != null ? o : ((T = b.value) == null ? void 0 : T.activeElement) && (((O = H(s)) == null ? void 0 : O.contains(b.value.activeElement)) || ((l = H(g)) == null ? void 0 : l.contains(b.value.activeElement)));\n }\n return _e(() => D == null ? void 0 : D(I)), wo((a = b.value) == null ? void 0 : a.defaultView, \"focus\", (T) => {\n var O, l;\n T.target !== window && T.target instanceof HTMLElement && v.value === 0 && (P() || s && g && (w.contains(T.target) || (O = H(V.beforePanelSentinel)) != null && O.contains(T.target) || (l = H(V.afterPanelSentinel)) != null && l.contains(T.target) || V.closePopover()));\n }, !0), xo(w.resolveContainers, (T, O) => {\n var l;\n V.closePopover(), kt(O, dt.Loose) || (T.preventDefault(), (l = H(s)) == null || l.focus());\n }, ue(() => v.value === 0)), () => {\n let T = { open: v.value === 0, close: V.close };\n return ve(xe, [ve(k, {}, () => Pe({ theirProps: { ...e, ...u }, ourProps: { ref: n }, slot: T, slots: r, attrs: u, name: \"Popover\" })), ve(w.MainTreeNode)]);\n };\n} }), Oo = de({ name: \"PopoverButton\", props: { as: { type: [Object, String], default: \"button\" }, disabled: { type: [Boolean], default: !1 }, id: { type: String, default: () => `headlessui-popover-button-${Be()}` } }, inheritAttrs: !1, setup(e, { attrs: r, slots: u, expose: t }) {\n let a = nt(\"PopoverButton\"), n = ue(() => Ae(a.button));\n t({ el: a.button, $el: a.button }), ot(() => {\n a.buttonId.value = e.id;\n }), et(() => {\n a.buttonId.value = null;\n });\n let v = Ot(), s = v == null ? void 0 : v.closeOthers, h = Do(), c = ue(() => h === null ? !1 : h.value === a.panelId.value), g = J(null), b = `headlessui-focus-sentinel-${Be()}`;\n c.value || _e(() => {\n a.button.value = g.value;\n });\n let S = co(ue(() => ({ as: e.as, type: r.type })), g);\n function V(w) {\n var P, T, O, l, o;\n if (c.value) {\n if (a.popoverState.value === 1)\n return;\n switch (w.key) {\n case Ve.Space:\n case Ve.Enter:\n w.preventDefault(), (T = (P = w.target).click) == null || T.call(P), a.closePopover(), (O = H(a.button)) == null || O.focus();\n break;\n }\n } else\n switch (w.key) {\n case Ve.Space:\n case Ve.Enter:\n w.preventDefault(), w.stopPropagation(), a.popoverState.value === 1 && (s == null || s(a.buttonId.value)), a.togglePopover();\n break;\n case Ve.Escape:\n if (a.popoverState.value !== 0)\n return s == null ? void 0 : s(a.buttonId.value);\n if (!H(a.button) || (l = n.value) != null && l.activeElement && !((o = H(a.button)) != null && o.contains(n.value.activeElement)))\n return;\n w.preventDefault(), w.stopPropagation(), a.closePopover();\n break;\n }\n }\n function I(w) {\n c.value || w.key === Ve.Space && w.preventDefault();\n }\n function x(w) {\n var P, T;\n e.disabled || (c.value ? (a.closePopover(), (P = H(a.button)) == null || P.focus()) : (w.preventDefault(), w.stopPropagation(), a.popoverState.value === 1 && (s == null || s(a.buttonId.value)), a.togglePopover(), (T = H(a.button)) == null || T.focus()));\n }\n function D(w) {\n w.preventDefault(), w.stopPropagation();\n }\n let E = _t();\n function k() {\n let w = H(a.panel);\n if (!w)\n return;\n function P() {\n Oe(E.value, { [Se.Forwards]: () => Ee(w, Me.First), [Se.Backwards]: () => Ee(w, Me.Last) }) === tt.Error && Ee(at().filter((T) => T.dataset.headlessuiFocusGuard !== \"true\"), Oe(E.value, { [Se.Forwards]: Me.Next, [Se.Backwards]: Me.Previous }), { relativeTo: H(a.button) });\n }\n P();\n }\n return () => {\n let w = a.popoverState.value === 0, P = { open: w }, { id: T, ...O } = e, l = c.value ? { ref: g, type: S.value, onKeydown: V, onClick: x } : { ref: g, id: T, type: S.value, \"aria-expanded\": a.popoverState.value === 0, \"aria-controls\": H(a.panel) ? a.panelId.value : void 0, disabled: e.disabled ? !0 : void 0, onKeydown: V, onKeyup: I, onClick: x, onMousedown: D };\n return ve(xe, [Pe({ ourProps: l, theirProps: { ...r, ...O }, slot: P, attrs: r, slots: u, name: \"PopoverButton\" }), w && !c.value && a.isPortalled.value && ve(We, { id: b, features: Ne.Focusable, \"data-headlessui-focus-guard\": !0, as: \"button\", type: \"button\", onFocus: k })]);\n };\n} }), Po = de({ name: \"PopoverOverlay\", props: { as: { type: [Object, String], default: \"div\" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 } }, setup(e, { attrs: r, slots: u }) {\n let t = nt(\"PopoverOverlay\"), a = `headlessui-popover-overlay-${Be()}`, n = wt(), v = ue(() => n !== null ? (n.value & Le.Open) === Le.Open : t.popoverState.value === 0);\n function s() {\n t.closePopover();\n }\n return () => {\n let h = { open: t.popoverState.value === 0 };\n return Pe({ ourProps: { id: a, \"aria-hidden\": !0, onClick: s }, theirProps: e, slot: h, attrs: r, slots: u, features: ze.RenderStrategy | ze.Static, visible: v.value, name: \"PopoverOverlay\" });\n };\n} }), Vo = de({ name: \"PopoverPanel\", props: { as: { type: [Object, String], default: \"div\" }, static: { type: Boolean, default: !1 }, unmount: { type: Boolean, default: !0 }, focus: { type: Boolean, default: !1 }, id: { type: String, default: () => `headlessui-popover-panel-${Be()}` } }, inheritAttrs: !1, setup(e, { attrs: r, slots: u, expose: t }) {\n let { focus: a } = e, n = nt(\"PopoverPanel\"), v = ue(() => Ae(n.panel)), s = `headlessui-focus-sentinel-before-${Be()}`, h = `headlessui-focus-sentinel-after-${Be()}`;\n t({ el: n.panel, $el: n.panel }), ot(() => {\n n.panelId.value = e.id;\n }), et(() => {\n n.panelId.value = null;\n }), se(Pt, n.panelId), _e(() => {\n var D, E;\n if (!a || n.popoverState.value !== 0 || !n.panel)\n return;\n let k = (D = v.value) == null ? void 0 : D.activeElement;\n (E = H(n.panel)) != null && E.contains(k) || Ee(H(n.panel), Me.First);\n });\n let c = wt(), g = ue(() => c !== null ? (c.value & Le.Open) === Le.Open : n.popoverState.value === 0);\n function b(D) {\n var E, k;\n switch (D.key) {\n case Ve.Escape:\n if (n.popoverState.value !== 0 || !H(n.panel) || v.value && !((E = H(n.panel)) != null && E.contains(v.value.activeElement)))\n return;\n D.preventDefault(), D.stopPropagation(), n.closePopover(), (k = H(n.button)) == null || k.focus();\n break;\n }\n }\n function S(D) {\n var E, k, w, P, T;\n let O = D.relatedTarget;\n O && H(n.panel) && ((E = H(n.panel)) != null && E.contains(O) || (n.closePopover(), ((w = (k = H(n.beforePanelSentinel)) == null ? void 0 : k.contains) != null && w.call(k, O) || (T = (P = H(n.afterPanelSentinel)) == null ? void 0 : P.contains) != null && T.call(P, O)) && O.focus({ preventScroll: !0 })));\n }\n let V = _t();\n function I() {\n let D = H(n.panel);\n if (!D)\n return;\n function E() {\n Oe(V.value, { [Se.Forwards]: () => {\n var k;\n Ee(D, Me.First) === tt.Error && ((k = H(n.afterPanelSentinel)) == null || k.focus());\n }, [Se.Backwards]: () => {\n var k;\n (k = H(n.button)) == null || k.focus({ preventScroll: !0 });\n } });\n }\n E();\n }\n function x() {\n let D = H(n.panel);\n if (!D)\n return;\n function E() {\n Oe(V.value, { [Se.Forwards]: () => {\n let k = H(n.button), w = H(n.panel);\n if (!k)\n return;\n let P = at(), T = P.indexOf(k), O = P.slice(0, T + 1), l = [...P.slice(T + 1), ...O];\n for (let o of l.slice())\n if (o.dataset.headlessuiFocusGuard === \"true\" || w != null && w.contains(o)) {\n let R = l.indexOf(o);\n R !== -1 && l.splice(R, 1);\n }\n Ee(l, Me.First, { sorted: !1 });\n }, [Se.Backwards]: () => {\n var k;\n Ee(D, Me.Previous) === tt.Error && ((k = H(n.button)) == null || k.focus());\n } });\n }\n E();\n }\n return () => {\n let D = { open: n.popoverState.value === 0, close: n.close }, { id: E, focus: k, ...w } = e, P = { ref: n.panel, id: E, onKeydown: b, onFocusout: a && n.popoverState.value === 0 ? S : void 0, tabIndex: -1 };\n return Pe({ ourProps: P, theirProps: { ...r, ...w }, attrs: r, slot: D, slots: { ...u, default: (...T) => {\n var O;\n return [ve(xe, [g.value && n.isPortalled.value && ve(We, { id: s, ref: n.beforePanelSentinel, features: Ne.Focusable, \"data-headlessui-focus-guard\": !0, as: \"button\", type: \"button\", onFocus: I }), (O = u.default) == null ? void 0 : O.call(u, ...T), g.value && n.isPortalled.value && ve(We, { id: h, ref: n.afterPanelSentinel, features: Ne.Focusable, \"data-headlessui-focus-guard\": !0, as: \"button\", type: \"button\", onFocus: x })])];\n } }, features: ze.RenderStrategy | ze.Static, visible: g.value, name: \"PopoverPanel\" });\n };\n} });\nde({ name: \"PopoverGroup\", inheritAttrs: !1, props: { as: { type: [Object, String], default: \"div\" } }, setup(e, { attrs: r, slots: u, expose: t }) {\n let a = J(null), n = Qt([]), v = ue(() => Ae(a)), s = Mo();\n t({ el: a, $el: a });\n function h(S) {\n let V = n.value.indexOf(S);\n V !== -1 && n.value.splice(V, 1);\n }\n function c(S) {\n return n.value.push(S), () => {\n h(S);\n };\n }\n function g() {\n var S;\n let V = v.value;\n if (!V)\n return !1;\n let I = V.activeElement;\n return (S = H(a)) != null && S.contains(I) ? !0 : n.value.some((x) => {\n var D, E;\n return ((D = V.getElementById(x.buttonId.value)) == null ? void 0 : D.contains(I)) || ((E = V.getElementById(x.panelId.value)) == null ? void 0 : E.contains(I));\n });\n }\n function b(S) {\n for (let V of n.value)\n V.buttonId.value !== S && V.close();\n }\n return se(Dt, { registerPopover: c, unregisterPopover: h, isFocusWithinPopoverGroup: g, closeOthers: b, mainTreeNodeRef: s.mainTreeNodeRef }), () => ve(xe, [Pe({ ourProps: { ref: a }, theirProps: { ...e, ...r }, slot: {}, attrs: r, slots: u, name: \"PopoverGroup\" }), ve(s.MainTreeNode)]);\n} });\nvar Ye = typeof globalThis < \"u\" ? globalThis : typeof window < \"u\" ? window : typeof global < \"u\" ? global : typeof self < \"u\" ? self : {};\nfunction Ce(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Tt = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n var u = 1e3, t = 6e4, a = 36e5, n = \"millisecond\", v = \"second\", s = \"minute\", h = \"hour\", c = \"day\", g = \"week\", b = \"month\", S = \"quarter\", V = \"year\", I = \"date\", x = \"Invalid Date\", D = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/, E = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, k = { name: \"en\", weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"), months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"), ordinal: function(C) {\n var y = [\"th\", \"st\", \"nd\", \"rd\"], M = C % 100;\n return \"[\" + C + (y[(M - 20) % 10] || y[M] || y[0]) + \"]\";\n } }, w = function(C, y, M) {\n var A = String(C);\n return !A || A.length >= y ? C : \"\" + Array(y + 1 - A.length).join(M) + C;\n }, P = { s: w, z: function(C) {\n var y = -C.utcOffset(), M = Math.abs(y), A = Math.floor(M / 60), $ = M % 60;\n return (y <= 0 ? \"+\" : \"-\") + w(A, 2, \"0\") + \":\" + w($, 2, \"0\");\n }, m: function C(y, M) {\n if (y.date() < M.date())\n return -C(M, y);\n var A = 12 * (M.year() - y.year()) + (M.month() - y.month()), $ = y.clone().add(A, b), B = M - $ < 0, F = y.clone().add(A + (B ? -1 : 1), b);\n return +(-(A + (M - $) / (B ? $ - F : F - $)) || 0);\n }, a: function(C) {\n return C < 0 ? Math.ceil(C) || 0 : Math.floor(C);\n }, p: function(C) {\n return { M: b, y: V, w: g, d: c, D: I, h, m: s, s: v, ms: n, Q: S }[C] || String(C || \"\").toLowerCase().replace(/s$/, \"\");\n }, u: function(C) {\n return C === void 0;\n } }, T = \"en\", O = {};\n O[T] = k;\n var l = \"$isDayjsObject\", o = function(C) {\n return C instanceof K || !(!C || !C[l]);\n }, R = function C(y, M, A) {\n var $;\n if (!y)\n return T;\n if (typeof y == \"string\") {\n var B = y.toLowerCase();\n O[B] && ($ = B), M && (O[B] = M, $ = B);\n var F = y.split(\"-\");\n if (!$ && F.length > 1)\n return C(F[0]);\n } else {\n var G = y.name;\n O[G] = y, $ = G;\n }\n return !A && $ && (T = $), $ || !A && T;\n }, N = function(C, y) {\n if (o(C))\n return C.clone();\n var M = typeof y == \"object\" ? y : {};\n return M.date = C, M.args = arguments, new K(M);\n }, _ = P;\n _.l = R, _.i = o, _.w = function(C, y) {\n return N(C, { locale: y.$L, utc: y.$u, x: y.$x, $offset: y.$offset });\n };\n var K = function() {\n function C(M) {\n this.$L = R(M.locale, null, !0), this.parse(M), this.$x = this.$x || M.x || {}, this[l] = !0;\n }\n var y = C.prototype;\n return y.parse = function(M) {\n this.$d = function(A) {\n var $ = A.date, B = A.utc;\n if ($ === null)\n return /* @__PURE__ */ new Date(NaN);\n if (_.u($))\n return /* @__PURE__ */ new Date();\n if ($ instanceof Date)\n return new Date($);\n if (typeof $ == \"string\" && !/Z$/i.test($)) {\n var F = $.match(D);\n if (F) {\n var G = F[2] - 1 || 0, Q = (F[7] || \"0\").substring(0, 3);\n return B ? new Date(Date.UTC(F[1], G, F[3] || 1, F[4] || 0, F[5] || 0, F[6] || 0, Q)) : new Date(F[1], G, F[3] || 1, F[4] || 0, F[5] || 0, F[6] || 0, Q);\n }\n }\n return new Date($);\n }(M), this.init();\n }, y.init = function() {\n var M = this.$d;\n this.$y = M.getFullYear(), this.$M = M.getMonth(), this.$D = M.getDate(), this.$W = M.getDay(), this.$H = M.getHours(), this.$m = M.getMinutes(), this.$s = M.getSeconds(), this.$ms = M.getMilliseconds();\n }, y.$utils = function() {\n return _;\n }, y.isValid = function() {\n return this.$d.toString() !== x;\n }, y.isSame = function(M, A) {\n var $ = N(M);\n return this.startOf(A) <= $ && $ <= this.endOf(A);\n }, y.isAfter = function(M, A) {\n return N(M) < this.startOf(A);\n }, y.isBefore = function(M, A) {\n return this.endOf(A) < N(M);\n }, y.$g = function(M, A, $) {\n return _.u(M) ? this[A] : this.set($, M);\n }, y.unix = function() {\n return Math.floor(this.valueOf() / 1e3);\n }, y.valueOf = function() {\n return this.$d.getTime();\n }, y.startOf = function(M, A) {\n var $ = this, B = !!_.u(A) || A, F = _.p(M), G = function(he, re) {\n var fe = _.w($.$u ? Date.UTC($.$y, re, he) : new Date($.$y, re, he), $);\n return B ? fe : fe.endOf(c);\n }, Q = function(he, re) {\n return _.w($.toDate()[he].apply($.toDate(\"s\"), (B ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(re)), $);\n }, te = this.$W, oe = this.$M, ie = this.$D, we = \"set\" + (this.$u ? \"UTC\" : \"\");\n switch (F) {\n case V:\n return B ? G(1, 0) : G(31, 11);\n case b:\n return B ? G(1, oe) : G(0, oe + 1);\n case g:\n var ne = this.$locale().weekStart || 0, be = (te < ne ? te + 7 : te) - ne;\n return G(B ? ie - be : ie + (6 - be), oe);\n case c:\n case I:\n return Q(we + \"Hours\", 0);\n case h:\n return Q(we + \"Minutes\", 1);\n case s:\n return Q(we + \"Seconds\", 2);\n case v:\n return Q(we + \"Milliseconds\", 3);\n default:\n return this.clone();\n }\n }, y.endOf = function(M) {\n return this.startOf(M, !1);\n }, y.$set = function(M, A) {\n var $, B = _.p(M), F = \"set\" + (this.$u ? \"UTC\" : \"\"), G = ($ = {}, $[c] = F + \"Date\", $[I] = F + \"Date\", $[b] = F + \"Month\", $[V] = F + \"FullYear\", $[h] = F + \"Hours\", $[s] = F + \"Minutes\", $[v] = F + \"Seconds\", $[n] = F + \"Milliseconds\", $)[B], Q = B === c ? this.$D + (A - this.$W) : A;\n if (B === b || B === V) {\n var te = this.clone().set(I, 1);\n te.$d[G](Q), te.init(), this.$d = te.set(I, Math.min(this.$D, te.daysInMonth())).$d;\n } else\n G && this.$d[G](Q);\n return this.init(), this;\n }, y.set = function(M, A) {\n return this.clone().$set(M, A);\n }, y.get = function(M) {\n return this[_.p(M)]();\n }, y.add = function(M, A) {\n var $, B = this;\n M = Number(M);\n var F = _.p(A), G = function(oe) {\n var ie = N(B);\n return _.w(ie.date(ie.date() + Math.round(oe * M)), B);\n };\n if (F === b)\n return this.set(b, this.$M + M);\n if (F === V)\n return this.set(V, this.$y + M);\n if (F === c)\n return G(1);\n if (F === g)\n return G(7);\n var Q = ($ = {}, $[s] = t, $[h] = a, $[v] = u, $)[F] || 1, te = this.$d.getTime() + M * Q;\n return _.w(te, this);\n }, y.subtract = function(M, A) {\n return this.add(-1 * M, A);\n }, y.format = function(M) {\n var A = this, $ = this.$locale();\n if (!this.isValid())\n return $.invalidDate || x;\n var B = M || \"YYYY-MM-DDTHH:mm:ssZ\", F = _.z(this), G = this.$H, Q = this.$m, te = this.$M, oe = $.weekdays, ie = $.months, we = $.meridiem, ne = function(re, fe, ge, ke) {\n return re && (re[fe] || re(A, B)) || ge[fe].slice(0, ke);\n }, be = function(re) {\n return _.s(G % 12 || 12, re, \"0\");\n }, he = we || function(re, fe, ge) {\n var ke = re < 12 ? \"AM\" : \"PM\";\n return ge ? ke.toLowerCase() : ke;\n };\n return B.replace(E, function(re, fe) {\n return fe || function(ge) {\n switch (ge) {\n case \"YY\":\n return String(A.$y).slice(-2);\n case \"YYYY\":\n return _.s(A.$y, 4, \"0\");\n case \"M\":\n return te + 1;\n case \"MM\":\n return _.s(te + 1, 2, \"0\");\n case \"MMM\":\n return ne($.monthsShort, te, ie, 3);\n case \"MMMM\":\n return ne(ie, te);\n case \"D\":\n return A.$D;\n case \"DD\":\n return _.s(A.$D, 2, \"0\");\n case \"d\":\n return String(A.$W);\n case \"dd\":\n return ne($.weekdaysMin, A.$W, oe, 2);\n case \"ddd\":\n return ne($.weekdaysShort, A.$W, oe, 3);\n case \"dddd\":\n return oe[A.$W];\n case \"H\":\n return String(G);\n case \"HH\":\n return _.s(G, 2, \"0\");\n case \"h\":\n return be(1);\n case \"hh\":\n return be(2);\n case \"a\":\n return he(G, Q, !0);\n case \"A\":\n return he(G, Q, !1);\n case \"m\":\n return String(Q);\n case \"mm\":\n return _.s(Q, 2, \"0\");\n case \"s\":\n return String(A.$s);\n case \"ss\":\n return _.s(A.$s, 2, \"0\");\n case \"SSS\":\n return _.s(A.$ms, 3, \"0\");\n case \"Z\":\n return F;\n }\n return null;\n }(re) || F.replace(\":\", \"\");\n });\n }, y.utcOffset = function() {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, y.diff = function(M, A, $) {\n var B, F = this, G = _.p(A), Q = N(M), te = (Q.utcOffset() - this.utcOffset()) * t, oe = this - Q, ie = function() {\n return _.m(F, Q);\n };\n switch (G) {\n case V:\n B = ie() / 12;\n break;\n case b:\n B = ie();\n break;\n case S:\n B = ie() / 3;\n break;\n case g:\n B = (oe - te) / 6048e5;\n break;\n case c:\n B = (oe - te) / 864e5;\n break;\n case h:\n B = oe / a;\n break;\n case s:\n B = oe / t;\n break;\n case v:\n B = oe / u;\n break;\n default:\n B = oe;\n }\n return $ ? B : _.a(B);\n }, y.daysInMonth = function() {\n return this.endOf(b).$D;\n }, y.$locale = function() {\n return O[this.$L];\n }, y.locale = function(M, A) {\n if (!M)\n return this.$L;\n var $ = this.clone(), B = R(M, A, !0);\n return B && ($.$L = B), $;\n }, y.clone = function() {\n return _.w(this.$d, this);\n }, y.toDate = function() {\n return new Date(this.valueOf());\n }, y.toJSON = function() {\n return this.isValid() ? this.toISOString() : null;\n }, y.toISOString = function() {\n return this.$d.toISOString();\n }, y.toString = function() {\n return this.$d.toUTCString();\n }, C;\n }(), q = K.prototype;\n return N.prototype = q, [[\"$ms\", n], [\"$s\", v], [\"$m\", s], [\"$H\", h], [\"$W\", c], [\"$M\", b], [\"$y\", V], [\"$D\", I]].forEach(function(C) {\n q[C[1]] = function(y) {\n return this.$g(y, C[0], C[1]);\n };\n }), N.extend = function(C, y) {\n return C.$i || (C(y, K, N), C.$i = !0), N;\n }, N.locale = R, N.isDayjs = o, N.unix = function(C) {\n return N(1e3 * C);\n }, N.en = O[T], N.Ls = O, N.p = {}, N;\n });\n})(Tt);\nvar To = Tt.exports;\nconst i = /* @__PURE__ */ Ce(To);\nvar At = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n return function(u, t, a) {\n var n = t.prototype, v = function(b) {\n return b && (b.indexOf ? b : b.s);\n }, s = function(b, S, V, I, x) {\n var D = b.name ? b : b.$locale(), E = v(D[S]), k = v(D[V]), w = E || k.map(function(T) {\n return T.slice(0, I);\n });\n if (!x)\n return w;\n var P = D.weekStart;\n return w.map(function(T, O) {\n return w[(O + (P || 0)) % 7];\n });\n }, h = function() {\n return a.Ls[a.locale()];\n }, c = function(b, S) {\n return b.formats[S] || function(V) {\n return V.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, function(I, x, D) {\n return x || D.slice(1);\n });\n }(b.formats[S.toUpperCase()]);\n }, g = function() {\n var b = this;\n return { months: function(S) {\n return S ? S.format(\"MMMM\") : s(b, \"months\");\n }, monthsShort: function(S) {\n return S ? S.format(\"MMM\") : s(b, \"monthsShort\", \"months\", 3);\n }, firstDayOfWeek: function() {\n return b.$locale().weekStart || 0;\n }, weekdays: function(S) {\n return S ? S.format(\"dddd\") : s(b, \"weekdays\");\n }, weekdaysMin: function(S) {\n return S ? S.format(\"dd\") : s(b, \"weekdaysMin\", \"weekdays\", 2);\n }, weekdaysShort: function(S) {\n return S ? S.format(\"ddd\") : s(b, \"weekdaysShort\", \"weekdays\", 3);\n }, longDateFormat: function(S) {\n return c(b.$locale(), S);\n }, meridiem: this.$locale().meridiem, ordinal: this.$locale().ordinal };\n };\n n.localeData = function() {\n return g.bind(this)();\n }, a.localeData = function() {\n var b = h();\n return { firstDayOfWeek: function() {\n return b.weekStart || 0;\n }, weekdays: function() {\n return a.weekdays();\n }, weekdaysShort: function() {\n return a.weekdaysShort();\n }, weekdaysMin: function() {\n return a.weekdaysMin();\n }, months: function() {\n return a.months();\n }, monthsShort: function() {\n return a.monthsShort();\n }, longDateFormat: function(S) {\n return c(b, S);\n }, meridiem: b.meridiem, ordinal: b.ordinal };\n }, a.months = function() {\n return s(h(), \"months\");\n }, a.monthsShort = function() {\n return s(h(), \"monthsShort\", \"months\", 3);\n }, a.weekdays = function(b) {\n return s(h(), \"weekdays\", null, null, b);\n }, a.weekdaysShort = function(b) {\n return s(h(), \"weekdaysShort\", \"weekdays\", 3, b);\n }, a.weekdaysMin = function(b) {\n return s(h(), \"weekdaysMin\", \"weekdays\", 2, b);\n };\n };\n });\n})(At);\nvar Ao = At.exports;\nconst Yo = /* @__PURE__ */ Ce(Ao);\nvar Yt = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n var u = { LTS: \"h:mm:ss A\", LT: \"h:mm A\", L: \"MM/DD/YYYY\", LL: \"MMMM D, YYYY\", LLL: \"MMMM D, YYYY h:mm A\", LLLL: \"dddd, MMMM D, YYYY h:mm A\" };\n return function(t, a, n) {\n var v = a.prototype, s = v.format;\n n.en.formats = u, v.format = function(h) {\n h === void 0 && (h = \"YYYY-MM-DDTHH:mm:ssZ\");\n var c = this.$locale().formats, g = function(b, S) {\n return b.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(V, I, x) {\n var D = x && x.toUpperCase();\n return I || S[x] || u[x] || S[D].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, function(E, k, w) {\n return k || w.slice(1);\n });\n });\n }(h, c === void 0 ? {} : c);\n return s.call(this, g);\n };\n };\n });\n})(Yt);\nvar Co = Yt.exports;\nconst Eo = /* @__PURE__ */ Ce(Co);\nvar Ct = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n var u = { LTS: \"h:mm:ss A\", LT: \"h:mm A\", L: \"MM/DD/YYYY\", LL: \"MMMM D, YYYY\", LLL: \"MMMM D, YYYY h:mm A\", LLLL: \"dddd, MMMM D, YYYY h:mm A\" }, t = /(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g, a = /\\d\\d/, n = /\\d\\d?/, v = /\\d*[^-_:/,()\\s\\d]+/, s = {}, h = function(x) {\n return (x = +x) + (x > 68 ? 1900 : 2e3);\n }, c = function(x) {\n return function(D) {\n this[x] = +D;\n };\n }, g = [/[+-]\\d\\d:?(\\d\\d)?|Z/, function(x) {\n (this.zone || (this.zone = {})).offset = function(D) {\n if (!D || D === \"Z\")\n return 0;\n var E = D.match(/([+-]|\\d\\d)/g), k = 60 * E[1] + (+E[2] || 0);\n return k === 0 ? 0 : E[0] === \"+\" ? -k : k;\n }(x);\n }], b = function(x) {\n var D = s[x];\n return D && (D.indexOf ? D : D.s.concat(D.f));\n }, S = function(x, D) {\n var E, k = s.meridiem;\n if (k) {\n for (var w = 1; w <= 24; w += 1)\n if (x.indexOf(k(w, 0, D)) > -1) {\n E = w > 12;\n break;\n }\n } else\n E = x === (D ? \"pm\" : \"PM\");\n return E;\n }, V = { A: [v, function(x) {\n this.afternoon = S(x, !1);\n }], a: [v, function(x) {\n this.afternoon = S(x, !0);\n }], S: [/\\d/, function(x) {\n this.milliseconds = 100 * +x;\n }], SS: [a, function(x) {\n this.milliseconds = 10 * +x;\n }], SSS: [/\\d{3}/, function(x) {\n this.milliseconds = +x;\n }], s: [n, c(\"seconds\")], ss: [n, c(\"seconds\")], m: [n, c(\"minutes\")], mm: [n, c(\"minutes\")], H: [n, c(\"hours\")], h: [n, c(\"hours\")], HH: [n, c(\"hours\")], hh: [n, c(\"hours\")], D: [n, c(\"day\")], DD: [a, c(\"day\")], Do: [v, function(x) {\n var D = s.ordinal, E = x.match(/\\d+/);\n if (this.day = E[0], D)\n for (var k = 1; k <= 31; k += 1)\n D(k).replace(/\\[|\\]/g, \"\") === x && (this.day = k);\n }], M: [n, c(\"month\")], MM: [a, c(\"month\")], MMM: [v, function(x) {\n var D = b(\"months\"), E = (b(\"monthsShort\") || D.map(function(k) {\n return k.slice(0, 3);\n })).indexOf(x) + 1;\n if (E < 1)\n throw new Error();\n this.month = E % 12 || E;\n }], MMMM: [v, function(x) {\n var D = b(\"months\").indexOf(x) + 1;\n if (D < 1)\n throw new Error();\n this.month = D % 12 || D;\n }], Y: [/[+-]?\\d+/, c(\"year\")], YY: [a, function(x) {\n this.year = h(x);\n }], YYYY: [/\\d{4}/, c(\"year\")], Z: g, ZZ: g };\n function I(x) {\n var D, E;\n D = x, E = s && s.formats;\n for (var k = (x = D.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(R, N, _) {\n var K = _ && _.toUpperCase();\n return N || E[_] || u[_] || E[K].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, function(q, C, y) {\n return C || y.slice(1);\n });\n })).match(t), w = k.length, P = 0; P < w; P += 1) {\n var T = k[P], O = V[T], l = O && O[0], o = O && O[1];\n k[P] = o ? { regex: l, parser: o } : T.replace(/^\\[|\\]$/g, \"\");\n }\n return function(R) {\n for (var N = {}, _ = 0, K = 0; _ < w; _ += 1) {\n var q = k[_];\n if (typeof q == \"string\")\n K += q.length;\n else {\n var C = q.regex, y = q.parser, M = R.slice(K), A = C.exec(M)[0];\n y.call(N, A), R = R.replace(A, \"\");\n }\n }\n return function($) {\n var B = $.afternoon;\n if (B !== void 0) {\n var F = $.hours;\n B ? F < 12 && ($.hours += 12) : F === 12 && ($.hours = 0), delete $.afternoon;\n }\n }(N), N;\n };\n }\n return function(x, D, E) {\n E.p.customParseFormat = !0, x && x.parseTwoDigitYear && (h = x.parseTwoDigitYear);\n var k = D.prototype, w = k.parse;\n k.parse = function(P) {\n var T = P.date, O = P.utc, l = P.args;\n this.$u = O;\n var o = l[1];\n if (typeof o == \"string\") {\n var R = l[2] === !0, N = l[3] === !0, _ = R || N, K = l[2];\n N && (K = l[2]), s = this.$locale(), !R && K && (s = E.Ls[K]), this.$d = function(M, A, $) {\n try {\n if ([\"x\", \"X\"].indexOf(A) > -1)\n return new Date((A === \"X\" ? 1e3 : 1) * M);\n var B = I(A)(M), F = B.year, G = B.month, Q = B.day, te = B.hours, oe = B.minutes, ie = B.seconds, we = B.milliseconds, ne = B.zone, be = /* @__PURE__ */ new Date(), he = Q || (F || G ? 1 : be.getDate()), re = F || be.getFullYear(), fe = 0;\n F && !G || (fe = G > 0 ? G - 1 : be.getMonth());\n var ge = te || 0, ke = oe || 0, Re = ie || 0, Ie = we || 0;\n return ne ? new Date(Date.UTC(re, fe, he, ge, ke, Re, Ie + 60 * ne.offset * 1e3)) : $ ? new Date(Date.UTC(re, fe, he, ge, ke, Re, Ie)) : new Date(re, fe, he, ge, ke, Re, Ie);\n } catch {\n return /* @__PURE__ */ new Date(\"\");\n }\n }(T, o, O), this.init(), K && K !== !0 && (this.$L = this.locale(K).$L), _ && T != this.format(o) && (this.$d = /* @__PURE__ */ new Date(\"\")), s = {};\n } else if (o instanceof Array)\n for (var q = o.length, C = 1; C <= q; C += 1) {\n l[1] = o[C - 1];\n var y = E.apply(this, l);\n if (y.isValid()) {\n this.$d = y.$d, this.$L = y.$L, this.init();\n break;\n }\n C === q && (this.$d = /* @__PURE__ */ new Date(\"\"));\n }\n else\n w.call(this, P);\n };\n };\n });\n})(Ct);\nvar Lo = Ct.exports;\nconst Fo = /* @__PURE__ */ Ce(Lo);\nvar Et = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n return function(u, t, a) {\n t.prototype.isToday = function() {\n var n = \"YYYY-MM-DD\", v = a();\n return this.format(n) === v.format(n);\n };\n };\n });\n})(Et);\nvar Bo = Et.exports;\nconst No = /* @__PURE__ */ Ce(Bo);\nvar Lt = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n return function(u, t, a) {\n t.prototype.isBetween = function(n, v, s, h) {\n var c = a(n), g = a(v), b = (h = h || \"()\")[0] === \"(\", S = h[1] === \")\";\n return (b ? this.isAfter(c, s) : !this.isBefore(c, s)) && (S ? this.isBefore(g, s) : !this.isAfter(g, s)) || (b ? this.isBefore(c, s) : !this.isAfter(c, s)) && (S ? this.isAfter(g, s) : !this.isBefore(g, s));\n };\n };\n });\n})(Lt);\nvar Ro = Lt.exports;\nconst Io = /* @__PURE__ */ Ce(Ro);\nvar Ft = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n var u, t, a = 1e3, n = 6e4, v = 36e5, s = 864e5, h = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, c = 31536e6, g = 2628e6, b = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/, S = { years: c, months: g, days: s, hours: v, minutes: n, seconds: a, milliseconds: 1, weeks: 6048e5 }, V = function(O) {\n return O instanceof P;\n }, I = function(O, l, o) {\n return new P(O, o, l.$l);\n }, x = function(O) {\n return t.p(O) + \"s\";\n }, D = function(O) {\n return O < 0;\n }, E = function(O) {\n return D(O) ? Math.ceil(O) : Math.floor(O);\n }, k = function(O) {\n return Math.abs(O);\n }, w = function(O, l) {\n return O ? D(O) ? { negative: !0, format: \"\" + k(O) + l } : { negative: !1, format: \"\" + O + l } : { negative: !1, format: \"\" };\n }, P = function() {\n function O(o, R, N) {\n var _ = this;\n if (this.$d = {}, this.$l = N, o === void 0 && (this.$ms = 0, this.parseFromMilliseconds()), R)\n return I(o * S[x(R)], this);\n if (typeof o == \"number\")\n return this.$ms = o, this.parseFromMilliseconds(), this;\n if (typeof o == \"object\")\n return Object.keys(o).forEach(function(C) {\n _.$d[x(C)] = o[C];\n }), this.calMilliseconds(), this;\n if (typeof o == \"string\") {\n var K = o.match(b);\n if (K) {\n var q = K.slice(2).map(function(C) {\n return C != null ? Number(C) : 0;\n });\n return this.$d.years = q[0], this.$d.months = q[1], this.$d.weeks = q[2], this.$d.days = q[3], this.$d.hours = q[4], this.$d.minutes = q[5], this.$d.seconds = q[6], this.calMilliseconds(), this;\n }\n }\n return this;\n }\n var l = O.prototype;\n return l.calMilliseconds = function() {\n var o = this;\n this.$ms = Object.keys(this.$d).reduce(function(R, N) {\n return R + (o.$d[N] || 0) * S[N];\n }, 0);\n }, l.parseFromMilliseconds = function() {\n var o = this.$ms;\n this.$d.years = E(o / c), o %= c, this.$d.months = E(o / g), o %= g, this.$d.days = E(o / s), o %= s, this.$d.hours = E(o / v), o %= v, this.$d.minutes = E(o / n), o %= n, this.$d.seconds = E(o / a), o %= a, this.$d.milliseconds = o;\n }, l.toISOString = function() {\n var o = w(this.$d.years, \"Y\"), R = w(this.$d.months, \"M\"), N = +this.$d.days || 0;\n this.$d.weeks && (N += 7 * this.$d.weeks);\n var _ = w(N, \"D\"), K = w(this.$d.hours, \"H\"), q = w(this.$d.minutes, \"M\"), C = this.$d.seconds || 0;\n this.$d.milliseconds && (C += this.$d.milliseconds / 1e3, C = Math.round(1e3 * C) / 1e3);\n var y = w(C, \"S\"), M = o.negative || R.negative || _.negative || K.negative || q.negative || y.negative, A = K.format || q.format || y.format ? \"T\" : \"\", $ = (M ? \"-\" : \"\") + \"P\" + o.format + R.format + _.format + A + K.format + q.format + y.format;\n return $ === \"P\" || $ === \"-P\" ? \"P0D\" : $;\n }, l.toJSON = function() {\n return this.toISOString();\n }, l.format = function(o) {\n var R = o || \"YYYY-MM-DDTHH:mm:ss\", N = { Y: this.$d.years, YY: t.s(this.$d.years, 2, \"0\"), YYYY: t.s(this.$d.years, 4, \"0\"), M: this.$d.months, MM: t.s(this.$d.months, 2, \"0\"), D: this.$d.days, DD: t.s(this.$d.days, 2, \"0\"), H: this.$d.hours, HH: t.s(this.$d.hours, 2, \"0\"), m: this.$d.minutes, mm: t.s(this.$d.minutes, 2, \"0\"), s: this.$d.seconds, ss: t.s(this.$d.seconds, 2, \"0\"), SSS: t.s(this.$d.milliseconds, 3, \"0\") };\n return R.replace(h, function(_, K) {\n return K || String(N[_]);\n });\n }, l.as = function(o) {\n return this.$ms / S[x(o)];\n }, l.get = function(o) {\n var R = this.$ms, N = x(o);\n return N === \"milliseconds\" ? R %= 1e3 : R = N === \"weeks\" ? E(R / S[N]) : this.$d[N], R || 0;\n }, l.add = function(o, R, N) {\n var _;\n return _ = R ? o * S[x(R)] : V(o) ? o.$ms : I(o, this).$ms, I(this.$ms + _ * (N ? -1 : 1), this);\n }, l.subtract = function(o, R) {\n return this.add(o, R, !0);\n }, l.locale = function(o) {\n var R = this.clone();\n return R.$l = o, R;\n }, l.clone = function() {\n return I(this.$ms, this);\n }, l.humanize = function(o) {\n return u().add(this.$ms, \"ms\").locale(this.$l).fromNow(!o);\n }, l.valueOf = function() {\n return this.asMilliseconds();\n }, l.milliseconds = function() {\n return this.get(\"milliseconds\");\n }, l.asMilliseconds = function() {\n return this.as(\"milliseconds\");\n }, l.seconds = function() {\n return this.get(\"seconds\");\n }, l.asSeconds = function() {\n return this.as(\"seconds\");\n }, l.minutes = function() {\n return this.get(\"minutes\");\n }, l.asMinutes = function() {\n return this.as(\"minutes\");\n }, l.hours = function() {\n return this.get(\"hours\");\n }, l.asHours = function() {\n return this.as(\"hours\");\n }, l.days = function() {\n return this.get(\"days\");\n }, l.asDays = function() {\n return this.as(\"days\");\n }, l.weeks = function() {\n return this.get(\"weeks\");\n }, l.asWeeks = function() {\n return this.as(\"weeks\");\n }, l.months = function() {\n return this.get(\"months\");\n }, l.asMonths = function() {\n return this.as(\"months\");\n }, l.years = function() {\n return this.get(\"years\");\n }, l.asYears = function() {\n return this.as(\"years\");\n }, O;\n }(), T = function(O, l, o) {\n return O.add(l.years() * o, \"y\").add(l.months() * o, \"M\").add(l.days() * o, \"d\").add(l.hours() * o, \"h\").add(l.minutes() * o, \"m\").add(l.seconds() * o, \"s\").add(l.milliseconds() * o, \"ms\");\n };\n return function(O, l, o) {\n u = o, t = o().$utils(), o.duration = function(_, K) {\n var q = o.locale();\n return I(_, { $l: q }, K);\n }, o.isDuration = V;\n var R = l.prototype.add, N = l.prototype.subtract;\n l.prototype.add = function(_, K) {\n return V(_) ? T(this, _, 1) : R.bind(this)(_, K);\n }, l.prototype.subtract = function(_, K) {\n return V(_) ? T(this, _, -1) : N.bind(this)(_, K);\n };\n };\n });\n})(Ft);\nvar Ho = Ft.exports;\nconst Uo = /* @__PURE__ */ Ce(Ho);\nvar Bt = { exports: {} };\n(function(e, r) {\n (function(u, t) {\n e.exports = t();\n })(Ye, function() {\n var u = \"week\", t = \"year\";\n return function(a, n, v) {\n var s = n.prototype;\n s.week = function(h) {\n if (h === void 0 && (h = null), h !== null)\n return this.add(7 * (h - this.week()), \"day\");\n var c = this.$locale().yearStart || 1;\n if (this.month() === 11 && this.date() > 25) {\n var g = v(this).startOf(t).add(1, t).date(c), b = v(this).endOf(u);\n if (g.isBefore(b))\n return 1;\n }\n var S = v(this).startOf(t).date(c).startOf(u).subtract(1, \"millisecond\"), V = this.diff(S, u, !0);\n return V < 0 ? v(this).startOf(\"week\").week() : Math.ceil(V);\n }, s.weeks = function(h) {\n return h === void 0 && (h = null), this.week(h);\n };\n };\n });\n})(Bt);\nvar zo = Bt.exports;\nconst Wo = /* @__PURE__ */ Ce(zo);\nfunction je(e, r) {\n const u = De(e, r);\n if (!u)\n throw new Error(`Could not resolve ${e.description}`);\n return u;\n}\nconst pt = Object.fromEntries(\n Object.entries(/* @__PURE__ */ Object.assign({ \"../node_modules/dayjs/esm/locale/af.js\": () => import(\"./af-3f5e3754.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/am.js\": () => import(\"./am-bc833d79.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-dz.js\": () => import(\"./ar-dz-2b677c27.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-iq.js\": () => import(\"./ar-iq-9280b179.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-kw.js\": () => import(\"./ar-kw-06673fb3.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-ly.js\": () => import(\"./ar-ly-b364c556.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-ma.js\": () => import(\"./ar-ma-e9b96f88.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-sa.js\": () => import(\"./ar-sa-920b6966.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar-tn.js\": () => import(\"./ar-tn-5d2ebe87.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ar.js\": () => import(\"./ar-a3aa818f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/az.js\": () => import(\"./az-659b56f9.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/be.js\": () => import(\"./be-3b4f9783.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bg.js\": () => import(\"./bg-0672cd7d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bi.js\": () => import(\"./bi-951682c2.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bm.js\": () => import(\"./bm-9d7e855b.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bn-bd.js\": () => import(\"./bn-bd-087a7a1c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bn.js\": () => import(\"./bn-0c0acd44.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bo.js\": () => import(\"./bo-19632568.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/br.js\": () => import(\"./br-5a3443b7.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/bs.js\": () => import(\"./bs-ad641200.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ca.js\": () => import(\"./ca-035ea682.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/cs.js\": () => import(\"./cs-debeec9e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/cv.js\": () => import(\"./cv-dcf48c54.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/cy.js\": () => import(\"./cy-daa2e33d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/da.js\": () => import(\"./da-dc449cac.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/de-at.js\": () => import(\"./de-at-5acf665a.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/de-ch.js\": () => import(\"./de-ch-6b981a67.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/de.js\": () => import(\"./de-77586bc3.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/dv.js\": () => import(\"./dv-65849a7f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/el.js\": () => import(\"./el-ae4ad393.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-au.js\": () => import(\"./en-au-8c36e702.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-ca.js\": () => import(\"./en-ca-c5437740.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-gb.js\": () => import(\"./en-gb-c2cc134a.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-ie.js\": () => import(\"./en-ie-d3ac9ac2.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-il.js\": () => import(\"./en-il-6dd24280.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-in.js\": () => import(\"./en-in-2f2879f3.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-nz.js\": () => import(\"./en-nz-c996ce95.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-sg.js\": () => import(\"./en-sg-278f7244.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en-tt.js\": () => import(\"./en-tt-dcca6678.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/en.js\": () => import(\"./en-4402d6fc.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/eo.js\": () => import(\"./eo-2b962c7e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/es-do.js\": () => import(\"./es-do-e5ec18dc.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/es-mx.js\": () => import(\"./es-mx-0b0fdda9.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/es-pr.js\": () => import(\"./es-pr-ecf92870.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/es-us.js\": () => import(\"./es-us-9a974819.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/es.js\": () => import(\"./es-542d397d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/et.js\": () => import(\"./et-cc745c6f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/eu.js\": () => import(\"./eu-1819a0bf.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fa.js\": () => import(\"./fa-759da5ca.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fi.js\": () => import(\"./fi-48c34162.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fo.js\": () => import(\"./fo-1a56e22a.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fr-ca.js\": () => import(\"./fr-ca-a08d1ab6.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fr-ch.js\": () => import(\"./fr-ch-9e54ac3f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fr.js\": () => import(\"./fr-34da226b.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/fy.js\": () => import(\"./fy-32e86ec3.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ga.js\": () => import(\"./ga-5443425a.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/gd.js\": () => import(\"./gd-525324a8.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/gl.js\": () => import(\"./gl-ecd4c576.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/gom-latn.js\": () => import(\"./gom-latn-0de894a4.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/gu.js\": () => import(\"./gu-f8a9ff06.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/he.js\": () => import(\"./he-c3d5738f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/hi.js\": () => import(\"./hi-06d9d378.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/hr.js\": () => import(\"./hr-df6e22c2.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ht.js\": () => import(\"./ht-560ce1fa.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/hu.js\": () => import(\"./hu-36659a19.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/hy-am.js\": () => import(\"./hy-am-ec1e6b6f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/id.js\": () => import(\"./id-e83ede43.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/is.js\": () => import(\"./is-112d618e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/it-ch.js\": () => import(\"./it-ch-74dc20fb.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/it.js\": () => import(\"./it-a9bef34d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ja.js\": () => import(\"./ja-81ac0bce.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/jv.js\": () => import(\"./jv-eb80b191.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ka.js\": () => import(\"./ka-408178cc.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/kk.js\": () => import(\"./kk-7182d80c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/km.js\": () => import(\"./km-c8d90f37.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/kn.js\": () => import(\"./kn-1ef13da8.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ko.js\": () => import(\"./ko-d74dbac1.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ku.js\": () => import(\"./ku-217c312b.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ky.js\": () => import(\"./ky-9beeab3e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/lb.js\": () => import(\"./lb-bbb0769c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/lo.js\": () => import(\"./lo-c0a222fc.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/lt.js\": () => import(\"./lt-7733040c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/lv.js\": () => import(\"./lv-8456bf8c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/me.js\": () => import(\"./me-60049fb4.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/mi.js\": () => import(\"./mi-a00211ea.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/mk.js\": () => import(\"./mk-750f2eb3.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ml.js\": () => import(\"./ml-3d864495.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/mn.js\": () => import(\"./mn-c3b569a5.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/mr.js\": () => import(\"./mr-caa70638.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ms-my.js\": () => import(\"./ms-my-9edfd210.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ms.js\": () => import(\"./ms-8a0b04c8.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/mt.js\": () => import(\"./mt-5924bb24.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/my.js\": () => import(\"./my-7ec0e79b.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/nb.js\": () => import(\"./nb-55474232.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ne.js\": () => import(\"./ne-28b71d4d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/nl-be.js\": () => import(\"./nl-be-ab2f9375.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/nl.js\": () => import(\"./nl-f2df7562.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/nn.js\": () => import(\"./nn-ae0c69b8.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/oc-lnc.js\": () => import(\"./oc-lnc-e86add7d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/pa-in.js\": () => import(\"./pa-in-58db4e88.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/pl.js\": () => import(\"./pl-6123f464.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/pt-br.js\": () => import(\"./pt-br-72da3648.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/pt.js\": () => import(\"./pt-6d21f766.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/rn.js\": () => import(\"./rn-fe91690b.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ro.js\": () => import(\"./ro-f0333df1.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ru.js\": () => import(\"./ru-8092165f.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/rw.js\": () => import(\"./rw-8e49f17e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sd.js\": () => import(\"./sd-f5f464cc.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/se.js\": () => import(\"./se-d0247819.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/si.js\": () => import(\"./si-23229411.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sk.js\": () => import(\"./sk-2ae651e5.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sl.js\": () => import(\"./sl-d651cb86.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sq.js\": () => import(\"./sq-851e451a.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sr-cyrl.js\": () => import(\"./sr-cyrl-150c337e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sr.js\": () => import(\"./sr-26ffbdc9.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ss.js\": () => import(\"./ss-70c27ddd.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sv-fi.js\": () => import(\"./sv-fi-53a8b8bd.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sv.js\": () => import(\"./sv-bf43bdc9.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/sw.js\": () => import(\"./sw-3c86b419.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ta.js\": () => import(\"./ta-dde447c0.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/te.js\": () => import(\"./te-d039e67a.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tet.js\": () => import(\"./tet-2478e8c8.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tg.js\": () => import(\"./tg-374d7196.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/th.js\": () => import(\"./th-cfb73f82.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tk.js\": () => import(\"./tk-6502e590.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tl-ph.js\": () => import(\"./tl-ph-f36e80af.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tlh.js\": () => import(\"./tlh-6d81a812.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tr.js\": () => import(\"./tr-1608d107.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tzl.js\": () => import(\"./tzl-e019f0a0.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tzm-latn.js\": () => import(\"./tzm-latn-4a3fedcb.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/tzm.js\": () => import(\"./tzm-9a26d476.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ug-cn.js\": () => import(\"./ug-cn-7370b4b7.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/uk.js\": () => import(\"./uk-f2be452c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/ur.js\": () => import(\"./ur-5e01f781.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/uz-latn.js\": () => import(\"./uz-latn-ec9b852e.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/uz.js\": () => import(\"./uz-f44d7936.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/vi.js\": () => import(\"./vi-8106a30d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/x-pseudo.js\": () => import(\"./x-pseudo-20ac0200.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/yo.js\": () => import(\"./yo-45cb4db7.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/zh-cn.js\": () => import(\"./zh-cn-7af2941c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/zh-hk.js\": () => import(\"./zh-hk-857b348c.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/zh-tw.js\": () => import(\"./zh-tw-58dac95d.js\").then((e) => e.default), \"../node_modules/dayjs/esm/locale/zh.js\": () => import(\"./zh-26803c4f.js\").then((e) => e.default) })).map(\n ([e, r]) => {\n var u;\n return [(u = e.match(/([\\w-]*)\\.js$/)) == null ? void 0 : u[1], r];\n }\n )\n), Ko = { class: \"flex justify-between items-center px-2 py-1.5\" }, Go = { class: \"flex-shrink-0\" }, Zo = { class: \"inline-flex rounded-full\" }, qo = {\n class: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, Jo = [\"d\"], Xo = { class: \"px-1.5 space-x-1.5 flex flex-1\" }, Qo = { class: \"flex-1 flex rounded-md\" }, er = [\"textContent\"], tr = { class: \"flex-1 flex rounded-md\" }, or = [\"textContent\"], rr = { class: \"flex-shrink-0\" }, ar = { class: \"inline-flex rounded-full\" }, nr = {\n class: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, sr = [\"d\"], Ze = /* @__PURE__ */ de({\n __name: \"Header\",\n props: {\n panel: {},\n calendar: {}\n },\n setup(e) {\n return (r, u) => (z(), Z(\"div\", Ko, [\n Y(\"div\", Go, [\n me(Y(\"span\", Zo, [\n Y(\"button\", {\n type: \"button\",\n class: \"p-1.5 rounded-full bg-white text-vtd-secondary-600 transition-colors border border-transparent hover:bg-vtd-secondary-100 hover:text-vtd-secondary-900 focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none dark:bg-vtd-secondary-800 dark:text-vtd-secondary-300 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-secondary-300 dark:focus:bg-vtd-secondary-600 dark:focus:text-vtd-secondary-100 dark:focus:border-vtd-primary-500 dark:focus:ring-opacity-25 dark:focus:bg-opacity-50\",\n onClick: u[0] || (u[0] = (t) => r.panel.calendar ? r.calendar.onPrevious() : r.calendar.onPreviousYear())\n }, [\n (z(), Z(\"svg\", qo, [\n Y(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: r.panel.calendar ? \"M15 19l-7-7 7-7\" : \"M11 19l-7-7 7-7m8 14l-7-7 7-7\"\n }, null, 8, Jo)\n ]))\n ])\n ], 512), [\n [pe, r.panel.calendar || r.panel.year]\n ])\n ]),\n Y(\"div\", Xo, [\n Y(\"span\", Qo, [\n Y(\"button\", {\n type: \"button\",\n class: \"px-3 py-1.5 block w-full leading-relaxed rounded-md bg-white text-xs 2xl:text-sm tracking-wide text-vtd-secondary-600 font-semibold sm:font-medium transition-colors border border-transparent hover:bg-vtd-secondary-100 hover:text-vtd-secondary-900 focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none uppercase dark:bg-vtd-secondary-800 dark:text-vtd-secondary-300 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-secondary-300 dark:focus:bg-vtd-secondary-600 dark:focus:text-vtd-secondary-100 dark:focus:border-vtd-primary-500 dark:focus:ring-opacity-25 dark:focus:bg-opacity-50\",\n onClick: u[1] || (u[1] = (t) => r.calendar.openMonth()),\n textContent: ae(r.calendar.month)\n }, null, 8, er)\n ]),\n Y(\"span\", tr, [\n Y(\"button\", {\n type: \"button\",\n class: \"px-3 py-1.5 block w-full leading-relaxed rounded-md bg-white text-xs 2xl:text-sm tracking-wide text-vtd-secondary-600 font-semibold sm:font-medium transition-colors border border-transparent hover:bg-vtd-secondary-100 hover:text-vtd-secondary-900 focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none uppercase dark:bg-vtd-secondary-800 dark:text-vtd-secondary-300 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-secondary-300 dark:focus:bg-vtd-secondary-600 dark:focus:text-vtd-secondary-100 dark:focus:border-vtd-primary-500 dark:focus:ring-opacity-25 dark:focus:bg-opacity-50\",\n onClick: u[2] || (u[2] = (t) => r.calendar.openYear()),\n textContent: ae(r.calendar.year)\n }, null, 8, or)\n ])\n ]),\n Y(\"div\", rr, [\n me(Y(\"span\", ar, [\n Y(\"button\", {\n type: \"button\",\n class: \"p-1.5 rounded-full bg-white text-vtd-secondary-600 transition-colors border border-transparent hover:bg-vtd-secondary-100 hover:text-vtd-secondary-900 focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none dark:bg-vtd-secondary-800 dark:text-vtd-secondary-300 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-secondary-300 dark:focus:bg-vtd-secondary-600 dark:focus:text-vtd-secondary-100 dark:focus:border-vtd-primary-500 dark:focus:ring-opacity-25 dark:focus:bg-opacity-50\",\n onClick: u[3] || (u[3] = (t) => r.panel.calendar ? r.calendar.onNext() : r.calendar.onNextYear())\n }, [\n (z(), Z(\"svg\", nr, [\n Y(\"path\", {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: r.panel.calendar ? \"M9 5l7 7-7 7\" : \"M13 5l7 7-7 7M5 5l7 7-7 7\"\n }, null, 8, sr)\n ]))\n ])\n ], 512), [\n [pe, r.panel.calendar || r.panel.year]\n ])\n ])\n ]));\n }\n}), Nt = Symbol(\"isBetweenRange\"), Rt = Symbol(\n \"betweenRangeClasses\"\n), It = Symbol(\"datepickerClasses\"), Ht = Symbol(\"atMouseOver\"), Ut = Symbol(\"setToToday\"), zt = Symbol(\"setToYesterday\"), Wt = Symbol(\"setToLastDay\"), Kt = Symbol(\"setToThisMonth\"), Gt = Symbol(\"setToLastMonth\"), Zt = Symbol(\"setToCustomShortcut\"), lr = {\n key: 0,\n class: \"relative w-full border-t border-b-0 sm:border-t-0 sm:border-b lg:border-b-0 lg:border-r border-black/[.1] order-last sm:order-none dark:border-vtd-secondary-700/[1] sm:mt-1 lg:mr-1 sm:mb-1 lg:mb-0 sm:mx-1 lg:mx-0 sm:w-auto\"\n}, ur = {\n key: 0,\n class: \"grid grid-cols-2 sm:grid-cols-3 gap-1 lg:block w-full pr-5 sm:pr-6 mt-1.5 sm:mt-0 sm:mb-1.5 lg:mb-0\"\n}, dr = [\"onClick\", \"textContent\"], ir = {\n key: 1,\n class: \"grid grid-cols-2 sm:grid-cols-3 gap-1 lg:block w-full pr-5 sm:pr-6 mt-1.5 sm:mt-0 sm:mb-1.5 lg:mb-0\"\n}, vt = /* @__PURE__ */ de({\n __name: \"Shortcut\",\n props: {\n shortcuts: { type: [Boolean, Function] },\n close: { type: Function },\n asRange: { type: Boolean },\n asSingle: { type: Boolean },\n i18n: {}\n },\n setup(e) {\n const r = e, u = je(Ut), t = je(zt), a = je(Wt), n = je(Kt), v = je(Gt), s = je(Zt), h = ue(() => typeof r.shortcuts == \"function\" ? r.shortcuts() : !1);\n return (c, g) => r.asRange && r.asSingle || r.asRange && !r.asSingle ? (z(), Z(\"div\", lr, [\n h.value ? (z(), Z(\"ol\", ur, [\n (z(!0), Z(xe, null, Ke(h.value, (b, S) => (z(), Z(\"li\", { key: S }, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: $e((V) => le(s)(b, c.close), [\"prevent\"]),\n textContent: ae(b.label)\n }, null, 8, dr)\n ]))), 128))\n ])) : (z(), Z(\"ol\", ir, [\n Y(\"li\", null, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: g[0] || (g[0] = $e((b) => le(u)(c.close), [\"prevent\"]))\n }, ae(r.i18n.today), 1)\n ]),\n Y(\"li\", null, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: g[1] || (g[1] = $e((b) => le(t)(c.close), [\"prevent\"]))\n }, ae(r.i18n.yesterday), 1)\n ]),\n Y(\"li\", null, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: g[2] || (g[2] = $e((b) => le(a)(7, c.close), [\"prevent\"]))\n }, ae(r.i18n.past(7)), 1)\n ]),\n Y(\"li\", null, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: g[3] || (g[3] = $e((b) => le(a)(30, c.close), [\"prevent\"]))\n }, ae(r.i18n.past(30)), 1)\n ]),\n Y(\"li\", null, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: g[4] || (g[4] = $e((b) => le(n)(c.close), [\"prevent\"]))\n }, ae(r.i18n.currentMonth), 1)\n ]),\n Y(\"li\", null, [\n Y(\"a\", {\n href: \"#\",\n class: \"vtd-shortcuts block text-sm lg:text-xs px-2 py-2 sm:leading-4 whitespace-nowrap font-medium rounded text-vtd-primary-600 hover:text-vtd-primary-700 transition-colors hover:bg-vtd-secondary-100 focus:bg-vtd-secondary-100 focus:text-vtd-primary-600 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-primary-300 dark:text-vtd-primary-400 dark:focus:bg-vtd-secondary-700 dark:focus:text-vtd-primary-300\",\n onClick: g[5] || (g[5] = $e((b) => le(v)(c.close), [\"prevent\"]))\n }, ae(r.i18n.pastMonth), 1)\n ])\n ]))\n ])) : ye(\"\", !0);\n }\n}), cr = { class: \"grid grid-cols-7 gap-y-0.5 my-1\" }, fr = {\n key: 0,\n class: \"col-span-7 border-b relative dark:border-vtd-secondary-600\"\n}, mr = { class: \"absolute -left-2 top-1/2 -translate-y-2/4 bg-white dark:bg-vtd-secondary-800 text-[8px] pr-2 text-vtd-secondary-400\" }, pr = [\"data-tooltip\"], vr = [\"disabled\", \"data-date\", \"onClick\", \"onMouseenter\", \"onFocusin\", \"textContent\"], qe = /* @__PURE__ */ de({\n __name: \"Calendar\",\n props: {\n calendar: {},\n weeks: {},\n weekNumber: { type: Boolean },\n asRange: { type: Boolean }\n },\n emits: [\"updateDate\"],\n setup(e, { emit: r }) {\n const u = r, t = je(Nt), a = je(Rt), n = je(It), v = je(Ht);\n return (s, h) => (z(), Z(\"div\", cr, [\n ee(eo, {\n \"enter-from-class\": \"opacity-0\",\n \"enter-to-class\": \"opacity-100\",\n \"enter-active-class\": \"transition-opacity ease-out duration-300\",\n \"leave-active-class\": \"transition-opacity ease-in duration-200\",\n \"leave-from-class\": \"opacity-100\",\n \"leave-to-class\": \"opacity-0\"\n }, {\n default: Fe(() => [\n (z(!0), Z(xe, null, Ke(s.calendar.date(), (c, g) => (z(), Z(xe, { key: g }, [\n g % 7 === 0 && s.weekNumber ? (z(), Z(\"div\", fr, [\n Y(\"span\", mr, ae(c.week()), 1)\n ])) : ye(\"\", !0),\n Y(\"div\", {\n class: Te([\"relative\", { \"vtd-tooltip\": s.asRange && c.duration() }]),\n \"data-tooltip\": `${c.duration()}`\n }, [\n ee(yt, {\n \"enter-from-class\": \"opacity-0\",\n \"enter-to-class\": \"opacity-100\",\n \"enter-active-class\": \"transition-opacity ease-out duration-200\",\n \"leave-active-class\": \"transition-opacity ease-in duration-150\",\n \"leave-from-class\": \"opacity-100\",\n \"leave-to-class\": \"opacity-0\"\n }, {\n default: Fe(() => [\n le(t)(c) || c.hovered() ? (z(), Z(\"span\", {\n key: 0,\n class: Te([\"absolute bg-vtd-primary-100 bg-opacity-60 dark:bg-vtd-secondary-700 dark:bg-opacity-50\", le(a)(c)])\n }, null, 2)) : ye(\"\", !0)\n ]),\n _: 2\n }, 1024),\n Y(\"button\", {\n type: \"button\",\n class: Te([\"vtd-datepicker-date relative w-[2.7rem] h-[2.7rem] lg:w-10 lg:h-10 flex justify-center items-center text-xs 2xl:text-sm\", [\n le(n)(c),\n s.asRange ? \"transition-all\" : \"transition-colors\"\n ]]),\n disabled: c.disabled || c.inRange(),\n \"data-date\": c.toDate(),\n onClick: (b) => u(\"updateDate\", c),\n onMouseenter: (b) => le(v)(c),\n onFocusin: (b) => le(v)(c),\n textContent: ae(c.date())\n }, null, 42, vr)\n ], 10, pr)\n ], 64))), 128))\n ]),\n _: 1\n })\n ]));\n }\n}), hr = { class: \"flex flex-wrap\" }, yr = { class: \"flex rounded-md mt-1.5\" }, br = [\"onClick\", \"textContent\"], Je = /* @__PURE__ */ de({\n __name: \"Year\",\n props: {\n years: {}\n },\n emits: [\"updateYear\"],\n setup(e, { emit: r }) {\n const u = r;\n return (t, a) => (z(), Z(\"div\", hr, [\n (z(!0), Z(xe, null, Ke(t.years, (n, v) => (z(), Z(\"div\", {\n key: v,\n class: \"w-1/2 px-0.5\"\n }, [\n Y(\"span\", yr, [\n Y(\"button\", {\n type: \"button\",\n class: \"px-3 py-2 block w-full leading-6 rounded-md bg-white text-xs 2xl:text-sm tracking-wide text-vtd-secondary-600 font-medium transition-colors border border-transparent hover:bg-vtd-secondary-100 hover:text-vtd-secondary-900 focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none uppercase dark:bg-vtd-secondary-800 dark:hover:bg-vtd-secondary-700 dark:text-vtd-secondary-300 dark:hover:text-vtd-secondary-100 dark:focus:bg-vtd-secondary-700\",\n onClick: (s) => u(\"updateYear\", n),\n textContent: ae(n)\n }, null, 8, br)\n ])\n ]))), 128))\n ]));\n }\n}), gr = { class: \"grid grid-cols-7 py-2 mt-0.5\" }, xr = [\"textContent\"], Xe = /* @__PURE__ */ de({\n __name: \"Week\",\n props: {\n weeks: {}\n },\n setup(e) {\n return (r, u) => (z(), Z(\"div\", gr, [\n (z(!0), Z(xe, null, Ke(r.weeks, (t, a) => (z(), Z(\"div\", {\n key: a,\n class: \"text-vtd-secondary-500 text-xs 2xl:text-sm tracking-wide font-medium text-center cursor-default dark:text-vtd-secondary-400\"\n }, [\n Y(\"span\", {\n textContent: ae(t)\n }, null, 8, xr)\n ]))), 128))\n ]));\n }\n}), wr = { class: \"flex flex-wrap mt-1.5\" }, kr = { class: \"flex rounded-md mt-1.5\" }, jr = [\"onClick\", \"textContent\"], Qe = /* @__PURE__ */ de({\n __name: \"Month\",\n props: {\n months: {}\n },\n emits: [\"updateMonth\"],\n setup(e, { emit: r }) {\n const u = r;\n return (t, a) => (z(), Z(\"div\", wr, [\n (z(!0), Z(xe, null, Ke(t.months, (n, v) => (z(), Z(\"div\", {\n key: v,\n class: \"w-1/2 px-0.5\"\n }, [\n Y(\"span\", kr, [\n Y(\"button\", {\n type: \"button\",\n class: \"px-3 py-2 block w-full leading-6 rounded-md bg-white text-xs 2xl:text-sm tracking-wide text-vtd-secondary-600 font-medium transition-colors border border-transparent hover:bg-vtd-secondary-100 hover:text-vtd-secondary-900 focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none uppercase dark:bg-vtd-secondary-800 dark:hover:bg-vtd-secondary-700 dark:text-vtd-secondary-300 dark:hover:text-vtd-secondary-100 dark:focus:bg-vtd-secondary-700\",\n onClick: (s) => u(\"updateMonth\", v),\n textContent: ae(n)\n }, null, 8, jr)\n ])\n ]))), 128))\n ]));\n }\n});\nfunction _r() {\n const e = (s) => {\n const h = [], c = s.localeData().firstDayOfWeek();\n for (let g = 0; g <= s.date(0 - c).day(); g++)\n h.push(s.date(0).subtract(g, \"day\"));\n return h.sort((g, b) => g.date() - b.date());\n };\n return {\n usePreviousDate: e,\n useCurrentDate: (s) => Array.from(\n {\n length: s.daysInMonth()\n },\n (h, c) => s.date(c + 1)\n ),\n useNextDate: (s) => {\n const h = [];\n for (let c = 1; c <= 42 - (e(s).length + s.daysInMonth()); c++)\n h.push(s.date(c).month(s.month()).add(1, \"month\"));\n return h;\n },\n useDisableDate: (s, { disableDate: h }) => typeof h == \"function\" ? h(s.toDate()) : !1,\n useBetweenRange: (s, { previous: h, next: c }) => {\n const g = h.isAfter(c, \"date\") ? \"(]\" : \"[)\";\n return !!(s.isBetween(h, c, \"date\", g) && !s.off);\n },\n useToValueFromString: (s, { formatter: h }) => s.format(h.date),\n useToValueFromArray: ({ previous: s, next: h }, {\n formatter: c,\n separator: g\n }) => `${s.format(c.date)}${g}${h.format(\n c.date\n )}`\n };\n}\nfunction $r() {\n return {\n useVisibleViewport: (r) => {\n if (r) {\n const { right: u } = r.getBoundingClientRect(), t = window.innerWidth || document.documentElement.clientWidth;\n return u > t;\n } else\n return null;\n }\n };\n}\nconst Mr = [\"disabled\", \"placeholder\", \"onKeyup\"], Sr = { class: \"absolute inset-y-0 right-0 inline-flex items-center rounded-md overflow-hidden\" }, Dr = [\"disabled\"], Or = {\n class: \"w-5 h-5\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, Pr = {\n key: 0,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: \"M6 18L18 6M6 6l12 12\"\n}, Vr = {\n key: 1,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"1.5\",\n d: \"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n}, Tr = { class: \"flex flex-wrap lg:flex-nowrap\" }, Ar = { class: \"relative flex flex-wrap sm:flex-nowrap p-1 w-full\" }, Yr = {\n key: 0,\n class: \"hidden h-full absolute inset-0 sm:flex justify-center items-center\"\n}, Cr = /* @__PURE__ */ Y(\"div\", { class: \"h-full border-r border-black/[.1] dark:border-vtd-secondary-700/[1]\" }, null, -1), Er = [\n Cr\n], Lr = { class: \"px-0.5 sm:px-2\" }, Fr = {\n key: 1,\n class: \"relative w-full md:w-1/2 lg:w-80 overflow-hidden mt-3 sm:mt-0 sm:ml-2\"\n}, Br = { class: \"px-0.5 sm:px-2\" }, Nr = { key: 0 }, Rr = { class: \"mt-2 mx-2 py-1.5 border-t border-black/[.1] dark:border-vtd-secondary-700/[1]\" }, Ir = { class: \"mt-1.5 sm:flex sm:flex-row-reverse\" }, Hr = [\"disabled\", \"onClick\", \"textContent\"], Ur = [\"onClick\", \"textContent\"], zr = {\n key: 1,\n class: \"sm:hidden\"\n}, Wr = { class: \"mt-2 mx-2 py-1.5 border-t border-black/[.1] dark:border-vtd-secondary-700/[1]\" }, Kr = { class: \"mt-1.5 sm:flex sm:flex-row-reverse\" }, Gr = [\"onClick\", \"textContent\"], Zr = {\n key: 1,\n class: \"flex\"\n}, qr = { class: \"bg-white rounded-lg shadow-sm border border-black/[.1] px-3 py-3 sm:px-4 sm:py-4 dark:bg-vtd-secondary-800 dark:border-vtd-secondary-700/[1]\" }, Jr = { class: \"flex flex-wrap lg:flex-nowrap\" }, Xr = { class: \"relative flex flex-wrap sm:flex-nowrap p-1 w-full\" }, Qr = {\n key: 0,\n class: \"hidden h-full absolute inset-0 sm:flex justify-center items-center\"\n}, ea = /* @__PURE__ */ Y(\"div\", { class: \"h-full border-r border-black/[.1] dark:border-vtd-secondary-700/[1]\" }, null, -1), ta = [\n ea\n], oa = { class: \"px-0.5 sm:px-2\" }, ra = {\n key: 1,\n class: \"relative w-full md:w-1/2 lg:w-80 overflow-hidden mt-3 sm:mt-0 sm:ml-2\"\n}, aa = { class: \"px-0.5 sm:px-2\" }, na = { key: 0 }, sa = { class: \"mt-2 mx-2 py-1.5 border-t border-black/[.1] dark:border-vtd-secondary-700/[1]\" }, la = { class: \"mt-1.5 sm:flex sm:flex-row-reverse\" }, ua = [\"disabled\", \"textContent\"], da = /* @__PURE__ */ de({\n __name: \"VueTailwindDatePicker\",\n props: {\n noInput: { type: Boolean },\n overlay: { type: Boolean },\n asSingle: { type: Boolean },\n useRange: { type: Boolean },\n placeholder: { default: \"\" },\n i18n: { default: \"en\" },\n inputClasses: { default: \"\" },\n disabled: { type: Boolean, default: !1 },\n disableInRange: { type: Boolean, default: !1 },\n disableDate: { type: [Boolean, Function], default: !1 },\n autoApply: { type: Boolean, default: !0 },\n shortcuts: { type: [Boolean, Function], default: !0 },\n separator: { default: \" ~ \" },\n formatter: { default: () => ({\n date: \"YYYY-MM-DD HH:mm:ss\",\n month: \"MMM\"\n }) },\n startFrom: { default: () => /* @__PURE__ */ new Date() },\n weekdaysSize: { default: \"short\" },\n weekNumber: { type: Boolean, default: !1 },\n options: { default: () => ({\n shortcuts: {\n today: \"Today\",\n yesterday: \"Yesterday\",\n past: (e) => `Last ${e} Days`,\n currentMonth: \"This Month\",\n pastMonth: \"Last Month\"\n },\n footer: {\n apply: \"Apply\",\n cancel: \"Cancel\"\n }\n }) },\n modelValue: { default: () => [/* @__PURE__ */ new Date(), /* @__PURE__ */ new Date()] }\n },\n emits: [\"update:modelValue\", \"selectMonth\", \"selectYear\", \"selectRightMonth\", \"selectRightYear\", \"clickPrev\", \"clickNext\", \"clickRightPrev\", \"clickRightNext\"],\n setup(e, { expose: r, emit: u }) {\n const t = e, a = u, {\n useCurrentDate: n,\n useDisableDate: v,\n useBetweenRange: s,\n useNextDate: h,\n usePreviousDate: c,\n useToValueFromArray: g,\n useToValueFromString: b\n } = _r(), { useVisibleViewport: S } = $r();\n i.extend(Yo), i.extend(Eo), i.extend(Fo), i.extend(No), i.extend(Io), i.extend(Uo), i.extend(Wo);\n const V = J(null), I = J(null), x = J(null), D = J(\"\"), E = J(null), k = J(\"\"), w = J([]), P = J([]), T = J(null), O = J(null), l = ht({\n previous: {\n calendar: !0,\n month: !1,\n year: !1\n },\n next: {\n calendar: !0,\n month: !1,\n year: !1\n }\n }), o = J({\n previous: i(),\n next: i().add(1, \"month\"),\n year: {\n previous: i().year(),\n next: i().year()\n },\n weeks: t.weekdaysSize === \"min\" ? i.weekdaysMin() : i.weekdaysShort(),\n months: t.formatter.month === \"MMM\" ? i.monthsShort() : i.months()\n }), R = ue(() => o.value.weeks), N = ue(() => o.value.months), _ = ue(() => {\n const { previous: p, next: f, year: m } = le(o);\n return {\n previous: {\n date: () => c(p).concat(n(p)).concat(h(p)).map((d) => (Object.assign(d, {\n today: d.isToday(),\n active: p.month() === d.month(),\n off: p.month() !== d.month(),\n sunday: d.day() === 0,\n disabled: v(d, t) && !M(d),\n inRange: () => {\n if (t.asSingle && !t.useRange)\n return p.month() !== d.month();\n },\n hovered: () => y() && w.value.length > 1 ? (d.isBetween(\n w.value[0],\n w.value[1],\n \"date\",\n \"()\"\n ) || d.isBetween(\n w.value[1],\n w.value[0],\n \"date\",\n \"(]\"\n )) && p.month() === d.month() : !1,\n duration: () => !1\n }), d)),\n month: p && p.format(t.formatter.month),\n year: p && p.year(),\n years: () => Array.from(\n {\n length: 12\n },\n (d, j) => m.previous + j\n ),\n onPrevious: () => {\n o.value.previous = p.subtract(1, \"month\"), a(\"clickPrev\", o.value.previous);\n },\n onNext: () => {\n o.value.previous = p.add(1, \"month\"), p.diff(f, \"month\") === -1 && (o.value.next = f.add(1, \"month\")), a(\"clickNext\", o.value.previous);\n },\n onPreviousYear: () => {\n o.value.year.previous = o.value.year.previous - 12;\n },\n onNextYear: () => {\n o.value.year.previous = o.value.year.previous + 12;\n },\n openMonth: () => {\n l.previous.month = !l.previous.month, l.previous.year = !1, l.previous.calendar = !l.previous.month;\n },\n setMonth: (d) => {\n o.value.previous = p.month(d), l.previous.month = !l.previous.month, l.previous.year = !1, l.previous.calendar = !l.previous.month, a(\"selectMonth\", o.value.previous), He(() => {\n (o.value.next.isSame(o.value.previous, \"month\") || o.value.next.isBefore(o.value.previous)) && (o.value.next = o.value.previous.add(1, \"month\")), o.value.year.next = o.value.next.year();\n });\n },\n openYear: () => {\n l.previous.year = !l.previous.year, l.previous.month = !1, l.previous.calendar = !l.previous.year;\n },\n setYear: (d) => {\n o.value.previous = p.year(d), l.previous.year = !l.previous.year, l.previous.calendar = !l.previous.year, a(\"selectYear\", o.value.previous), He(() => {\n (o.value.next.isSame(o.value.previous, \"month\") || o.value.next.isBefore(o.value.previous)) && (o.value.next = o.value.previous.add(1, \"month\")), o.value.year.previous = o.value.previous.year(), o.value.year.next = o.value.next.year();\n });\n }\n },\n next: {\n date: () => c(f).concat(n(f)).concat(h(f)).map((d) => (Object.assign(d, {\n today: d.isToday(),\n active: f.month() === d.month(),\n off: f.month() !== d.month(),\n sunday: d.day() === 0,\n disabled: v(d, t) && !M(d),\n inRange: () => {\n if (t.asSingle && !t.useRange)\n return f.month() !== d.month();\n },\n hovered: () => w.value.length > 1 ? (d.isBetween(\n w.value[0],\n w.value[1],\n \"date\",\n \"()\"\n ) || d.isBetween(\n w.value[1],\n w.value[0],\n \"date\",\n \"(]\"\n )) && f.month() === d.month() : !1,\n duration: () => !1\n }), d)),\n month: f && f.format(t.formatter.month),\n year: f && f.year(),\n years: () => Array.from(\n {\n length: 12\n },\n (d, j) => m.next + j\n ),\n onPrevious: () => {\n o.value.next = f.subtract(1, \"month\"), f.diff(p, \"month\") === 1 && (o.value.previous = p.subtract(1, \"month\")), a(\"clickRightPrev\", o.value.next);\n },\n onNext: () => {\n o.value.next = f.add(1, \"month\"), a(\"clickRightNext\", o.value.next);\n },\n onPreviousYear: () => {\n o.value.year.next = o.value.year.next - 12;\n },\n onNextYear: () => {\n o.value.year.next = o.value.year.next + 12;\n },\n openMonth: () => {\n l.next.month = !l.next.month, l.next.year = !1, l.next.calendar = !l.next.month;\n },\n setMonth: (d) => {\n o.value.next = f.month(d), l.next.month = !l.next.month, l.next.year = !1, l.next.calendar = !l.next.month, a(\"selectRightMonth\", o.value.next), He(() => {\n (o.value.previous.isSame(o.value.next, \"month\") || o.value.previous.isAfter(o.value.next)) && (o.value.previous = o.value.next.subtract(\n 1,\n \"month\"\n )), o.value.year.previous = o.value.previous.year();\n });\n },\n openYear: () => {\n l.next.year = !l.next.year, l.next.month = !1, l.next.calendar = !l.next.year;\n },\n setYear: (d) => {\n o.value.next = f.year(d), l.next.year = !l.next.year, l.next.month = !1, l.next.calendar = !l.next.year, a(\"selectRightYear\", o.value.next), He(() => {\n (o.value.previous.isSame(o.value.next, \"month\") || o.value.previous.isAfter(o.value.next)) && (o.value.previous = o.value.next.subtract(\n 1,\n \"month\"\n )), o.value.year.previous = o.value.previous.year(), o.value.year.next = o.value.next.year();\n });\n }\n }\n };\n }), K = J(!1);\n setTimeout(() => {\n K.value = !0;\n }, 250);\n function q() {\n return i().localeData().firstDayOfWeek();\n }\n function C(p) {\n const f = [...p], m = f.shift();\n return [...f, m];\n }\n function y() {\n return !t.useRange && !t.asSingle ? !0 : !t.useRange && t.asSingle ? !1 : t.useRange && !t.asSingle ? !0 : !!(t.useRange && t.asSingle);\n }\n function M(p) {\n if (t.disableInRange || k.value === \"\")\n return !1;\n let f, m;\n if (Array.isArray(t.modelValue)) {\n const [d, j] = t.modelValue;\n f = d, m = j;\n } else if (typeof t.modelValue == \"object\") {\n if (t.modelValue) {\n const [d, j] = Object.values(t.modelValue);\n f = d, m = j;\n }\n } else {\n const [d, j] = t.modelValue.split(t.separator);\n f = d, m = j;\n }\n return p.isBetween(\n i(f, t.formatter.date, !0),\n i(m, t.formatter.date, !0),\n \"date\",\n \"[]\"\n );\n }\n function A() {\n T.value = null, O.value = null, w.value = [], E.value = null;\n }\n function $() {\n if (k.value = \"\", Array.isArray(t.modelValue))\n a(\"update:modelValue\", []);\n else if (typeof t.modelValue == \"object\") {\n const p = {}, [f, m] = Object.keys(t.modelValue);\n p[f] = \"\", p[m] = \"\", a(\"update:modelValue\", p);\n } else\n a(\"update:modelValue\", \"\");\n P.value = [], I.value && I.value.focus();\n }\n r({ clearPicker: $ });\n function B() {\n if (y()) {\n const [p, f] = k.value.split(t.separator), [m, d] = [\n i(p, t.formatter.date, !0),\n i(f, t.formatter.date, !0)\n ];\n if (m.isValid() && d.isValid())\n if (F(m), F(d), Array.isArray(t.modelValue))\n a(\"update:modelValue\", [p, f]);\n else if (typeof t.modelValue == \"object\") {\n const j = {}, [L, W] = Object.keys(t.modelValue);\n j[L] = p, j[W] = f, a(\"update:modelValue\", j);\n } else\n a(\n \"update:modelValue\",\n g(\n {\n previous: m,\n next: d\n },\n t\n )\n );\n } else {\n const p = i(k.value, t.formatter.date, !0);\n if (p.isValid())\n if (F(p), Array.isArray(t.modelValue))\n a(\"update:modelValue\", [k.value]);\n else if (typeof t.modelValue == \"object\") {\n const f = {}, [m] = Object.keys(t.modelValue);\n f[m] = k.value, a(\"update:modelValue\", f);\n } else\n a(\"update:modelValue\", k.value);\n }\n }\n function F(p, f) {\n if (y())\n if (T.value)\n if (O.value = p, t.autoApply) {\n p.isBefore(T.value) ? k.value = g(\n {\n previous: p,\n next: T.value\n },\n t\n ) : k.value = g(\n {\n previous: T.value,\n next: p\n },\n t\n );\n const [m, d] = k.value.split(t.separator);\n if (Array.isArray(t.modelValue))\n a(\"update:modelValue\", [\n i(m, t.formatter.date, !0).format(t.formatter.date),\n i(d, t.formatter.date, !0).format(t.formatter.date)\n ]);\n else if (typeof t.modelValue == \"object\") {\n const j = {}, [L, W] = Object.keys(t.modelValue);\n j[L] = m, j[W] = d, a(\"update:modelValue\", j);\n } else\n a(\n \"update:modelValue\",\n g(\n {\n previous: i(m, t.formatter.date, !0),\n next: i(d, t.formatter.date, !0)\n },\n t\n )\n );\n f && f(), P.value = [], i(m, t.formatter.date, !0).isSame(\n i(d, t.formatter.date, !0),\n \"month\"\n ) || (o.value.previous = i(m, t.formatter.date, !0), o.value.next = i(d, t.formatter.date, !0)), A();\n } else {\n T.value.isAfter(p, \"month\") ? P.value = [p, T.value] : P.value = [T.value, p];\n const [m, d] = P.value;\n m.isSame(d, \"month\") || (o.value.previous = m, o.value.next = d), A();\n }\n else\n P.value = [], T.value = p, E.value = p, w.value.push(p), P.value.push(p), o.value.previous = p, o.value.next.isSame(p, \"month\") && (o.value.previous = o.value.next, o.value.next = p.add(1, \"month\"));\n else if (t.autoApply) {\n if (k.value = b(p, t), Array.isArray(t.modelValue))\n a(\"update:modelValue\", [k.value]);\n else if (typeof t.modelValue == \"object\") {\n const m = {}, [d] = Object.keys(t.modelValue);\n m[d] = k.value, a(\"update:modelValue\", m);\n } else\n a(\"update:modelValue\", k.value);\n f && f(), P.value = [], A();\n } else\n P.value = [p], A();\n }\n function G(p) {\n if (P.value.length < 1)\n return !1;\n let f;\n if (y()) {\n const [m, d] = P.value;\n d.isBefore(m) ? f = g(\n {\n previous: d,\n next: m\n },\n t\n ) : f = g(\n {\n previous: m,\n next: d\n },\n t\n );\n } else {\n const [m] = P.value;\n f = m;\n }\n if (y()) {\n const [m, d] = f.split(t.separator);\n if (Array.isArray(t.modelValue))\n a(\"update:modelValue\", [\n i(m, t.formatter.date, !0).format(t.formatter.date),\n i(d, t.formatter.date, !0).format(t.formatter.date)\n ]);\n else if (typeof t.modelValue == \"object\") {\n const j = {}, [L, W] = Object.keys(t.modelValue);\n j[L] = m, j[W] = d, a(\"update:modelValue\", j);\n } else\n a(\n \"update:modelValue\",\n g(\n {\n previous: i(m, t.formatter.date, !0),\n next: i(d, t.formatter.date, !0)\n },\n t\n )\n );\n k.value = f;\n } else if (k.value = f.format(t.formatter.date), Array.isArray(t.modelValue))\n a(\"update:modelValue\", [k.value]);\n else if (typeof t.modelValue == \"object\") {\n const m = {}, [d] = Object.keys(t.modelValue);\n m[d] = k.value, a(\"update:modelValue\", m);\n } else\n a(\"update:modelValue\", k.value);\n p && p();\n }\n function Q(p) {\n if (!y())\n return !1;\n if (T.value)\n w.value = [T.value, p];\n else\n return w.value = [], !1;\n }\n function te(p) {\n if (T.value && t.autoApply)\n return !1;\n let f, m;\n if (w.value.length > 1) {\n const [d, j] = w.value;\n f = i(d, t.formatter.date, !0), m = i(j, t.formatter.date, !0);\n } else if (Array.isArray(t.modelValue))\n if (t.autoApply) {\n const [d, j] = t.modelValue;\n f = d && i(d, t.formatter.date, !0), m = j && i(j, t.formatter.date, !0);\n } else {\n const [d, j] = P.value;\n f = i(d, t.formatter.date, !0), m = i(j, t.formatter.date, !0);\n }\n else if (typeof t.modelValue == \"object\")\n if (t.autoApply) {\n if (t.modelValue) {\n const [d, j] = Object.values(t.modelValue);\n f = d && i(d, t.formatter.date, !0), m = j && i(j, t.formatter.date, !0);\n }\n } else {\n const [d, j] = P.value;\n f = i(d, t.formatter.date, !0), m = i(j, t.formatter.date, !0);\n }\n else if (t.autoApply) {\n const [d, j] = t.modelValue ? t.modelValue.split(t.separator) : [null, null];\n f = d && i(d, t.formatter.date, !0), m = j && i(j, t.formatter.date, !0);\n } else {\n const [d, j] = P.value;\n f = i(d, t.formatter.date, !0), m = i(j, t.formatter.date, !0);\n }\n return f && m ? s(p, {\n previous: f,\n next: m\n }) : !1;\n }\n function oe(p) {\n const { today: f, active: m, off: d, disabled: j } = p;\n let L, W, ce;\n if (y())\n if (Array.isArray(t.modelValue))\n if (E.value) {\n const [U, X] = w.value;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n } else if (t.autoApply) {\n const [U, X] = t.modelValue;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n } else {\n const [U, X] = P.value;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n }\n else if (typeof t.modelValue == \"object\")\n if (E.value) {\n const [U, X] = w.value;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n } else if (t.autoApply) {\n const [U, X] = t.modelValue ? Object.values(t.modelValue) : [null, null];\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n } else {\n const [U, X] = P.value;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n }\n else if (E.value) {\n const [U, X] = w.value;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n } else if (t.autoApply) {\n const [U, X] = t.modelValue ? t.modelValue.split(t.separator) : [null, null];\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n } else {\n const [U, X] = P.value;\n W = U && i(U, t.formatter.date, !0), ce = X && i(X, t.formatter.date, !0);\n }\n else if (Array.isArray(t.modelValue))\n if (t.autoApply) {\n if (t.modelValue.length > 0) {\n const [U] = t.modelValue;\n W = i(U, t.formatter.date, !0);\n }\n } else {\n const [U] = P.value;\n W = U && i(U, t.formatter.date, !0);\n }\n else if (typeof t.modelValue == \"object\")\n if (t.autoApply) {\n if (t.modelValue) {\n const [U] = Object.values(t.modelValue);\n W = i(U, t.formatter.date, !0);\n }\n } else {\n const [U] = P.value;\n W = U && i(U, t.formatter.date, !0);\n }\n else if (t.autoApply) {\n if (t.modelValue) {\n const [U] = t.modelValue.split(t.separator);\n W = i(U, t.formatter.date, !0);\n }\n } else {\n const [U] = P.value;\n W = U && i(U, t.formatter.date, !0);\n }\n return m && (L = f ? \"text-vtd-primary-500 font-semibold dark:text-vtd-primary-400 rounded-full focus:bg-vtd-primary-50 focus:text-vtd-secondary-900 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none dark:bg-vtd-secondary-800 dark:text-vtd-secondary-300 dark:hover:bg-vtd-secondary-700 dark:hover:text-vtd-secondary-300 dark:focus:bg-vtd-secondary-600 dark:focus:text-vtd-secondary-100 dark:focus:border-vtd-primary-500 dark:focus:ring-opacity-25 dark:focus:bg-opacity-50\" : j ? \"text-vtd-secondary-600 font-normal disabled:text-vtd-secondary-500 disabled:cursor-not-allowed rounded-full\" : p.isBetween(W, ce, \"date\", \"()\") ? \"text-vtd-secondary-700 font-medium dark:text-vtd-secondary-100 rounded-full\" : \"text-vtd-secondary-600 font-medium dark:text-vtd-secondary-200 rounded-full\"), d && (L = \"text-vtd-secondary-400 font-light disabled:cursor-not-allowed\"), W && ce && !d ? (p.isSame(W, \"date\") && (L = ce.isAfter(W, \"date\") ? \"bg-vtd-primary-500 text-white font-bold rounded-l-full disabled:cursor-not-allowed\" : \"bg-vtd-primary-500 text-white font-bold rounded-r-full disabled:cursor-not-allowed\", W.isSame(ce, \"date\") && (L = \"bg-vtd-primary-500 text-white font-bold rounded-full disabled:cursor-not-allowed\")), p.isSame(ce, \"date\") && (L = ce.isAfter(W, \"date\") ? \"bg-vtd-primary-500 text-white font-bold rounded-r-full disabled:cursor-not-allowed\" : \"bg-vtd-primary-500 text-white font-bold rounded-l-full disabled:cursor-not-allowed\", W.isSame(ce, \"date\") && (L = \"bg-vtd-primary-500 text-white font-bold rounded-full disabled:cursor-not-allowed\"))) : W && p.isSame(W, \"date\") && !d && (L = \"bg-vtd-primary-500 text-white font-bold rounded-full disabled:cursor-not-allowed\"), L;\n }\n function ie(p) {\n let f, m, d;\n if (f = \"\", !y())\n return f;\n if (Array.isArray(t.modelValue))\n if (w.value.length > 1) {\n const [j, L] = w.value;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n } else if (t.autoApply) {\n const [j, L] = t.modelValue;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n } else {\n const [j, L] = P.value;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n }\n else if (typeof t.modelValue == \"object\")\n if (w.value.length > 1) {\n const [j, L] = w.value;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n } else if (t.autoApply) {\n if (t.modelValue) {\n const [j, L] = Object.values(t.modelValue);\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n }\n } else {\n const [j, L] = P.value;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n }\n else if (w.value.length > 1) {\n const [j, L] = w.value;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n } else if (t.autoApply) {\n const [j, L] = t.modelValue ? t.modelValue.split(t.separator) : [null, null];\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n } else {\n const [j, L] = P.value;\n m = j && i(j, t.formatter.date, !0), d = L && i(L, t.formatter.date, !0);\n }\n return m && d && (p.isSame(m, \"date\") ? (d.isBefore(m) && (f += \" rounded-r-full inset-0\"), m.isBefore(d) && (f += \" rounded-l-full inset-0\")) : p.isSame(d, \"date\") ? (d.isBefore(m) && (f += \" rounded-l-full inset-0\"), m.isBefore(d) && (f += \" rounded-r-full inset-0\")) : f += \" inset-0\"), f;\n }\n function we(p, f) {\n o.value.previous = i(p, t.formatter.date, !0), o.value.next = i(f, t.formatter.date, !0), (i.duration(o.value.next.diff(o.value.previous)).get(\"months\") === 2 || i.duration(o.value.next.diff(o.value.previous)).get(\"months\") === 1 && i.duration(o.value.next.diff(o.value.previous)).get(\"days\") === 7) && (o.value.next = o.value.next.subtract(1, \"month\")), (o.value.next.isSame(o.value.previous, \"month\") || o.value.next.isBefore(o.value.previous)) && (o.value.next = o.value.previous.add(1, \"month\"));\n }\n function ne(p, f) {\n if (y())\n if (t.autoApply) {\n if (Array.isArray(t.modelValue))\n a(\"update:modelValue\", [p, f]);\n else if (typeof t.modelValue == \"object\") {\n const m = {}, [d, j] = Object.keys(t.modelValue);\n m[d] = p, m[j] = f, a(\"update:modelValue\", m);\n } else\n a(\n \"update:modelValue\",\n g(\n {\n previous: i(p, t.formatter.date, !0),\n next: i(f, t.formatter.date, !0)\n },\n t\n )\n );\n k.value = `${p}${t.separator}${f}`;\n } else\n P.value = [\n i(p, t.formatter.date, !0),\n i(f, t.formatter.date, !0)\n ];\n else if (t.autoApply) {\n if (Array.isArray(t.modelValue))\n a(\"update:modelValue\", [p]);\n else if (typeof t.modelValue == \"object\") {\n const m = {}, [d] = Object.keys(t.modelValue);\n m[d] = p, a(\"update:modelValue\", m);\n } else\n a(\"update:modelValue\", p);\n k.value = p;\n } else\n P.value = [\n i(p, t.formatter.date, !0),\n i(f, t.formatter.date, !0)\n ];\n we(p, f);\n }\n function be(p) {\n const f = i().format(t.formatter.date), m = i().format(t.formatter.date);\n ne(f, m), p && p();\n }\n function he(p) {\n const f = i().subtract(1, \"day\").format(t.formatter.date), m = i().subtract(1, \"day\").format(t.formatter.date);\n ne(f, m), p && p();\n }\n function re(p, f) {\n const m = i().subtract(p - 1, \"day\").format(t.formatter.date), d = i().format(t.formatter.date);\n ne(m, d), f && f();\n }\n function fe(p) {\n const f = i().date(1).format(t.formatter.date), m = i().date(i().daysInMonth()).format(t.formatter.date);\n ne(f, m), p && p();\n }\n function ge(p) {\n const f = i().date(1).subtract(1, \"month\").format(t.formatter.date), m = i().date(0).format(t.formatter.date);\n ne(f, m), p && p();\n }\n function ke(p, f) {\n const [m, d] = p.atClick(), j = i(m).format(t.formatter.date), L = i(d).format(t.formatter.date);\n ne(j, L), f && f();\n }\n it(\n () => P.value,\n (p) => {\n p.length > 0 && (l.previous.calendar = !0, l.previous.month = !1, l.previous.year = !1, l.next.calendar = !0, l.next.month = !1, l.next.year = !1);\n }\n ), _e(() => {\n t.placeholder ? D.value = t.placeholder : y() ? D.value = `${t.formatter.date}${t.separator}${t.formatter.date}` : D.value = t.formatter.date;\n }), i.locale(t.i18n), it(() => t.i18n, () => i.locale(t.i18n)), _e(() => {\n const p = t.i18n, f = t.modelValue;\n He(async () => {\n if (p in pt) {\n const L = await pt[p]();\n i.locale(L, void 0, !0), i.locale(p);\n }\n let m, d;\n if (y()) {\n if (Array.isArray(f)) {\n if (f.length > 0) {\n const [L, W] = f;\n m = i(L, t.formatter.date, !0), d = i(W, t.formatter.date, !0);\n }\n } else if (typeof f == \"object\") {\n if (!to(f))\n try {\n Object.keys(f);\n } catch {\n console.warn(\n \"[Vue Tailwind Datepicker]: It looks like you want to use Object as the argument %cv-model\",\n \"font-style: italic; color: #42b883;\",\n \", but you pass it undefined or null.\"\n ), console.warn(\n \"[Vue Tailwind Datepicker]: We has replace with %c{ startDate: '', endDate: '' }\",\n \"font-style: italic; color: #42b883;\",\n \", but you can replace manually.\"\n ), a(\"update:modelValue\", {\n startDate: \"\",\n endDate: \"\"\n });\n }\n if (f) {\n const [L, W] = Object.values(f);\n m = L && i(L, t.formatter.date, !0), d = W && i(W, t.formatter.date, !0);\n }\n } else if (f) {\n const [L, W] = f.split(t.separator);\n m = i(L, t.formatter.date, !0), d = i(W, t.formatter.date, !0);\n }\n m && d ? (k.value = g(\n {\n previous: m,\n next: d\n },\n t\n ), d.isBefore(m, \"month\") ? (o.value.previous = d, o.value.next = m, o.value.year.previous = d.year(), o.value.year.next = m.year()) : d.isSame(m, \"month\") ? (o.value.previous = m, o.value.next = d.add(1, \"month\"), o.value.year.previous = m.year(), o.value.year.next = m.add(1, \"year\").year()) : (o.value.previous = m, o.value.next = d, o.value.year.previous = m.year(), o.value.year.next = d.year()), t.autoApply || (P.value = [m, d])) : (o.value.previous = i(t.startFrom), o.value.next = i(t.startFrom).add(1, \"month\"), o.value.year.previous = o.value.previous.year(), o.value.year.next = o.value.next.year());\n } else {\n if (Array.isArray(f)) {\n if (f.length > 0) {\n const [L] = f;\n m = i(L, t.formatter.date, !0);\n }\n } else if (typeof f == \"object\") {\n if (f) {\n const [L] = Object.values(f);\n m = i(L, t.formatter.date, !0);\n }\n } else if (f.length) {\n const [L] = f.split(t.separator);\n m = i(L, t.formatter.date, !0);\n }\n m && m.isValid() ? (k.value = b(m, t), o.value.previous = m, o.value.next = m.add(1, \"month\"), o.value.year.previous = m.year(), o.value.year.next = m.add(1, \"year\").year(), t.autoApply || (P.value = [m])) : (o.value.previous = i(t.startFrom), o.value.next = i(t.startFrom).add(1, \"month\"), o.value.year.previous = o.value.previous.year(), o.value.year.next = o.value.next.year());\n }\n const j = t.weekdaysSize === \"min\" ? i.weekdaysMin() : i.weekdaysShort();\n o.value.weeks = q() ? C(j) : j, o.value.months = t.formatter.month === \"MMM\" ? i.monthsShort() : i.months();\n });\n });\n function Re(p) {\n return p && x.value === null && (x.value = S(V.value)), p && x.value ? \"place-right\" : \"place-left\";\n }\n function Ie(p) {\n return p && x.value === null && (x.value = S(V.value)), x.value ? \"left-auto right-0\" : \"left-0 right-auto\";\n }\n return se(Nt, te), se(Rt, ie), se(It, oe), se(Ht, Q), se(Ut, be), se(zt, he), se(Wt, re), se(Kt, fe), se(Gt, ge), se(Zt, ke), (p, f) => t.noInput ? K.value ? (z(), Z(\"div\", Zr, [\n Y(\"div\", qr, [\n Y(\"div\", Jr, [\n t.shortcuts ? (z(), Ue(vt, {\n key: 0,\n shortcuts: t.shortcuts,\n \"as-range\": y(),\n \"as-single\": t.asSingle,\n i18n: t.options.shortcuts\n }, null, 8, [\"shortcuts\", \"as-range\", \"as-single\", \"i18n\"])) : ye(\"\", !0),\n Y(\"div\", Xr, [\n y() && !t.asSingle ? (z(), Z(\"div\", Qr, ta)) : ye(\"\", !0),\n Y(\"div\", {\n class: Te([\"relative w-full lg:w-80\", {\n \"mb-3 sm:mb-0 sm:mr-2 md:w-1/2\": y() && !t.asSingle\n }])\n }, [\n ee(Ze, {\n panel: l.previous,\n calendar: _.value.previous\n }, null, 8, [\"panel\", \"calendar\"]),\n Y(\"div\", oa, [\n me(ee(Qe, {\n months: N.value,\n onUpdateMonth: _.value.previous.setMonth\n }, null, 8, [\"months\", \"onUpdateMonth\"]), [\n [pe, l.previous.month]\n ]),\n me(ee(Je, {\n years: _.value.previous.years(),\n onUpdateYear: _.value.previous.setYear\n }, null, 8, [\"years\", \"onUpdateYear\"]), [\n [pe, l.previous.year]\n ]),\n me(Y(\"div\", null, [\n ee(Xe, { weeks: R.value }, null, 8, [\"weeks\"]),\n ee(qe, {\n calendar: _.value.previous,\n weeks: R.value,\n \"as-range\": y(),\n \"week-number\": p.weekNumber,\n onUpdateDate: f[3] || (f[3] = (m) => F(m))\n }, null, 8, [\"calendar\", \"weeks\", \"as-range\", \"week-number\"])\n ], 512), [\n [pe, l.previous.calendar]\n ])\n ])\n ], 2),\n y() && !t.asSingle ? (z(), Z(\"div\", ra, [\n ee(Ze, {\n \"as-prev-or-next\": \"\",\n panel: l.next,\n calendar: _.value.next\n }, null, 8, [\"panel\", \"calendar\"]),\n Y(\"div\", aa, [\n me(ee(Qe, {\n months: N.value,\n onUpdateMonth: _.value.next.setMonth\n }, null, 8, [\"months\", \"onUpdateMonth\"]), [\n [pe, l.next.month]\n ]),\n me(ee(Je, {\n \"as-prev-or-next\": \"\",\n years: _.value.next.years(),\n onUpdateYear: _.value.next.setYear\n }, null, 8, [\"years\", \"onUpdateYear\"]), [\n [pe, l.next.year]\n ]),\n me(Y(\"div\", null, [\n ee(Xe, { weeks: R.value }, null, 8, [\"weeks\"]),\n ee(qe, {\n \"as-prev-or-next\": \"\",\n calendar: _.value.next,\n weeks: R.value,\n \"as-range\": y(),\n \"week-number\": p.weekNumber,\n onUpdateDate: f[4] || (f[4] = (m) => F(m))\n }, null, 8, [\"calendar\", \"weeks\", \"as-range\", \"week-number\"])\n ], 512), [\n [pe, l.next.calendar]\n ])\n ])\n ])) : ye(\"\", !0)\n ])\n ]),\n t.autoApply ? ye(\"\", !0) : (z(), Z(\"div\", na, [\n Y(\"div\", sa, [\n Y(\"div\", la, [\n Y(\"button\", {\n type: \"button\",\n class: \"away-apply-picker w-full transition ease-out duration-300 inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-vtd-primary-600 text-base font-medium text-white hover:bg-vtd-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-vtd-primary-500 sm:ml-3 sm:w-auto sm:text-sm dark:ring-offset-vtd-secondary-800 disabled:cursor-not-allowed\",\n disabled: t.asSingle ? P.value.length < 1 : P.value.length < 2,\n onClick: f[5] || (f[5] = (m) => G()),\n textContent: ae(t.options.footer.apply)\n }, null, 8, ua)\n ])\n ])\n ]))\n ])\n ])) : ye(\"\", !0) : (z(), Ue(le(Vt), {\n key: 0,\n id: \"vtd\",\n as: \"div\",\n class: \"relative w-full\"\n }, {\n default: Fe(({ open: m }) => [\n t.overlay && !t.disabled ? (z(), Ue(le(Po), {\n key: 0,\n class: \"fixed inset-0 bg-black opacity-30\"\n })) : ye(\"\", !0),\n ee(le(Oo), {\n as: \"label\",\n class: \"relative block\"\n }, {\n default: Fe(() => [\n ct(p.$slots, \"default\", {\n value: k.value,\n placeholder: D.value,\n clear: $\n }, () => [\n me(Y(\"input\", oo({\n ref_key: \"VtdInputRef\",\n ref: I\n }, p.$attrs, {\n \"onUpdate:modelValue\": f[0] || (f[0] = (d) => k.value = d),\n type: \"text\",\n class: [\"relative block w-full\", [\n t.disabled ? \"cursor-default opacity-50\" : \"opacity-100\",\n p.inputClasses || \"pl-3 pr-12 py-2.5 rounded-lg overflow-hidden border-solid text-sm text-vtd-secondary-700 placeholder-vtd-secondary-400 transition-colors bg-white border border-vtd-secondary-300 focus:border-vtd-primary-300 focus:ring focus:ring-vtd-primary-500 focus:ring-opacity-10 focus:outline-none dark:bg-vtd-secondary-800 dark:border-vtd-secondary-700 dark:text-vtd-secondary-100 dark:placeholder-vtd-secondary-500 dark:focus:border-vtd-primary-500 dark:focus:ring-opacity-20\"\n ]],\n disabled: t.disabled,\n autocomplete: \"off\",\n \"data-lpignore\": \"true\",\n \"data-form-type\": \"other\",\n placeholder: D.value,\n onKeyup: $e(B, [\"stop\"]),\n onKeydown: f[1] || (f[1] = $e(() => {\n }, [\"stop\"]))\n }), null, 16, Mr), [\n [ro, k.value]\n ]),\n Y(\"div\", Sr, [\n Y(\"button\", {\n type: \"button\",\n disabled: t.disabled,\n class: Te([\n t.disabled ? \"cursor-default opacity-50\" : \"opacity-100\",\n \"px-2 py-1 mr-1 focus:outline-none text-vtd-secondary-400 dark:text-opacity-70 rounded-md\"\n ]),\n onClick: f[2] || (f[2] = (d) => {\n var j;\n return t.disabled ? !1 : k.value ? $() : (j = I.value) == null ? void 0 : j.focus();\n })\n }, [\n ct(p.$slots, \"inputIcon\", { value: k.value }, () => [\n (z(), Z(\"svg\", Or, [\n k.value ? (z(), Z(\"path\", Pr)) : (z(), Z(\"path\", Vr))\n ]))\n ])\n ], 10, Dr)\n ])\n ])\n ]),\n _: 3\n }),\n ee(yt, {\n \"enter-from-class\": \"opacity-0 translate-y-3\",\n \"enter-to-class\": \"opacity-100 translate-y-0\",\n \"enter-active-class\": \"transform transition ease-out duration-200\",\n \"leave-active-class\": \"transform transition ease-in duration-150\",\n \"leave-from-class\": \"opacity-100 translate-y-0\",\n \"leave-to-class\": \"opacity-0 translate-y-3\"\n }, {\n default: Fe(() => [\n t.disabled ? ye(\"\", !0) : (z(), Ue(le(Vo), {\n key: 0,\n as: \"div\",\n class: \"relative z-50\"\n }, {\n default: Fe(({ close: d }) => [\n Y(\"div\", {\n class: Te([\"absolute z-50 top-full sm:mt-2.5\", Ie(m)])\n }, [\n Y(\"div\", {\n ref_key: \"VtdRef\",\n ref: V,\n class: \"fixed inset-0 z-50 overflow-y-auto sm:overflow-visible sm:static sm:z-auto bg-white dark:bg-vtd-secondary-800 sm:rounded-lg shadow-sm\"\n }, [\n Y(\"div\", {\n class: Te([\"vtd-datepicker static sm:relative w-full bg-white sm:rounded-lg sm:shadow-sm border-0 sm:border border-black/[.1] px-3 py-3 sm:px-4 sm:py-4 dark:bg-vtd-secondary-800 dark:border-vtd-secondary-700/[1]\", Re(m)])\n }, [\n Y(\"div\", Tr, [\n t.shortcuts ? (z(), Ue(vt, {\n key: 0,\n shortcuts: t.shortcuts,\n \"as-range\": y(),\n \"as-single\": t.asSingle,\n i18n: t.options.shortcuts,\n close: d\n }, null, 8, [\"shortcuts\", \"as-range\", \"as-single\", \"i18n\", \"close\"])) : ye(\"\", !0),\n Y(\"div\", Ar, [\n y() && !t.asSingle ? (z(), Z(\"div\", Yr, Er)) : ye(\"\", !0),\n Y(\"div\", {\n class: Te([\"relative\", {\n \"mb-3 sm:mb-0 sm:mr-2 w-full md:w-1/2 lg:w-80\": y() && !t.asSingle,\n \"w-full\": !y() && t.asSingle\n }])\n }, [\n ee(Ze, {\n panel: l.previous,\n calendar: _.value.previous\n }, null, 8, [\"panel\", \"calendar\"]),\n Y(\"div\", Lr, [\n me(ee(Qe, {\n months: N.value,\n onUpdateMonth: _.value.previous.setMonth\n }, null, 8, [\"months\", \"onUpdateMonth\"]), [\n [pe, l.previous.month]\n ]),\n me(ee(Je, {\n years: _.value.previous.years(),\n onUpdateYear: _.value.previous.setYear\n }, null, 8, [\"years\", \"onUpdateYear\"]), [\n [pe, l.previous.year]\n ]),\n me(Y(\"div\", null, [\n ee(Xe, { weeks: R.value }, null, 8, [\"weeks\"]),\n ee(qe, {\n calendar: _.value.previous,\n weeks: R.value,\n \"as-range\": y(),\n \"week-number\": p.weekNumber,\n onUpdateDate: (j) => F(j, d)\n }, null, 8, [\"calendar\", \"weeks\", \"as-range\", \"week-number\", \"onUpdateDate\"])\n ], 512), [\n [pe, l.previous.calendar]\n ])\n ])\n ], 2),\n y() && !t.asSingle ? (z(), Z(\"div\", Fr, [\n ee(Ze, {\n \"as-prev-or-next\": \"\",\n panel: l.next,\n calendar: _.value.next\n }, null, 8, [\"panel\", \"calendar\"]),\n Y(\"div\", Br, [\n me(ee(Qe, {\n months: N.value,\n onUpdateMonth: _.value.next.setMonth\n }, null, 8, [\"months\", \"onUpdateMonth\"]), [\n [pe, l.next.month]\n ]),\n me(ee(Je, {\n \"as-prev-or-next\": \"\",\n years: _.value.next.years(),\n onUpdateYear: _.value.next.setYear\n }, null, 8, [\"years\", \"onUpdateYear\"]), [\n [pe, l.next.year]\n ]),\n me(Y(\"div\", null, [\n ee(Xe, { weeks: R.value }, null, 8, [\"weeks\"]),\n ee(qe, {\n \"as-prev-or-next\": \"\",\n calendar: _.value.next,\n weeks: R.value,\n \"as-range\": y(),\n \"week-number\": p.weekNumber,\n onUpdateDate: (j) => F(j, d)\n }, null, 8, [\"calendar\", \"weeks\", \"as-range\", \"week-number\", \"onUpdateDate\"])\n ], 512), [\n [pe, l.next.calendar]\n ])\n ])\n ])) : ye(\"\", !0)\n ])\n ]),\n t.autoApply ? (z(), Z(\"div\", zr, [\n Y(\"div\", Wr, [\n Y(\"div\", Kr, [\n Y(\"button\", {\n type: \"button\",\n class: \"away-cancel-picker w-full transition ease-out duration-300 inline-flex justify-center rounded-md border border-vtd-secondary-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-vtd-secondary-700 hover:bg-vtd-secondary-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-vtd-primary-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm dark:ring-offset-vtd-secondary-800\",\n onClick: (j) => d(),\n textContent: ae(t.options.footer.cancel)\n }, null, 8, Gr)\n ])\n ])\n ])) : (z(), Z(\"div\", Nr, [\n Y(\"div\", Rr, [\n Y(\"div\", Ir, [\n Y(\"button\", {\n type: \"button\",\n class: \"away-apply-picker w-full transition ease-out duration-300 inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-vtd-primary-600 text-base font-medium text-white hover:bg-vtd-primary-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-vtd-primary-500 sm:ml-3 sm:w-auto sm:text-sm dark:ring-offset-vtd-secondary-800 disabled:cursor-not-allowed\",\n disabled: t.asSingle ? P.value.length < 1 : P.value.length < 2,\n onClick: (j) => G(d),\n textContent: ae(t.options.footer.apply)\n }, null, 8, Hr),\n Y(\"button\", {\n type: \"button\",\n class: \"mt-3 away-cancel-picker w-full transition ease-out duration-300 inline-flex justify-center rounded-md border border-vtd-secondary-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-vtd-secondary-700 hover:bg-vtd-secondary-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-vtd-primary-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm dark:ring-offset-vtd-secondary-800\",\n onClick: (j) => d(),\n textContent: ae(t.options.footer.cancel)\n }, null, 8, Ur)\n ])\n ])\n ]))\n ], 2)\n ], 512)\n ], 2)\n ]),\n _: 2\n }, 1024))\n ]),\n _: 2\n }, 1024)\n ]),\n _: 3\n }));\n }\n});\nconst qt = /* @__PURE__ */ (() => {\n const e = da;\n return e.install = (r) => {\n r.component(\"VueTailwindDatepicker\", e);\n }, e;\n})(), ia = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: qt\n}, Symbol.toStringTag, { value: \"Module\" }));\nObject.entries(ia).forEach(([e, r]) => {\n e !== \"default\" && (qt[e] = r);\n});\nexport {\n qt as default\n};\n","<template lang=\"pug\">\n .voucher-container\n .voucher-header\n h1 Transfer Voucher\n .flex.flex-col.gap-2\n p.flex.gap-2\n .font-bold Booking Reference\n span : \n span {{ voucher.booking_id }}\n .voucher-section\n h2 Passenger Information\n .flex.flex-col.gap-2\n p.flex.gap-2\n .font-bold Name\n span : \n span {{ voucher.passenger_name }}\n p.flex.gap-2\n .font-bold Phone\n span : \n span {{ voucher.passenger_phone }}\n p.flex.gap-2\n .font-bold Email\n span : \n span {{ voucher.passenger_email }}\n .voucher-section\n h2 Trip Details\n .flex.flex-col.gap-2\n p.flex.gap-2\n .font-bold Pickup Date & Time\n span :\n span {{ pickup_datetime }}\n p.flex.gap-2\n .font-bold Pickup Address\n span : \n ul\n li {{ pickup_address }}\n p.flex.gap-2\n .font-bold Dropoff Address\n span :\n ul\n li {{ dropoff_address }}\n p.flex.gap-2\n .font-bold Vehicle\n span : \n span {{ voucher.vehicle_description }}\n img.w-60(:src=\"voucher.vehicle_image_url\" alt=\"Vehicle Image\")\n .voucher-section\n h2 Pricing\n .flex.flex-col.gap-2\n p.flex.gap-2\n .font-bold Currency\n span :\n span {{ voucher.sale_currency }}\n p.flex.gap-2\n .font-bold Price\n span : \n span {{ voucher.sale_price }}\n .voucher-section\n h2 Additional Information\n .flex.flex-col.gap-2\n p.flex.gap-2\n .font-bold Comments \n span : \n span {{ voucher.comments_visible }}\n p.flex.gap-2\n .font-bold Luggage\n span :\n span {{ voucher.luggage }}\n p.flex.gap-2\n .font-bold Booster Seats\n span : \n span {{ voucher.booster_seats }}\n p.flex.gap-2\n .font-bold Baby Seats\n span :\n span {{ voucher.baby_seats }}\n .voucher-section(v-if=\"voucher.phone_emergency\")\n h2 Emergency Contact\n .flex.flex-col.gap-2\n p.flex.gap-2\n .font-bold Phone\n span :\n span {{ voucher.phone_emergency }}\n .voucher-section(v-if=\"voucher.outward_flight_service_ref || voucher.inward_flight_service_ref\")\n h2 Flight Information\n .flex.flex-col.gap-2\n p(v-if=\"voucher.outward_flight_service_ref\")\n p {{ dropoff_address }}\n p.flex.gap-2\n .font-bold Outward Flight Service Ref\n span :\n span {{ voucher.outward_flight_service_ref }}\n p.flex.gap-2\n .font-bold Outward Terminal Date & Time\n span : \n span {{ outward_terminal_datetime }}\n p(v-if=\"voucher.inward_flight_service_ref\")\n p {{ pickup_address }}\n p.flex.gap-2\n .font-bold Inward Flight Service Ref\n span :\n span {{ voucher.inward_flight_service_ref }}\n p.flex.gap-2\n .font-bold Inward Terminal Date & Time\n span : \n span {{ inward_terminal_datetime }}\n .voucher-footer\n p.flex.gap-2(v-if=\"voucher.pickup_instructions\")\n .font-bold Pickup Instructions\n span :\n span {{ voucher.pickup_instructions }}\n\n div.card.bg-warning.p-2\n h3.text-lg.font-medium.mb-2 Cancellation policy\n label(class=\"mb-1\")\n p.font-bold Up to 48h before travel time, 100% refund.\n p For shorter time, please contact our operations teams to check if it still possible.\n\n</template>\n\n<script>\nexport default {\n props: [\"voucher\"],\n computed: {\n pickup_datetime () {\n return this.voucher.pickup_datetime?.replace(\"T\", \" \")\n },\n outward_terminal_datetime () {\n return this.voucher.outward_terminal_datetime.replace(\"T\", \" \")\n },\n inward_terminal_datetime () {\n return this.voucher.inward_terminal_datetime.replace(\"T\", \" \")\n },\n pickup_address () {\n if (Array.isArray(this.voucher.pickup_address)) {\n return this.voucher.pickup_address.join(\"\\n\")\n }\n return this.voucher.pickup_address\n },\n dropoff_address () {\n if (Array.isArray(this.voucher.dropoff_address)) {\n return this.voucher.dropoff_address.join(\"\\n\")\n }\n return this.voucher.dropoff_address\n }\n }\n}\n</script>\n<style scoped>\n.voucher-container {\n @apply p-4 mx-auto;\n}\n\n.voucher-header, .voucher-section, .voucher-footer {\n @apply mb-4;\n}\n\n.voucher-header h1 {\n @apply text-2xl font-bold;\n}\n\n.voucher-section h2 {\n @apply text-xl font-semibold mb-4 border-b;\n}\n\n.voucher-section p, .voucher-footer p {\n @apply mb-2;\n}\n\n.voucher-footer {\n @apply pt-4;\n}\n\n.voucher-container {\n max-height: 80vh;\n overflow-y: auto;\n}\n</style>","<template>\n <dialog class=\"modal modal-open flex flex-col justify-center items-center\" @click.self=\"closeModal\">\n <div :class=\"['flex flex-col lg:card p-2 lg:p-6 bg-base-100 w-full', $attrs.class]\">\n <button @click=\"closeModal\" class=\"btn btn-circle btn-xs btn-error text-white absolute top-4 right-4 z-50\">\n <i class=\"fas fa-times\"></i>\n </button>\n <slot></slot>\n </div>\n </dialog>\n</template>\n\n<script>\nexport default {\n inheritAttrs: false,\n methods: {\n closeModal() {\n this.$emit('close');\n }\n }\n}\n</script>","import moment from 'moment'\nimport { Booking, TransformedBooking } from '../types';\n\nexport const asMoment = dateTime => \n isNaN(Date.parse(dateTime || \"\")) ? null : moment(dateTime)\n\nconst isDateValid = (date) => date && !!Object.keys(date).length\n\nexport function transformBooking(booking: Booking): TransformedBooking {\n return {\n ...booking,\n DateCreated: isDateValid(booking.DateCreated) ? asMoment(booking.DateCreated) : \"\",\n DateCancellation: isDateValid(booking.DateCancellation) ? asMoment(booking.DateCancellation) : \"\",\n TravelDate: isDateValid(booking.TravelDate) ? asMoment(booking.TravelDate) : \"\",\n Confirmed: booking.BookStatus?.toLowerCase() === 'confirmed',\n Pickup: {\n Name: booking.PickUpName,\n Time: asMoment(booking.PickUpTime),\n Address: booking.PickupAddress, \n },\n Dropoff: {\n Name: booking.DropoffName,\n Address: booking.DropoffAddress,\n Time: asMoment(booking.DropoffTime),\n },\n Flight: {\n Number: booking.FlightNo,\n Time: asMoment(booking.FlightTime?.split(\" \")?.join(\"T\")),\n },\n Passengers: {\n Adults: booking.Adults,\n Child: booking.Child,\n Baby: booking.Baby,\n Phone: booking.Phone,\n PaxName: booking.PaxName,\n },\n };\n}","<script setup>\nimport VueTailwindDatePicker from \"vue-tailwind-datepicker\";\nimport Voucher from \"./Voucher.vue\"\nimport Modal from \"../Modal.vue\"; \nimport api from '../../api';\n</script>\n<template>\n <div class=\"flex flex-col gap-4 h-full ml-2 mt-2 p-2\">\n <div class=\"sm:flex sm:items-center sm:justify-between\">\n <div class=\"w-full\">\n <div class=\"flex items-center gap-x-3 justify-between w-full\">\n <div class=\"text-3xl lg:text-4xl font-bold grow\">\n Booking overview\n </div>\n <div v-if=\"$user.agency && $user.provider\" class=\"flex items-center gap-4\">\n <select class=\"select select-bordered select-sm\" v-model=\"agencyOrProviderSelector\">\n <option value=\"provider\">Provider</option>\n <option value=\"agency\">Agency</option>\n </select>\n </div>\n </div>\n <p class=\"mt-1 text-sm\">\n Check your bookings. Use the filter to find specific bookings.\n </p>\n </div>\n </div>\n\n <div class=\"flex flex-col lg:flex-row justify-between gap-4\">\n <label class=\"input input-bordered input-xs lg:input-md flex items-center gap-2\">\n <input type=\"text\" class=\"grow\" placeholder=\"Search bookings\" v-model=\"bookingFilter\" />\n <span v-if=\"bookingFilter\" class=\"click\" @click=\"bookingFilter = null\"><i class=\"fa-regular fa-circle-xmark\"></i></span>\n <span v-else><i class=\"fa-solid fa-magnifying-glass\"></i></span>\n </label>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex gap-4 items-center input input-bordered input-xs lg:input-md relative\">\n <div class=\"whitespace-nowrap\"> <span>Travel date</span>:</div>\n <div class=\"ml-3 lg:p-6 font-bold absolute top-0 left-0 right-0 bottom-0 text-center flex flex-col justify-center\">\n <div>{{ filterDateRage }}</div>\n </div>\n <VueTailwindDatePicker class=\"vue-picker\" v-model=\"bookingDate\" />\n </div>\n </div>\n </div>\n <div class=\"flex gap-2 items-center text-xs lg:text-md\">\n <div> <span>Pages</span>:</div>\n <div class=\"w-1/3 overflow-auto flex gap-1\">\n <div :class=\"['badge click', page === ix-1 ? 'badge-neutral' :'badge-outline' ]\" v-for=\"ix in totalPages\" :key=\"ix\" \n @click=\"page = ix - 1\">\n {{ ix }}\n </div>\n </div>\n <div class=\"grow\"></div>\n <div class=\"badge badge-success text-white inline-flex gap-1\">{{ searchResults?.length }} <span> results</span></div>\n <details class=\"dropdown dropdown-left\" :diabled=\"!searchResults?.length\">\n <summary class=\"m-1 btn btn-sm\">Export</summary>\n <ul class=\"p-2 shadow menu dropdown-content z-50 bg-base-100 rounded-box w-52\">\n <li @click=\"exportCSV\"><a>CSV</a></li>\n <li @click=\"exportExcel\"><a>Excel</a></li>\n </ul>\n </details>\n </div>\n <div class=\"flex flex-col grow gp-6 relative overflow-auto\">\n <div class=\"absolute top-0 left-0 right-0 bottom-0 border border-base-300/50 rounded-md md:rounded-lg grow\">\n <table class=\"relative min-w-full divide-y divide-base-200 text-xs lg:text-md\">\n <thead class=\"sticky -top-1 bg-base-200 z-10 shadow border-t border-base-300/50 rounded-md md:rounded-lg\">\n <tr class=\"sticky top-0 bg-base-200\">\n <th scope=\"col\" v-for=\"col, ix in columns\" :key=\"col\" \n class=\"sticky top-0 py-3.5 px-4 text-sm font-normal text-left rtl:text-right text-gray-500 bg-base-200\">\n <div class=\"flex gap-2 click\" @click=\"sortColumn(ix)\">\n <span class=\"\">{{ col.name }}</span>\n <span v-if=\"columnSortIx === ix && columnSortAsc\">\n <i class=\"fa-solid fa-sort-down\"></i>\n </span>\n <span v-if=\"columnSortIx === ix && !columnSortAsc\">\n <i class=\"fa-solid fa-sort-up\"></i>\n </span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200\">\n <tr class=\"click hover:bg-base-300/80 opacity-80 hover:opacity-100\" v-for=\"booking in resultsPage\" :key=\"booking.idBooking\" @click=\"showBookingVoucher(booking)\">\n <td class=\"px-2 py-2 whitespace-nowrap\">\n <span class=\"font-bold\">{{ booking.idBooking }}</span><br>{{ booking.DateCreated.format(shortDateTimeFormat) }}\n </td>\n <td class=\"px-2 py-2 whitespace-nowrap\" v-if=\"isAgency\">\n <span class=\"font-bold\">{{ booking.BookingProvider }}</span>\n </td>\n <td class=\"px-2 py-2 whitespace-nowrap\">\n {{ booking.TravelDate.format(shortDateTimeFormat) }}\n </td>\n <td class=\"px-2 py-2 whitespace-nowrap\">\n <div class=\"h-full flex flex-col items-center justify-center\">\n <div :class=\"['badge', booking.DateCancellation ? 'badge-error text-white' :\n booking.Confirmed ? 'badge-success text-white' : 'badge-outline' ]\">\n {{ booking.BookStatus }}\n </div>\n <div class=\"text-xs font-bold\" v-if=\"booking.DateCancellation\">\n {{ booking.DateCancellation.format(dateTimeFormat) }}\n </div>\n </div>\n </td>\n <td class=\"px-2 py-2 whitespace-nowrap\">\n <div class=\"flex flex-col\">\n <div class=\"font-medium text-neutral-content\"><i class=\"fa-solid fa-plane\"></i>{{ booking.Flight.Number }}</div>\n <div class=\"text-xs\">{{ booking.Flight.Time?.format(dateTimeFormat) }}</div>\n </div>\n </td>\n <td class=\"px-2 py-2 whitespace-nowrap\">\n {{ booking.VehicleType }}\n </td>\n <td class=\"px-2 py-2 whitespace-nowrap max-w-xs overflow-hidden\"\n v-for=\"location in [booking.Pickup, booking.Dropoff]\" :key=\"location.Name\"\n >\n <div class=\"flex flex-col gap-2\">\n <div v-if=\"location.Time\"><i class=\"fa-regular fa-clock\"></i> {{ location.Time?.format(dateTimeFormat) }}</div>\n <div><i class=\"fa-solid fa-location-dot\"></i>{{ location.Address }}</div>\n {{ location.Name }}\n </div>\n \n </td>\n <td class=\"px-2 py-2 whitespace-nowrap\">\n {{ booking.Passengers.PaxName }} - <i class=\"fa-solid fa-phone\"></i> \n <div>{{ booking.Passengers.Phone }}</div>\n <div class=\"flex gap-2 items-center\">\n <div class=\"flex gap-2 items-center badge badge-neutral\">\n <i class=\"fa-solid fa-person\"></i> x {{ booking.Passengers.Adults }}\n </div>\n <div class=\"flex gap-2 items-center badge badge-info\" v-if=\"booking.Passengers.Child\">\n <i class=\"fa-solid fa-child\"></i> x {{ booking.Passengers.Child }}\n </div>\n <div class=\"flex gap-2 items-center badge badge-success\" v-if=\"booking.Passengers.Baby\">\n <i class=\"fa-solid fa-baby\"></i> x {{ booking.Passengers.Baby }}\n </div> \n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n <!-- Modal for booking voucher -->\n <Modal class=\"w-full lg:w-2/3\" v-if=\"showModal && selectedBooking?.booking_id\" @close=\"closeModal\">\n <Voucher class=\"w-full\" :voucher=\"selectedBooking\" @close=\"closeModal\" />\n <div class=\"flex justify-end gap-2\">\n <button class=\"btn btn-warning\" @click=\"$router.push(`booking/${selectedBooking.booking_id}`)\">\n Manage booking\n </button>\n </div>\n </Modal>\n </div>\n</template>\n<script>\nimport { transformBooking } from '../../utils/transformBooking'\nimport moment from 'moment'\nexport default {\n data() {\n return {\n bookingDate: {\n startDate: moment().format('YYYY-MM-DD 00:00:00'),\n endDate: moment().add(30, 'days').format('YYYY-MM-DD 00:00:00'),\n },\n searchResults: null,\n page: 0,\n pageSize: 10,\n bookingFilter: null,\n columnSortIx: 1,\n columnSortAsc: true,\n agencyOrProviderSelector: null,\n showModal: false,\n selectedBooking: null\n }\n },\n created() {\n if(this.$user.agency) {\n this.agencyOrProviderSelector = 'agency'\n } else {\n this.agencyOrProviderSelector = 'supplier'\n }\n this.search()\n },\n computed: {\n isAgency () {\n return this.agencyOrProviderSelector === 'agency'\n },\n columns () {\n return [\n { name: 'Booking', column: 'idBooking' },\n this.isAgency ? { name: 'Agency ref.', column: 'BookingProvider' } : null,\n { name: 'Travel Date', column: 'TravelDate' },\n { name: 'Status', column: 'BookStatus' },\n { name: 'Flight', column: 'FlightTime' },\n { name: 'Vehicle', column: 'VehicleType' },\n { name: 'PickUp', column: 'PickUpTime' },\n { name: 'DropOff', column: 'DropoffName' },\n { name: 'Passangers', column: 'PaxName' }\n ].filter(e => !!e)\n\n },\n columnSort () {\n return this.columns[this.columnSortIx]\n },\n filteredResults () {\n const filter = this.bookingFilter?.toLocaleLowerCase()\n return this.searchResults?.filter(b => {\n return !filter || JSON.stringify(b).toLocaleLowerCase().indexOf(filter) !== -1\n })\n },\n resultsPage () {\n const start = this.page * this.pageSize\n const end = (this.page + 1) * this.pageSize\n return this.filteredResults?.slice(start, end)\n .map(transformBooking)\n },\n totalPages () {\n if (!this.filteredResults) {\n return 0\n }\n return Math.ceil(this.filteredResults.length / this.pageSize)\n },\n dateTimeFormat () {\n return \"MMM Do YY, HH:mm\"\n },\n shortDateTimeFormat () {\n return \"MMM Do YY\"\n },\n filterDateRage () {\n const { bookingDate: { startDate, endDate }, shortDateTimeFormat } = this\n const start = moment(startDate).format(shortDateTimeFormat)\n const end = moment(endDate).format(shortDateTimeFormat)\n return `${start} - ${end}`\n }\n },\n watch: {\n bookingDate () {\n this.search()\n },\n bookingFilter () {\n this.page = 0\n },\n agencyOrProviderSelector () {\n this.search()\n }\n },\n methods: {\n async search() {\n const { startDate, endDate } = this.bookingDate\n const { agencyOrProviderSelector } = this\n const bookings = await this.$storex.bookings.search({ agencyOrProviderSelector, startDate, endDate })\n this.searchResults = bookings\n this.page = 0\n this.sortResults()\n },\n exportExcel () {\n this.$storex.bookings.exportExcel(this.searchResults)\n },\n exportCSV () {\n function JSONtoCSV(jsonList, fileName) {\n const replacer = (key, value) => value === null ? '' : value; \n const header = Object.keys(jsonList[0]);\n let csv = jsonList.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','));\n csv.unshift(header.join(','));\n csv = csv.join('\\r\\n');\n\n // Create file and download\n var blob = new Blob([csv], {type: 'text/csv;charset=utf-8;'});\n var link = document.createElement(\"a\");\n if (link.download !== undefined) {\n var url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", fileName);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n JSONtoCSV(this.searchResults)\n },\n sortColumn(ix) {\n if (this.columnSortIx === ix) {\n this.columnSortAsc = !this.columnSortAsc\n } else {\n this.columnSortIx = ix\n this.columnSortAsc = true\n }\n this.sortResults()\n },\n sortResults () {\n const column = this.columns[this.columnSortIx].column\n const sortResults = \n (a, b) => {\n const aBigger = `${a[column]}` > `${b[column]}`\n if (this.columnSortAsc) {\n return aBigger ? 1 : -1\n }\n return aBigger ? -1 : 1 \n }\n this.searchResults = [...this.searchResults?.sort(sortResults)]\n },\n async showBookingVoucher(booking) {\n if (this.agencyOrProviderSelector != 'agency') {\n return\n }\n const bookingVoucher = await this.$storex.bookings.loadBooking(\"OWT-\" + booking.idBooking)\n this.selectedBooking = bookingVoucher\n console.log(\"this.selectedBooking\", this.selectedBooking)\n this.showModal = true;\n },\n closeModal() {\n this.showModal = false;\n this.selectedBooking = null;\n }\n }\n}\n</script>\n<style>\n .vue-picker > label {\n opacity: 0;\n }\n</style>","(function(){\"use strict\";try{if(typeof document<\"u\"){var a=document.createElement(\"style\");a.appendChild(document.createTextNode(\".mapdiv[data-v-dbf82c40]{width:100%;height:100%}.custom-control-wrapper[data-v-d099a3a6]{display:none}.mapdiv .custom-control-wrapper[data-v-d099a3a6]{display:inline-block}.info-window-wrapper[data-v-cbe1707b]{display:none}.mapdiv .info-window-wrapper[data-v-cbe1707b]{display:inline-block}.custom-marker-wrapper[data-v-2d2d343a]{display:none}.mapdiv .custom-marker-wrapper[data-v-2d2d343a]{display:inline-block}\")),document.head.appendChild(a)}}catch(d){console.error(\"vite-plugin-css-injected-by-js\",d)}})();\nvar qe = Object.defineProperty;\nvar Be = (n, e, t) => e in n ? qe(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;\nvar se = (n, e, t) => (Be(n, typeof e != \"symbol\" ? e + \"\" : e, t), t);\nimport { defineComponent as P, ref as y, provide as G, watch as O, onMounted as Me, onBeforeUnmount as B, markRaw as I, toRef as Z, openBlock as Y, createElementBlock as X, createElementVNode as ae, renderSlot as Q, normalizeProps as Ze, guardReactiveProps as Ne, inject as C, computed as J, Comment as Ee, mergeProps as Pe, createCommentVNode as Oe } from \"vue\";\nconst N = Symbol(\"map\"), U = Symbol(\"api\"), xe = Symbol(\"marker\"), Le = Symbol(\"markerCluster\"), ee = Symbol(\"CustomMarker\"), Se = Symbol(\"mapTilesLoaded\"), q = [\n \"click\",\n \"dblclick\",\n \"drag\",\n \"dragend\",\n \"dragstart\",\n \"mousedown\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"mouseup\",\n \"rightclick\"\n];\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction Ue(n, e, t, s) {\n function r(o) {\n return o instanceof t ? o : new t(function(a) {\n a(o);\n });\n }\n return new (t || (t = Promise))(function(o, a) {\n function l(u) {\n try {\n d(s.next(u));\n } catch (c) {\n a(c);\n }\n }\n function i(u) {\n try {\n d(s.throw(u));\n } catch (c) {\n a(c);\n }\n }\n function d(u) {\n u.done ? o(u.value) : r(u.value).then(l, i);\n }\n d((s = s.apply(n, e || [])).next());\n });\n}\nvar De = function n(e, t) {\n if (e === t)\n return !0;\n if (e && t && typeof e == \"object\" && typeof t == \"object\") {\n if (e.constructor !== t.constructor)\n return !1;\n var s, r, o;\n if (Array.isArray(e)) {\n if (s = e.length, s != t.length)\n return !1;\n for (r = s; r-- !== 0; )\n if (!n(e[r], t[r]))\n return !1;\n return !0;\n }\n if (e.constructor === RegExp)\n return e.source === t.source && e.flags === t.flags;\n if (e.valueOf !== Object.prototype.valueOf)\n return e.valueOf() === t.valueOf();\n if (e.toString !== Object.prototype.toString)\n return e.toString() === t.toString();\n if (o = Object.keys(e), s = o.length, s !== Object.keys(t).length)\n return !1;\n for (r = s; r-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(t, o[r]))\n return !1;\n for (r = s; r-- !== 0; ) {\n var a = o[r];\n if (!n(e[a], t[a]))\n return !1;\n }\n return !0;\n }\n return e !== e && t !== t;\n};\nconst de = \"__googleMapsScriptId\";\nvar R;\n(function(n) {\n n[n.INITIALIZED = 0] = \"INITIALIZED\", n[n.LOADING = 1] = \"LOADING\", n[n.SUCCESS = 2] = \"SUCCESS\", n[n.FAILURE = 3] = \"FAILURE\";\n})(R || (R = {}));\nclass T {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey: e, authReferrerPolicy: t, channel: s, client: r, id: o = de, language: a, libraries: l = [], mapIds: i, nonce: d, region: u, retries: c = 3, url: h = \"https://maps.googleapis.com/maps/api/js\", version: p }) {\n if (this.callbacks = [], this.done = !1, this.loading = !1, this.errors = [], this.apiKey = e, this.authReferrerPolicy = t, this.channel = s, this.client = r, this.id = o || de, this.language = a, this.libraries = l, this.mapIds = i, this.nonce = d, this.region = u, this.retries = c, this.url = h, this.version = p, T.instance) {\n if (!De(this.options, T.instance.options))\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(T.instance.options)}`);\n return T.instance;\n }\n T.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy\n };\n }\n get status() {\n return this.errors.length ? R.FAILURE : this.done ? R.SUCCESS : this.loading ? R.LOADING : R.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let e = this.url;\n return e += \"?callback=__googleMapsCallback\", this.apiKey && (e += `&key=${this.apiKey}`), this.channel && (e += `&channel=${this.channel}`), this.client && (e += `&client=${this.client}`), this.libraries.length > 0 && (e += `&libraries=${this.libraries.join(\",\")}`), this.language && (e += `&language=${this.language}`), this.region && (e += `®ion=${this.region}`), this.version && (e += `&v=${this.version}`), this.mapIds && (e += `&map_ids=${this.mapIds.join(\",\")}`), this.authReferrerPolicy && (e += `&auth_referrer_policy=${this.authReferrerPolicy}`), e;\n }\n deleteScript() {\n const e = document.getElementById(this.id);\n e && e.remove();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((e, t) => {\n this.loadCallback((s) => {\n s ? t(s.error) : e(window.google);\n });\n });\n }\n importLibrary(e) {\n return this.execute(), google.maps.importLibrary(e);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(e) {\n this.callbacks.push(e), this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var e, t;\n if (document.getElementById(this.id)) {\n this.callback();\n return;\n }\n const s = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy\n };\n Object.keys(s).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (o) => !s[o] && delete s[o]\n ), !((t = (e = window == null ? void 0 : window.google) === null || e === void 0 ? void 0 : e.maps) === null || t === void 0) && t.importLibrary || ((o) => {\n let a, l, i, d = \"The Google Maps JavaScript API\", u = \"google\", c = \"importLibrary\", h = \"__ib__\", p = document, m = window;\n m = m[u] || (m[u] = {});\n const f = m.maps || (m.maps = {}), g = /* @__PURE__ */ new Set(), v = new URLSearchParams(), w = () => (\n // @ts-ignore\n a || (a = new Promise((_, E) => Ue(this, void 0, void 0, function* () {\n var b;\n yield l = p.createElement(\"script\"), l.id = this.id, v.set(\"libraries\", [...g] + \"\");\n for (i in o)\n v.set(i.replace(/[A-Z]/g, (x) => \"_\" + x[0].toLowerCase()), o[i]);\n v.set(\"callback\", u + \".maps.\" + h), l.src = this.url + \"?\" + v, f[h] = _, l.onerror = () => a = E(Error(d + \" could not load.\")), l.nonce = this.nonce || ((b = p.querySelector(\"script[nonce]\")) === null || b === void 0 ? void 0 : b.nonce) || \"\", p.head.append(l);\n })))\n );\n f[c] ? console.warn(d + \" only loads once. Ignoring:\", o) : f[c] = (_, ...E) => g.add(_) && w().then(() => f[c](_, ...E));\n })(s);\n const r = this.libraries.map((o) => this.importLibrary(o));\n r.length || r.push(this.importLibrary(\"core\")), Promise.all(r).then(() => this.callback(), (o) => {\n const a = new ErrorEvent(\"error\", { error: o });\n this.loadErrorCallback(a);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript(), this.done = !1, this.loading = !1, this.errors = [], this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n this.failed && this.reset();\n }\n loadErrorCallback(e) {\n if (this.errors.push(e), this.errors.length <= this.retries) {\n const t = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${t} ms.`), setTimeout(() => {\n this.deleteScript(), this.setScript();\n }, t);\n } else\n this.onerrorEvent = e, this.callback();\n }\n callback() {\n this.done = !0, this.loading = !1, this.callbacks.forEach((e) => {\n e(this.onerrorEvent);\n }), this.callbacks = [];\n }\n execute() {\n if (this.resetIfRetryingFailed(), this.done)\n this.callback();\n else {\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.This may result in undesirable behavior as options and script parameters may not match.\"), this.callback();\n return;\n }\n this.loading || (this.loading = !0, this.setScript());\n }\n }\n}\nfunction Fe(n) {\n return class extends n.OverlayView {\n constructor(s) {\n super();\n se(this, \"element\");\n se(this, \"opts\");\n const { element: r, ...o } = s;\n this.element = r, this.opts = o, this.opts.map && this.setMap(this.opts.map);\n }\n getPosition() {\n return this.opts.position ? this.opts.position instanceof n.LatLng ? this.opts.position : new n.LatLng(this.opts.position) : null;\n }\n getVisible() {\n if (!this.element)\n return !1;\n const s = this.element;\n return s.style.display !== \"none\" && s.style.visibility !== \"hidden\" && (s.style.opacity === \"\" || Number(s.style.opacity) > 0.01);\n }\n onAdd() {\n if (!this.element)\n return;\n const s = this.getPanes();\n s && s.overlayMouseTarget.appendChild(this.element);\n }\n draw() {\n if (!this.element)\n return;\n const s = this.getProjection(), r = s == null ? void 0 : s.fromLatLngToDivPixel(this.getPosition());\n if (r) {\n this.element.style.position = \"absolute\";\n const o = this.element.offsetHeight, a = this.element.offsetWidth;\n let l, i;\n switch (this.opts.anchorPoint) {\n case \"TOP_CENTER\":\n l = r.x - a / 2, i = r.y;\n break;\n case \"BOTTOM_CENTER\":\n l = r.x - a / 2, i = r.y - o;\n break;\n case \"LEFT_CENTER\":\n l = r.x, i = r.y - o / 2;\n break;\n case \"RIGHT_CENTER\":\n l = r.x - a, i = r.y - o / 2;\n break;\n case \"TOP_LEFT\":\n l = r.x, i = r.y;\n break;\n case \"TOP_RIGHT\":\n l = r.x - a, i = r.y;\n break;\n case \"BOTTOM_LEFT\":\n l = r.x, i = r.y - o;\n break;\n case \"BOTTOM_RIGHT\":\n l = r.x - a, i = r.y - o;\n break;\n default:\n l = r.x - a / 2, i = r.y - o / 2;\n }\n this.element.style.left = l + \"px\", this.element.style.top = i + \"px\", this.element.style.transform = `translateX(${this.opts.offsetX || 0}px) translateY(${this.opts.offsetY || 0}px)`, this.opts.zIndex && (this.element.style.zIndex = this.opts.zIndex.toString());\n }\n }\n onRemove() {\n this.element && this.element.remove();\n }\n setOptions(s) {\n const { element: r, ...o } = s;\n this.element = r, this.opts = o, this.draw();\n }\n };\n}\nlet he;\nconst pe = [\n \"bounds_changed\",\n \"center_changed\",\n \"click\",\n \"contextmenu\",\n \"dblclick\",\n \"drag\",\n \"dragend\",\n \"dragstart\",\n \"heading_changed\",\n \"idle\",\n \"isfractionalzoomenabled_changed\",\n \"mapcapabilities_changed\",\n \"maptypeid_changed\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"projection_changed\",\n \"renderingtype_changed\",\n \"rightclick\",\n \"tilesloaded\",\n \"tilt_changed\",\n \"zoom_changed\"\n], Ve = P({\n props: {\n apiPromise: {\n type: Promise\n },\n apiKey: {\n type: String,\n default: \"\"\n },\n version: {\n type: String,\n default: \"weekly\"\n },\n libraries: {\n type: Array,\n default: () => [\"places\"]\n },\n region: {\n type: String,\n required: !1\n },\n language: {\n type: String,\n required: !1\n },\n backgroundColor: {\n type: String,\n required: !1\n },\n center: {\n type: Object,\n default: () => ({ lat: 0, lng: 0 })\n },\n clickableIcons: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n controlSize: {\n type: Number,\n required: !1\n },\n disableDefaultUi: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n disableDoubleClickZoom: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n draggable: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n draggableCursor: {\n type: String,\n required: !1\n },\n draggingCursor: {\n type: String,\n required: !1\n },\n fullscreenControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n fullscreenControlPosition: {\n type: String,\n required: !1\n },\n gestureHandling: {\n type: String,\n required: !1\n },\n heading: {\n type: Number,\n required: !1\n },\n isFractionalZoomEnabled: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n keyboardShortcuts: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n mapTypeControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n mapTypeControlOptions: {\n type: Object,\n required: !1\n },\n mapTypeId: {\n type: [Number, String],\n required: !1\n },\n mapId: {\n type: String,\n required: !1\n },\n maxZoom: {\n type: Number,\n required: !1\n },\n minZoom: {\n type: Number,\n required: !1\n },\n noClear: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n panControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n panControlPosition: {\n type: String,\n required: !1\n },\n restriction: {\n type: Object,\n required: !1\n },\n rotateControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n rotateControlPosition: {\n type: String,\n required: !1\n },\n scaleControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n scaleControlStyle: {\n type: Number,\n required: !1\n },\n scrollwheel: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n streetView: {\n type: Object,\n required: !1\n },\n streetViewControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n streetViewControlPosition: {\n type: String,\n required: !1\n },\n styles: {\n type: Array,\n required: !1\n },\n tilt: {\n type: Number,\n required: !1\n },\n zoom: {\n type: Number,\n required: !1\n },\n zoomControl: {\n type: Boolean,\n required: !1,\n default: void 0\n },\n zoomControlPosition: {\n type: String,\n required: !1\n },\n nonce: {\n type: String,\n default: \"\"\n }\n },\n emits: pe,\n setup(n, { emit: e }) {\n const t = y(), s = y(!1), r = y(), o = y(), a = y(!1);\n G(N, r), G(U, o), G(Se, a);\n const l = () => {\n const c = { ...n };\n Object.keys(c).forEach((f) => {\n c[f] === void 0 && delete c[f];\n });\n const p = (f) => {\n var g;\n return f ? { position: (g = o.value) == null ? void 0 : g.ControlPosition[f] } : {};\n }, m = {\n scaleControlOptions: n.scaleControlStyle ? { style: n.scaleControlStyle } : {},\n panControlOptions: p(n.panControlPosition),\n zoomControlOptions: p(n.zoomControlPosition),\n rotateControlOptions: p(n.rotateControlPosition),\n streetViewControlOptions: p(n.streetViewControlPosition),\n fullscreenControlOptions: p(n.fullscreenControlPosition),\n disableDefaultUI: n.disableDefaultUi\n };\n return { ...c, ...m };\n }, i = O(\n [o, r],\n ([c, h]) => {\n const p = c, m = h;\n p && m && (p.event.addListenerOnce(m, \"tilesloaded\", () => {\n a.value = !0;\n }), setTimeout(i, 0));\n },\n { immediate: !0 }\n ), d = () => {\n try {\n const { apiKey: c, region: h, version: p, language: m, libraries: f, nonce: g } = n;\n he = new T({ apiKey: c, region: h, version: p, language: m, libraries: f, nonce: g });\n } catch (c) {\n console.error(c);\n }\n }, u = (c) => {\n o.value = I(c.maps), r.value = I(new c.maps.Map(t.value, l()));\n const h = Fe(o.value);\n o.value[ee] = h, pe.forEach((m) => {\n var f;\n (f = r.value) == null || f.addListener(m, (g) => e(m, g));\n }), s.value = !0;\n const p = Object.keys(n).filter(\n (m) => ![\"apiPromise\", \"apiKey\", \"version\", \"libraries\", \"region\", \"language\", \"center\", \"zoom\", \"nonce\"].includes(m)\n ).map((m) => Z(n, m));\n O(\n [() => n.center, () => n.zoom, ...p],\n ([m, f], [g, v]) => {\n var x, M, F;\n const { center: w, zoom: _, ...E } = l();\n (x = r.value) == null || x.setOptions(E), f !== void 0 && f !== v && ((M = r.value) == null || M.setZoom(f));\n const b = !g || m.lng !== g.lng || m.lat !== g.lat;\n m && b && ((F = r.value) == null || F.panTo(m));\n }\n );\n };\n return Me(() => {\n n.apiPromise && n.apiPromise instanceof Promise ? n.apiPromise.then(u) : (d(), he.load().then(u));\n }), B(() => {\n var c;\n a.value = !1, r.value && ((c = o.value) == null || c.event.clearInstanceListeners(r.value));\n }), { mapRef: t, ready: s, map: r, api: o, mapTilesLoaded: a };\n }\n});\nconst te = (n, e) => {\n const t = n.__vccOpts || n;\n for (const [s, r] of e)\n t[s] = r;\n return t;\n}, ze = {\n ref: \"mapRef\",\n class: \"mapdiv\"\n};\nfunction Ge(n, e, t, s, r, o) {\n return Y(), X(\"div\", null, [\n ae(\"div\", ze, null, 512),\n Q(n.$slots, \"default\", Ze(Ne({ ready: n.ready, map: n.map, api: n.api, mapTilesLoaded: n.mapTilesLoaded })), void 0, !0)\n ]);\n}\nconst Et = /* @__PURE__ */ te(Ve, [[\"render\", Ge], [\"__scopeId\", \"data-v-dbf82c40\"]]);\nfunction He(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar We = function n(e, t) {\n if (e === t)\n return !0;\n if (e && t && typeof e == \"object\" && typeof t == \"object\") {\n if (e.constructor !== t.constructor)\n return !1;\n var s, r, o;\n if (Array.isArray(e)) {\n if (s = e.length, s != t.length)\n return !1;\n for (r = s; r-- !== 0; )\n if (!n(e[r], t[r]))\n return !1;\n return !0;\n }\n if (e.constructor === RegExp)\n return e.source === t.source && e.flags === t.flags;\n if (e.valueOf !== Object.prototype.valueOf)\n return e.valueOf() === t.valueOf();\n if (e.toString !== Object.prototype.toString)\n return e.toString() === t.toString();\n if (o = Object.keys(e), s = o.length, s !== Object.keys(t).length)\n return !1;\n for (r = s; r-- !== 0; )\n if (!Object.prototype.hasOwnProperty.call(t, o[r]))\n return !1;\n for (r = s; r-- !== 0; ) {\n var a = o[r];\n if (!n(e[a], t[a]))\n return !1;\n }\n return !0;\n }\n return e !== e && t !== t;\n};\nconst $ = /* @__PURE__ */ He(We), Ke = (n) => n === \"Marker\", Je = (n) => n === ee, D = (n, e, t, s) => {\n const r = y(), o = C(N, y()), a = C(U, y()), l = C(Le, y()), i = J(\n () => !!(l.value && a.value && (r.value instanceof a.value.Marker || r.value instanceof a.value[ee]))\n );\n return O(\n [o, t],\n (d, [u, c]) => {\n var p, m, f;\n const h = !$(t.value, c) || o.value !== u;\n !o.value || !a.value || !h || (r.value ? (r.value.setOptions(t.value), i.value && ((p = l.value) == null || p.removeMarker(r.value), (m = l.value) == null || m.addMarker(r.value))) : (Ke(n) ? r.value = I(\n new a.value[n](t.value)\n ) : Je(n) ? r.value = I(\n new a.value[n](t.value)\n ) : r.value = I(\n new a.value[n]({\n ...t.value,\n map: o.value\n })\n ), i.value ? (f = l.value) == null || f.addMarker(r.value) : r.value.setMap(o.value), e.forEach((g) => {\n var v;\n (v = r.value) == null || v.addListener(g, (w) => s(g, w));\n })));\n },\n {\n immediate: !0\n }\n ), B(() => {\n var d, u;\n r.value && ((d = a.value) == null || d.event.clearInstanceListeners(r.value), i.value ? (u = l.value) == null || u.removeMarker(r.value) : r.value.setMap(null));\n }), r;\n}, fe = [\n \"animation_changed\",\n \"click\",\n \"dblclick\",\n \"rightclick\",\n \"dragstart\",\n \"dragend\",\n \"drag\",\n \"mouseover\",\n \"mousedown\",\n \"mouseout\",\n \"mouseup\",\n \"draggable_changed\",\n \"clickable_changed\",\n \"contextmenu\",\n \"cursor_changed\",\n \"flat_changed\",\n \"rightclick\",\n \"zindex_changed\",\n \"icon_changed\",\n \"position_changed\",\n \"shape_changed\",\n \"title_changed\",\n \"visible_changed\"\n], Pt = P({\n name: \"Marker\",\n props: {\n options: {\n type: Object,\n required: !0\n }\n },\n emits: fe,\n setup(n, { emit: e, expose: t, slots: s }) {\n const r = Z(n, \"options\"), o = D(\"Marker\", fe, r, e);\n return G(xe, o), t({ marker: o }), () => {\n var a;\n return (a = s.default) == null ? void 0 : a.call(s);\n };\n }\n}), Ot = P({\n name: \"Polyline\",\n props: {\n options: {\n type: Object,\n required: !0\n }\n },\n emits: q,\n setup(n, { emit: e }) {\n const t = Z(n, \"options\");\n return { polyline: D(\"Polyline\", q, t, e) };\n },\n render: () => null\n}), xt = P({\n name: \"Polygon\",\n props: {\n options: {\n type: Object,\n required: !0\n }\n },\n emits: q,\n setup(n, { emit: e }) {\n const t = Z(n, \"options\");\n return { polygon: D(\"Polygon\", q, t, e) };\n },\n render: () => null\n}), me = q.concat([\"bounds_changed\"]), Lt = P({\n name: \"Rectangle\",\n props: {\n options: {\n type: Object,\n required: !0\n }\n },\n emits: me,\n setup(n, { emit: e }) {\n const t = Z(n, \"options\");\n return { rectangle: D(\"Rectangle\", me, t, e) };\n },\n render: () => null\n}), ge = q.concat([\"center_changed\", \"radius_changed\"]), St = P({\n name: \"Circle\",\n props: {\n options: {\n type: Object,\n required: !0\n }\n },\n emits: ge,\n setup(n, { emit: e }) {\n const t = Z(n, \"options\");\n return { circle: D(\"Circle\", ge, t, e) };\n },\n render: () => null\n}), Ye = P({\n props: {\n position: {\n type: String,\n required: !0\n },\n index: {\n type: Number,\n default: 1\n }\n },\n emits: [\"content:loaded\"],\n setup(n, { emit: e }) {\n const t = y(null), s = C(N, y()), r = C(U, y()), o = C(Se, y(!1)), a = O(\n [o, r, t],\n ([d, u, c]) => {\n u && d && c && (l(n.position), e(\"content:loaded\"), setTimeout(a, 0));\n },\n { immediate: !0 }\n ), l = (d) => {\n if (s.value && r.value && t.value) {\n const u = r.value.ControlPosition[d];\n s.value.controls[u].push(t.value);\n }\n }, i = (d) => {\n if (s.value && r.value) {\n let u = null;\n const c = r.value.ControlPosition[d];\n s.value.controls[c].forEach((h, p) => {\n h === t.value && (u = p);\n }), u !== null && s.value.controls[c].removeAt(u);\n }\n };\n return B(() => i(n.position)), O(\n () => n.position,\n (d, u) => {\n i(u), l(d);\n }\n ), O(\n () => n.index,\n (d) => {\n d && t.value && (t.value.index = n.index);\n }\n ), { controlRef: t };\n }\n});\nconst Xe = {\n ref: \"controlRef\",\n class: \"custom-control-wrapper\"\n};\nfunction Qe(n, e, t, s, r, o) {\n return Y(), X(\"div\", Xe, [\n Q(n.$slots, \"default\", {}, void 0, !0)\n ], 512);\n}\nconst It = /* @__PURE__ */ te(Ye, [[\"render\", Qe], [\"__scopeId\", \"data-v-d099a3a6\"]]), ve = [\"closeclick\", \"content_changed\", \"domready\", \"position_changed\", \"visible\", \"zindex_changed\"], et = P({\n inheritAttrs: !1,\n props: {\n options: {\n type: Object,\n default: () => ({})\n },\n modelValue: {\n type: Boolean\n }\n },\n emits: [...ve, \"update:modelValue\"],\n setup(n, { slots: e, emit: t, expose: s }) {\n const r = y(), o = y(), a = C(N, y()), l = C(U, y()), i = C(xe, y());\n let d, u = n.modelValue;\n const c = J(() => {\n var f;\n return (f = e.default) == null ? void 0 : f.call(e).some((g) => g.type !== Ee);\n }), h = (f) => {\n u = f, t(\"update:modelValue\", f);\n }, p = (f) => {\n r.value && (r.value.open({ map: a.value, anchor: i.value, ...f }), h(!0));\n }, m = () => {\n r.value && (r.value.close(), h(!1));\n };\n return Me(() => {\n O(\n [a, () => n.options],\n ([f, g], [v, w]) => {\n var E;\n const _ = !$(g, w) || a.value !== v;\n a.value && l.value && _ && (r.value ? (r.value.setOptions({\n ...g,\n content: c.value ? o.value : g.content\n }), i.value || p()) : (r.value = I(\n new l.value.InfoWindow({\n ...g,\n content: c.value ? o.value : g.content\n })\n ), i.value && (d = i.value.addListener(\"click\", () => {\n p();\n })), (!i.value || u) && p(), ve.forEach((b) => {\n var x;\n (x = r.value) == null || x.addListener(b, (M) => t(b, M));\n }), (E = r.value) == null || E.addListener(\"closeclick\", () => h(!1))));\n },\n {\n immediate: !0\n }\n ), O(\n () => n.modelValue,\n (f) => {\n f !== u && (f ? p() : m());\n }\n );\n }), B(() => {\n var f;\n d && d.remove(), r.value && ((f = l.value) == null || f.event.clearInstanceListeners(r.value), m());\n }), s({ infoWindow: r, open: p, close: m }), { infoWindow: r, infoWindowRef: o, hasSlotContent: c, open: p, close: m };\n }\n});\nconst tt = {\n key: 0,\n class: \"info-window-wrapper\"\n};\nfunction st(n, e, t, s, r, o) {\n return n.hasSlotContent ? (Y(), X(\"div\", tt, [\n ae(\"div\", Pe({ ref: \"infoWindowRef\" }, n.$attrs), [\n Q(n.$slots, \"default\", {}, void 0, !0)\n ], 16)\n ])) : Oe(\"\", !0);\n}\nconst At = /* @__PURE__ */ te(et, [[\"render\", st], [\"__scopeId\", \"data-v-cbe1707b\"]]), ye = [\n Int8Array,\n Uint8Array,\n Uint8ClampedArray,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array\n], re = 1, V = 8;\nclass le {\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(e) {\n if (!(e instanceof ArrayBuffer))\n throw new Error(\"Data must be an instance of ArrayBuffer.\");\n const [t, s] = new Uint8Array(e, 0, 2);\n if (t !== 219)\n throw new Error(\"Data does not appear to be in a KDBush format.\");\n const r = s >> 4;\n if (r !== re)\n throw new Error(`Got v${r} data when expected v${re}.`);\n const o = ye[s & 15];\n if (!o)\n throw new Error(\"Unrecognized array type.\");\n const [a] = new Uint16Array(e, 2, 1), [l] = new Uint32Array(e, 4, 1);\n return new le(l, a, o, e);\n }\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(e, t = 64, s = Float64Array, r) {\n if (isNaN(e) || e < 0)\n throw new Error(`Unpexpected numItems value: ${e}.`);\n this.numItems = +e, this.nodeSize = Math.min(Math.max(+t, 2), 65535), this.ArrayType = s, this.IndexArrayType = e < 65536 ? Uint16Array : Uint32Array;\n const o = ye.indexOf(this.ArrayType), a = e * 2 * this.ArrayType.BYTES_PER_ELEMENT, l = e * this.IndexArrayType.BYTES_PER_ELEMENT, i = (8 - l % 8) % 8;\n if (o < 0)\n throw new Error(`Unexpected typed array class: ${s}.`);\n r && r instanceof ArrayBuffer ? (this.data = r, this.ids = new this.IndexArrayType(this.data, V, e), this.coords = new this.ArrayType(this.data, V + l + i, e * 2), this._pos = e * 2, this._finished = !0) : (this.data = new ArrayBuffer(V + a + l + i), this.ids = new this.IndexArrayType(this.data, V, e), this.coords = new this.ArrayType(this.data, V + l + i, e * 2), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, (re << 4) + o]), new Uint16Array(this.data, 2, 1)[0] = t, new Uint32Array(this.data, 4, 1)[0] = e);\n }\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(e, t) {\n const s = this._pos >> 1;\n return this.ids[s] = s, this.coords[this._pos++] = e, this.coords[this._pos++] = t, s;\n }\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const e = this._pos >> 1;\n if (e !== this.numItems)\n throw new Error(`Added ${e} items when expected ${this.numItems}.`);\n return ie(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this;\n }\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(e, t, s, r) {\n if (!this._finished)\n throw new Error(\"Data not yet indexed - call index.finish().\");\n const { ids: o, coords: a, nodeSize: l } = this, i = [0, o.length - 1, 0], d = [];\n for (; i.length; ) {\n const u = i.pop() || 0, c = i.pop() || 0, h = i.pop() || 0;\n if (c - h <= l) {\n for (let g = h; g <= c; g++) {\n const v = a[2 * g], w = a[2 * g + 1];\n v >= e && v <= s && w >= t && w <= r && d.push(o[g]);\n }\n continue;\n }\n const p = h + c >> 1, m = a[2 * p], f = a[2 * p + 1];\n m >= e && m <= s && f >= t && f <= r && d.push(o[p]), (u === 0 ? e <= m : t <= f) && (i.push(h), i.push(p - 1), i.push(1 - u)), (u === 0 ? s >= m : r >= f) && (i.push(p + 1), i.push(c), i.push(1 - u));\n }\n return d;\n }\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(e, t, s) {\n if (!this._finished)\n throw new Error(\"Data not yet indexed - call index.finish().\");\n const { ids: r, coords: o, nodeSize: a } = this, l = [0, r.length - 1, 0], i = [], d = s * s;\n for (; l.length; ) {\n const u = l.pop() || 0, c = l.pop() || 0, h = l.pop() || 0;\n if (c - h <= a) {\n for (let g = h; g <= c; g++)\n we(o[2 * g], o[2 * g + 1], e, t) <= d && i.push(r[g]);\n continue;\n }\n const p = h + c >> 1, m = o[2 * p], f = o[2 * p + 1];\n we(m, f, e, t) <= d && i.push(r[p]), (u === 0 ? e - s <= m : t - s <= f) && (l.push(h), l.push(p - 1), l.push(1 - u)), (u === 0 ? e + s >= m : t + s >= f) && (l.push(p + 1), l.push(c), l.push(1 - u));\n }\n return i;\n }\n}\nfunction ie(n, e, t, s, r, o) {\n if (r - s <= t)\n return;\n const a = s + r >> 1;\n Ie(n, e, a, s, r, o), ie(n, e, t, s, a - 1, 1 - o), ie(n, e, t, a + 1, r, 1 - o);\n}\nfunction Ie(n, e, t, s, r, o) {\n for (; r > s; ) {\n if (r - s > 600) {\n const d = r - s + 1, u = t - s + 1, c = Math.log(d), h = 0.5 * Math.exp(2 * c / 3), p = 0.5 * Math.sqrt(c * h * (d - h) / d) * (u - d / 2 < 0 ? -1 : 1), m = Math.max(s, Math.floor(t - u * h / d + p)), f = Math.min(r, Math.floor(t + (d - u) * h / d + p));\n Ie(n, e, t, m, f, o);\n }\n const a = e[2 * t + o];\n let l = s, i = r;\n for (z(n, e, s, t), e[2 * r + o] > a && z(n, e, s, r); l < i; ) {\n for (z(n, e, l, i), l++, i--; e[2 * l + o] < a; )\n l++;\n for (; e[2 * i + o] > a; )\n i--;\n }\n e[2 * s + o] === a ? z(n, e, s, i) : (i++, z(n, e, i, r)), i <= t && (s = i + 1), t <= i && (r = i - 1);\n }\n}\nfunction z(n, e, t, s) {\n ne(n, t, s), ne(e, 2 * t, 2 * s), ne(e, 2 * t + 1, 2 * s + 1);\n}\nfunction ne(n, e, t) {\n const s = n[e];\n n[e] = n[t], n[t] = s;\n}\nfunction we(n, e, t, s) {\n const r = n - t, o = e - s;\n return r * r + o * o;\n}\nconst rt = {\n minZoom: 0,\n // min zoom to generate clusters on\n maxZoom: 16,\n // max zoom level to cluster the points on\n minPoints: 2,\n // minimum points to form a cluster\n radius: 40,\n // cluster radius in pixels\n extent: 512,\n // tile extent (radius is calculated relative to it)\n nodeSize: 64,\n // size of the KD-tree leaf node, affects performance\n log: !1,\n // whether to log timing info\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: !1,\n // a reduce function for calculating custom cluster properties\n reduce: null,\n // (accumulated, props) => { accumulated.sum += props.sum; }\n // properties to use for individual points when running the reducer\n map: (n) => n\n // props => ({sum: props.my_value})\n}, _e = Math.fround || ((n) => (e) => (n[0] = +e, n[0]))(new Float32Array(1)), A = 2, S = 3, oe = 4, L = 5, Ae = 6;\nclass Te {\n constructor(e) {\n this.options = Object.assign(Object.create(rt), e), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];\n }\n load(e) {\n const { log: t, minZoom: s, maxZoom: r } = this.options;\n t && console.time(\"total time\");\n const o = `prepare ${e.length} points`;\n t && console.time(o), this.points = e;\n const a = [];\n for (let i = 0; i < e.length; i++) {\n const d = e[i];\n if (!d.geometry)\n continue;\n const [u, c] = d.geometry.coordinates, h = _e(W(u)), p = _e(K(c));\n a.push(\n h,\n p,\n // projected point coordinates\n 1 / 0,\n // the last zoom the point was processed at\n i,\n // index of the source feature in the original input array\n -1,\n // parent cluster id\n 1\n // number of points in a cluster\n ), this.options.reduce && a.push(0);\n }\n let l = this.trees[r + 1] = this._createTree(a);\n t && console.timeEnd(o);\n for (let i = r; i >= s; i--) {\n const d = +Date.now();\n l = this.trees[i] = this._createTree(this._cluster(l, i)), t && console.log(\"z%d: %d clusters in %dms\", i, l.numItems, +Date.now() - d);\n }\n return t && console.timeEnd(\"total time\"), this;\n }\n getClusters(e, t) {\n let s = ((e[0] + 180) % 360 + 360) % 360 - 180;\n const r = Math.max(-90, Math.min(90, e[1]));\n let o = e[2] === 180 ? 180 : ((e[2] + 180) % 360 + 360) % 360 - 180;\n const a = Math.max(-90, Math.min(90, e[3]));\n if (e[2] - e[0] >= 360)\n s = -180, o = 180;\n else if (s > o) {\n const c = this.getClusters([s, r, 180, a], t), h = this.getClusters([-180, r, o, a], t);\n return c.concat(h);\n }\n const l = this.trees[this._limitZoom(t)], i = l.range(W(s), K(a), W(o), K(r)), d = l.data, u = [];\n for (const c of i) {\n const h = this.stride * c;\n u.push(d[h + L] > 1 ? ke(d, h, this.clusterProps) : this.points[d[h + S]]);\n }\n return u;\n }\n getChildren(e) {\n const t = this._getOriginId(e), s = this._getOriginZoom(e), r = \"No cluster with the specified id.\", o = this.trees[s];\n if (!o)\n throw new Error(r);\n const a = o.data;\n if (t * this.stride >= a.length)\n throw new Error(r);\n const l = this.options.radius / (this.options.extent * Math.pow(2, s - 1)), i = a[t * this.stride], d = a[t * this.stride + 1], u = o.within(i, d, l), c = [];\n for (const h of u) {\n const p = h * this.stride;\n a[p + oe] === e && c.push(a[p + L] > 1 ? ke(a, p, this.clusterProps) : this.points[a[p + S]]);\n }\n if (c.length === 0)\n throw new Error(r);\n return c;\n }\n getLeaves(e, t, s) {\n t = t || 10, s = s || 0;\n const r = [];\n return this._appendLeaves(r, e, t, s, 0), r;\n }\n getTile(e, t, s) {\n const r = this.trees[this._limitZoom(e)], o = Math.pow(2, e), { extent: a, radius: l } = this.options, i = l / a, d = (s - i) / o, u = (s + 1 + i) / o, c = {\n features: []\n };\n return this._addTileFeatures(\n r.range((t - i) / o, d, (t + 1 + i) / o, u),\n r.data,\n t,\n s,\n o,\n c\n ), t === 0 && this._addTileFeatures(\n r.range(1 - i / o, d, 1, u),\n r.data,\n o,\n s,\n o,\n c\n ), t === o - 1 && this._addTileFeatures(\n r.range(0, d, i / o, u),\n r.data,\n -1,\n s,\n o,\n c\n ), c.features.length ? c : null;\n }\n getClusterExpansionZoom(e) {\n let t = this._getOriginZoom(e) - 1;\n for (; t <= this.options.maxZoom; ) {\n const s = this.getChildren(e);\n if (t++, s.length !== 1)\n break;\n e = s[0].properties.cluster_id;\n }\n return t;\n }\n _appendLeaves(e, t, s, r, o) {\n const a = this.getChildren(t);\n for (const l of a) {\n const i = l.properties;\n if (i && i.cluster ? o + i.point_count <= r ? o += i.point_count : o = this._appendLeaves(e, i.cluster_id, s, r, o) : o < r ? o++ : e.push(l), e.length === s)\n break;\n }\n return o;\n }\n _createTree(e) {\n const t = new le(e.length / this.stride | 0, this.options.nodeSize, Float32Array);\n for (let s = 0; s < e.length; s += this.stride)\n t.add(e[s], e[s + 1]);\n return t.finish(), t.data = e, t;\n }\n _addTileFeatures(e, t, s, r, o, a) {\n for (const l of e) {\n const i = l * this.stride, d = t[i + L] > 1;\n let u, c, h;\n if (d)\n u = $e(t, i, this.clusterProps), c = t[i], h = t[i + 1];\n else {\n const f = this.points[t[i + S]];\n u = f.properties;\n const [g, v] = f.geometry.coordinates;\n c = W(g), h = K(v);\n }\n const p = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (c * o - s)),\n Math.round(this.options.extent * (h * o - r))\n ]],\n tags: u\n };\n let m;\n d || this.options.generateId ? m = t[i + S] : m = this.points[t[i + S]].id, m !== void 0 && (p.id = m), a.features.push(p);\n }\n }\n _limitZoom(e) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+e), this.options.maxZoom + 1));\n }\n _cluster(e, t) {\n const { radius: s, extent: r, reduce: o, minPoints: a } = this.options, l = s / (r * Math.pow(2, t)), i = e.data, d = [], u = this.stride;\n for (let c = 0; c < i.length; c += u) {\n if (i[c + A] <= t)\n continue;\n i[c + A] = t;\n const h = i[c], p = i[c + 1], m = e.within(i[c], i[c + 1], l), f = i[c + L];\n let g = f;\n for (const v of m) {\n const w = v * u;\n i[w + A] > t && (g += i[w + L]);\n }\n if (g > f && g >= a) {\n let v = h * f, w = p * f, _, E = -1;\n const b = ((c / u | 0) << 5) + (t + 1) + this.points.length;\n for (const x of m) {\n const M = x * u;\n if (i[M + A] <= t)\n continue;\n i[M + A] = t;\n const F = i[M + L];\n v += i[M] * F, w += i[M + 1] * F, i[M + oe] = b, o && (_ || (_ = this._map(i, c, !0), E = this.clusterProps.length, this.clusterProps.push(_)), o(_, this._map(i, M)));\n }\n i[c + oe] = b, d.push(v / g, w / g, 1 / 0, b, -1, g), o && d.push(E);\n } else {\n for (let v = 0; v < u; v++)\n d.push(i[c + v]);\n if (g > 1)\n for (const v of m) {\n const w = v * u;\n if (!(i[w + A] <= t)) {\n i[w + A] = t;\n for (let _ = 0; _ < u; _++)\n d.push(i[w + _]);\n }\n }\n }\n }\n return d;\n }\n // get index of the point from which the cluster originated\n _getOriginId(e) {\n return e - this.points.length >> 5;\n }\n // get zoom of the point from which the cluster originated\n _getOriginZoom(e) {\n return (e - this.points.length) % 32;\n }\n _map(e, t, s) {\n if (e[t + L] > 1) {\n const a = this.clusterProps[e[t + Ae]];\n return s ? Object.assign({}, a) : a;\n }\n const r = this.points[e[t + S]].properties, o = this.options.map(r);\n return s && o === r ? Object.assign({}, o) : o;\n }\n}\nfunction ke(n, e, t) {\n return {\n type: \"Feature\",\n id: n[e + S],\n properties: $e(n, e, t),\n geometry: {\n type: \"Point\",\n coordinates: [nt(n[e]), ot(n[e + 1])]\n }\n };\n}\nfunction $e(n, e, t) {\n const s = n[e + L], r = s >= 1e4 ? `${Math.round(s / 1e3)}k` : s >= 1e3 ? `${Math.round(s / 100) / 10}k` : s, o = n[e + Ae], a = o === -1 ? {} : Object.assign({}, t[o]);\n return Object.assign(a, {\n cluster: !0,\n cluster_id: n[e + S],\n point_count: s,\n point_count_abbreviated: r\n });\n}\nfunction W(n) {\n return n / 360 + 0.5;\n}\nfunction K(n) {\n const e = Math.sin(n * Math.PI / 180), t = 0.5 - 0.25 * Math.log((1 + e) / (1 - e)) / Math.PI;\n return t < 0 ? 0 : t > 1 ? 1 : t;\n}\nfunction nt(n) {\n return (n - 0.5) * 360;\n}\nfunction ot(n) {\n const e = (180 - n * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(e)) / Math.PI - 90;\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction ce(n, e) {\n var t = {};\n for (var s in n)\n Object.prototype.hasOwnProperty.call(n, s) && e.indexOf(s) < 0 && (t[s] = n[s]);\n if (n != null && typeof Object.getOwnPropertySymbols == \"function\")\n for (var r = 0, s = Object.getOwnPropertySymbols(n); r < s.length; r++)\n e.indexOf(s[r]) < 0 && Object.prototype.propertyIsEnumerable.call(n, s[r]) && (t[s[r]] = n[s[r]]);\n return t;\n}\nclass k {\n static isAdvancedMarkerAvailable(e) {\n return google.maps.marker && e.getMapCapabilities().isAdvancedMarkersAvailable === !0;\n }\n static isAdvancedMarker(e) {\n return google.maps.marker && e instanceof google.maps.marker.AdvancedMarkerElement;\n }\n static setMap(e, t) {\n this.isAdvancedMarker(e) ? e.map = t : e.setMap(t);\n }\n static getPosition(e) {\n if (this.isAdvancedMarker(e)) {\n if (e.position) {\n if (e.position instanceof google.maps.LatLng)\n return e.position;\n if (e.position.lat && e.position.lng)\n return new google.maps.LatLng(e.position.lat, e.position.lng);\n }\n return new google.maps.LatLng(null);\n }\n return e.getPosition();\n }\n static getVisible(e) {\n return this.isAdvancedMarker(e) ? !0 : e.getVisible();\n }\n}\nclass H {\n constructor({ markers: e, position: t }) {\n this.markers = e, t && (t instanceof google.maps.LatLng ? this._position = t : this._position = new google.maps.LatLng(t));\n }\n get bounds() {\n if (this.markers.length === 0 && !this._position)\n return;\n const e = new google.maps.LatLngBounds(this._position, this._position);\n for (const t of this.markers)\n e.extend(k.getPosition(t));\n return e;\n }\n get position() {\n return this._position || this.bounds.getCenter();\n }\n /**\n * Get the count of **visible** markers.\n */\n get count() {\n return this.markers.filter((e) => k.getVisible(e)).length;\n }\n /**\n * Add a marker to the cluster.\n */\n push(e) {\n this.markers.push(e);\n }\n /**\n * Cleanup references and remove marker from map.\n */\n delete() {\n this.marker && (k.setMap(this.marker, null), this.marker = void 0), this.markers.length = 0;\n }\n}\nconst it = (n, e, t, s) => {\n const r = Re(n.getBounds(), e, s);\n return t.filter((o) => r.contains(k.getPosition(o)));\n}, Re = (n, e, t) => {\n const { northEast: s, southWest: r } = at(n, e), o = lt({ northEast: s, southWest: r }, t);\n return ct(o, e);\n}, Ce = (n, e, t) => {\n const s = Re(n, e, t), r = s.getNorthEast(), o = s.getSouthWest();\n return [o.lng(), o.lat(), r.lng(), r.lat()];\n}, at = (n, e) => ({\n northEast: e.fromLatLngToDivPixel(n.getNorthEast()),\n southWest: e.fromLatLngToDivPixel(n.getSouthWest())\n}), lt = ({ northEast: n, southWest: e }, t) => (n.x += t, n.y -= t, e.x -= t, e.y += t, { northEast: n, southWest: e }), ct = ({ northEast: n, southWest: e }, t) => {\n const s = t.fromDivPixelToLatLng(e), r = t.fromDivPixelToLatLng(n);\n return new google.maps.LatLngBounds(s, r);\n};\nclass je {\n constructor({ maxZoom: e = 16 }) {\n this.maxZoom = e;\n }\n /**\n * Helper function to bypass clustering based upon some map state such as\n * zoom, number of markers, etc.\n *\n * ```typescript\n * cluster({markers, map}: AlgorithmInput): Cluster[] {\n * if (shouldBypassClustering(map)) {\n * return this.noop({markers})\n * }\n * }\n * ```\n */\n noop({ markers: e }) {\n return dt(e);\n }\n}\nclass ut extends je {\n constructor(e) {\n var { viewportPadding: t = 60 } = e, s = ce(e, [\"viewportPadding\"]);\n super(s), this.viewportPadding = 60, this.viewportPadding = t;\n }\n calculate({ markers: e, map: t, mapCanvasProjection: s }) {\n return t.getZoom() >= this.maxZoom ? {\n clusters: this.noop({\n markers: e\n }),\n changed: !1\n } : {\n clusters: this.cluster({\n markers: it(t, s, e, this.viewportPadding),\n map: t,\n mapCanvasProjection: s\n })\n };\n }\n}\nconst dt = (n) => n.map((t) => new H({\n position: k.getPosition(t),\n markers: [t]\n}));\nclass ht extends je {\n constructor(e) {\n var { maxZoom: t, radius: s = 60 } = e, r = ce(e, [\"maxZoom\", \"radius\"]);\n super({ maxZoom: t }), this.state = { zoom: -1 }, this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, r));\n }\n calculate(e) {\n let t = !1;\n const s = { zoom: e.map.getZoom() };\n if (!$(e.markers, this.markers)) {\n t = !0, this.markers = [...e.markers];\n const r = this.markers.map((o) => {\n const a = k.getPosition(o);\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [a.lng(), a.lat()]\n },\n properties: { marker: o }\n };\n });\n this.superCluster.load(r);\n }\n return t || (this.state.zoom <= this.maxZoom || s.zoom <= this.maxZoom) && (t = !$(this.state, s)), this.state = s, t && (this.clusters = this.cluster(e)), { clusters: this.clusters, changed: t };\n }\n cluster({ map: e }) {\n return this.superCluster.getClusters([-180, -90, 180, 90], Math.round(e.getZoom())).map((t) => this.transformCluster(t));\n }\n transformCluster({ geometry: { coordinates: [e, t] }, properties: s }) {\n if (s.cluster)\n return new H({\n markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((o) => o.properties.marker),\n position: { lat: t, lng: e }\n });\n const r = s.marker;\n return new H({\n markers: [r],\n position: k.getPosition(r)\n });\n }\n}\nclass pt extends ut {\n constructor(e) {\n var { maxZoom: t, radius: s = 60, viewportPadding: r = 60 } = e, o = ce(e, [\"maxZoom\", \"radius\", \"viewportPadding\"]);\n super({ maxZoom: t, viewportPadding: r }), this.superCluster = new Te(Object.assign({ maxZoom: this.maxZoom, radius: s }, o)), this.state = { zoom: -1, view: [0, 0, 0, 0] };\n }\n calculate(e) {\n const t = {\n zoom: Math.round(e.map.getZoom()),\n view: Ce(e.map.getBounds(), e.mapCanvasProjection, this.viewportPadding)\n };\n let s = !$(this.state, t);\n if (!$(e.markers, this.markers)) {\n s = !0, this.markers = [...e.markers];\n const r = this.markers.map((o) => {\n const a = k.getPosition(o);\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [a.lng(), a.lat()]\n },\n properties: { marker: o }\n };\n });\n this.superCluster.load(r);\n }\n return s && (this.clusters = this.cluster(e), this.state = t), { clusters: this.clusters, changed: s };\n }\n cluster({ map: e, mapCanvasProjection: t }) {\n const s = {\n zoom: Math.round(e.getZoom()),\n view: Ce(e.getBounds(), t, this.viewportPadding)\n };\n return this.superCluster.getClusters(s.view, s.zoom).map((r) => this.transformCluster(r));\n }\n transformCluster({ geometry: { coordinates: [e, t] }, properties: s }) {\n if (s.cluster)\n return new H({\n markers: this.superCluster.getLeaves(s.cluster_id, 1 / 0).map((o) => o.properties.marker),\n position: { lat: t, lng: e }\n });\n const r = s.marker;\n return new H({\n markers: [r],\n position: k.getPosition(r)\n });\n }\n}\nclass ft {\n constructor(e, t) {\n this.markers = { sum: e.length };\n const s = t.map((o) => o.count), r = s.reduce((o, a) => o + a, 0);\n this.clusters = {\n count: t.length,\n markers: {\n mean: r / t.length,\n sum: r,\n min: Math.min(...s),\n max: Math.max(...s)\n }\n };\n }\n}\nclass mt {\n /**\n * The default render function for the library used by {@link MarkerClusterer}.\n *\n * Currently set to use the following:\n *\n * ```typescript\n * // change color if this cluster has more markers than the mean cluster\n * const color =\n * count > Math.max(10, stats.clusters.markers.mean)\n * ? \"#ff0000\"\n * : \"#0000ff\";\n *\n * // create svg url with fill color\n * const svg = window.btoa(`\n * <svg fill=\"${color}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\">\n * <circle cx=\"120\" cy=\"120\" opacity=\".6\" r=\"70\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".3\" r=\"90\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".2\" r=\"110\" />\n * <circle cx=\"120\" cy=\"120\" opacity=\".1\" r=\"130\" />\n * </svg>`);\n *\n * // create marker using svg icon\n * return new google.maps.Marker({\n * position,\n * icon: {\n * url: `data:image/svg+xml;base64,${svg}`,\n * scaledSize: new google.maps.Size(45, 45),\n * },\n * label: {\n * text: String(count),\n * color: \"rgba(255,255,255,0.9)\",\n * fontSize: \"12px\",\n * },\n * // adjust zIndex to be above other markers\n * zIndex: 1000 + count,\n * });\n * ```\n */\n render({ count: e, position: t }, s, r) {\n const a = `<svg fill=\"${e > Math.max(10, s.clusters.markers.mean) ? \"#ff0000\" : \"#0000ff\"}\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 240 240\" width=\"50\" height=\"50\">\n<circle cx=\"120\" cy=\"120\" opacity=\".6\" r=\"70\" />\n<circle cx=\"120\" cy=\"120\" opacity=\".3\" r=\"90\" />\n<circle cx=\"120\" cy=\"120\" opacity=\".2\" r=\"110\" />\n<text x=\"50%\" y=\"50%\" style=\"fill:#fff\" text-anchor=\"middle\" font-size=\"50\" dominant-baseline=\"middle\" font-family=\"roboto,arial,sans-serif\">${e}</text>\n</svg>`, l = `Cluster of ${e} markers`, i = Number(google.maps.Marker.MAX_ZINDEX) + e;\n if (k.isAdvancedMarkerAvailable(r)) {\n const u = document.createElement(\"div\");\n u.innerHTML = a;\n const c = u.firstElementChild;\n c.setAttribute(\"transform\", \"translate(0 25)\");\n const h = {\n map: r,\n position: t,\n zIndex: i,\n title: l,\n content: c\n };\n return new google.maps.marker.AdvancedMarkerElement(h);\n }\n const d = {\n position: t,\n zIndex: i,\n title: l,\n icon: {\n url: `data:image/svg+xml;base64,${btoa(a)}`,\n anchor: new google.maps.Point(25, 25)\n }\n };\n return new google.maps.Marker(d);\n }\n}\nfunction gt(n, e) {\n for (let t in e.prototype)\n n.prototype[t] = e.prototype[t];\n}\nclass ue {\n constructor() {\n gt(ue, google.maps.OverlayView);\n }\n}\nvar j;\n(function(n) {\n n.CLUSTERING_BEGIN = \"clusteringbegin\", n.CLUSTERING_END = \"clusteringend\", n.CLUSTER_CLICK = \"click\";\n})(j || (j = {}));\nconst vt = (n, e, t) => {\n t.fitBounds(e.bounds);\n};\nclass yt extends ue {\n constructor({ map: e, markers: t = [], algorithmOptions: s = {}, algorithm: r = new ht(s), renderer: o = new mt(), onClusterClick: a = vt }) {\n super(), this.markers = [...t], this.clusters = [], this.algorithm = r, this.renderer = o, this.onClusterClick = a, e && this.setMap(e);\n }\n addMarker(e, t) {\n this.markers.includes(e) || (this.markers.push(e), t || this.render());\n }\n addMarkers(e, t) {\n e.forEach((s) => {\n this.addMarker(s, !0);\n }), t || this.render();\n }\n removeMarker(e, t) {\n const s = this.markers.indexOf(e);\n return s === -1 ? !1 : (k.setMap(e, null), this.markers.splice(s, 1), t || this.render(), !0);\n }\n removeMarkers(e, t) {\n let s = !1;\n return e.forEach((r) => {\n s = this.removeMarker(r, !0) || s;\n }), s && !t && this.render(), s;\n }\n clearMarkers(e) {\n this.markers.length = 0, e || this.render();\n }\n /**\n * Recalculates and draws all the marker clusters.\n */\n render() {\n const e = this.getMap();\n if (e instanceof google.maps.Map && e.getProjection()) {\n google.maps.event.trigger(this, j.CLUSTERING_BEGIN, this);\n const { clusters: t, changed: s } = this.algorithm.calculate({\n markers: this.markers,\n map: e,\n mapCanvasProjection: this.getProjection()\n });\n if (s || s == null) {\n const r = /* @__PURE__ */ new Set();\n for (const a of t)\n a.markers.length == 1 && r.add(a.markers[0]);\n const o = [];\n for (const a of this.clusters)\n a.marker != null && (a.markers.length == 1 ? r.has(a.marker) || k.setMap(a.marker, null) : o.push(a.marker));\n this.clusters = t, this.renderClusters(), requestAnimationFrame(() => o.forEach((a) => k.setMap(a, null)));\n }\n google.maps.event.trigger(this, j.CLUSTERING_END, this);\n }\n }\n onAdd() {\n this.idleListener = this.getMap().addListener(\"idle\", this.render.bind(this)), this.render();\n }\n onRemove() {\n google.maps.event.removeListener(this.idleListener), this.reset();\n }\n reset() {\n this.markers.forEach((e) => k.setMap(e, null)), this.clusters.forEach((e) => e.delete()), this.clusters = [];\n }\n renderClusters() {\n const e = new ft(this.markers, this.clusters), t = this.getMap();\n this.clusters.forEach((s) => {\n s.markers.length === 1 ? s.marker = s.markers[0] : (s.marker = this.renderer.render(s, e, t), s.markers.forEach((r) => k.setMap(r, null)), this.onClusterClick && s.marker.addListener(\n \"click\",\n /* istanbul ignore next */\n (r) => {\n google.maps.event.trigger(this, j.CLUSTER_CLICK, s), this.onClusterClick(r, s, t);\n }\n )), k.setMap(s.marker, t);\n });\n }\n}\nconst be = Object.values(j), Tt = P({\n name: \"MarkerCluster\",\n props: {\n options: {\n type: Object,\n default: () => ({})\n }\n },\n emits: be,\n setup(n, { emit: e, expose: t, slots: s }) {\n const r = y(), o = C(N, y()), a = C(U, y());\n return G(Le, r), O(\n o,\n () => {\n o.value && (r.value = I(\n new yt({\n map: o.value,\n // Better perf than the default `SuperClusterAlgorithm`. See:\n // https://github.com/googlemaps/js-markerclusterer/pull/640\n algorithm: new pt(n.options.algorithmOptions ?? {}),\n ...n.options\n })\n ), be.forEach((l) => {\n var i;\n (i = r.value) == null || i.addListener(l, (d) => e(l, d));\n }));\n },\n {\n immediate: !0\n }\n ), B(() => {\n var l;\n r.value && ((l = a.value) == null || l.event.clearInstanceListeners(r.value), r.value.clearMarkers(), r.value.setMap(null));\n }), t({ markerCluster: r }), () => {\n var l;\n return (l = s.default) == null ? void 0 : l.call(s);\n };\n }\n}), wt = P({\n inheritAttrs: !1,\n props: {\n options: {\n type: Object,\n required: !0\n }\n },\n setup(n, { slots: e, emit: t, expose: s }) {\n const r = y(), o = J(() => {\n var i;\n return (i = e.default) == null ? void 0 : i.call(e).some((d) => d.type !== Ee);\n }), a = J(() => ({\n ...n.options,\n element: r.value\n })), l = D(ee, [], a, t);\n return s({\n customMarker: l\n }), { customMarkerRef: r, customMarker: l, hasSlotContent: o };\n }\n});\nconst _t = {\n key: 0,\n class: \"custom-marker-wrapper\"\n};\nfunction kt(n, e, t, s, r, o) {\n return n.hasSlotContent ? (Y(), X(\"div\", _t, [\n ae(\"div\", Pe({\n ref: \"customMarkerRef\",\n style: { cursor: n.$attrs.onClick ? \"pointer\" : void 0 }\n }, n.$attrs), [\n Q(n.$slots, \"default\", {}, void 0, !0)\n ], 16)\n ])) : Oe(\"\", !0);\n}\nconst $t = /* @__PURE__ */ te(wt, [[\"render\", kt], [\"__scopeId\", \"data-v-2d2d343a\"]]), Rt = P({\n name: \"HeatmapLayer\",\n props: {\n options: {\n type: Object,\n default: () => ({})\n }\n },\n setup(n) {\n const e = y(), t = C(N, y()), s = C(U, y());\n return O(\n [t, () => n.options],\n ([r, o], [a, l]) => {\n var d;\n const i = !$(o, l) || t.value !== a;\n if (t.value && s.value && i) {\n const u = structuredClone(o);\n if (u.data && !(u.data instanceof s.value.MVCArray)) {\n const c = s.value.LatLng;\n u.data = (d = u.data) == null ? void 0 : d.map((h) => h instanceof c || \"location\" in h && (h.location instanceof c || h.location === null) ? h : \"location\" in h ? { ...h, location: new c(h.location) } : new c(h));\n }\n e.value ? e.value.setOptions(u) : e.value = I(\n new s.value.visualization.HeatmapLayer({\n ...u,\n map: t.value\n })\n );\n }\n },\n { immediate: !0 }\n ), B(() => {\n e.value && e.value.setMap(null);\n }), { heatmapLayer: e };\n },\n render: () => null\n});\nexport {\n St as Circle,\n It as CustomControl,\n $t as CustomMarker,\n Et as GoogleMap,\n Rt as HeatmapLayer,\n At as InfoWindow,\n Pt as Marker,\n Tt as MarkerCluster,\n xt as Polygon,\n Ot as Polyline,\n Lt as Rectangle\n};\n","<script setup>\nimport { GoogleMap, Polygon, Marker } from 'vue3-google-map';\n</script>\n<template>\n <GoogleMap :api-key=\"API_KEY\" style=\"width: 100%; height: 24rem\" :center=\"center\" :zoom=\"12\">\n <Polygon :options=\"option\" v-for=\"option, ix in areas\" :key=\"ix\" />\n <Marker :options=\"option\" v-for=\"option, ix in markers\" :key=\"ix\" />\n </GoogleMap>\n</template>\n<script>\n\nexport default {\n props: ['polygons'],\n data: () => {\n return {\n API_KEY: \"AIzaSyBdgVNOobU8bKhlSr7aHQUYA-0fyD_13uE\"\n }\n },\n computed: {\n areas() {\n return this.polygons.filter(p => Array.isArray(p[0]))\n .map(polygon => ({\n paths: this.convertPolygons(polygon),\n strokeColor: '#FF0000',\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: '#FF0000',\n fillOpacity: 0.35,\n }))\n },\n markers () {\n return this.polygons.filter(p => !Array.isArray(p[0]))\n .map(point => {\n const [lat, lng] = point\n const center = { lat, lng }\n return { position: center }\n })\n },\n center() {\n const { markers } = this\n if (markers.length) {\n return markers[0].position\n }\n const firstPolygon = this.convertPolygons(this.polygons[0])\n return this.findGeographicCenter(firstPolygon)\n },\n },\n methods: {\n convertPolygons(polygon) {\n return polygon.map(item => {\n return { lat: item[0], lng: item[1] };\n });\n },\n\n toRadians(degrees) {\n return degrees * (Math.PI / 180);\n },\n\n toDegrees(radians) {\n return radians * (180 / Math.PI);\n },\n\n findGeographicCenter(coords) {\n let x = 0;\n let y = 0;\n let z = 0;\n\n coords.forEach(coord => {\n const lat = this.toRadians(coord.lat);\n const lng = this.toRadians(coord.lng);\n\n x += Math.cos(lat) * Math.cos(lng);\n y += Math.cos(lat) * Math.sin(lng);\n z += Math.sin(lat);\n });\n\n const total = coords.length;\n x /= total;\n y /= total;\n z /= total;\n\n const lng = Math.atan2(y, x);\n const hyp = Math.sqrt(x * x + y * y);\n const lat = Math.atan2(z, hyp);\n\n return { lat: this.toDegrees(lat), lng: this.toDegrees(lng) };\n }\n }\n}\n</script>\n","<template>\n<div class=\"relative\">\n <div class=\"flex flex-col gap-4 h-full ml-2 mt-2 p-2\">\n <div class=\"sm:flex sm:items-center sm:justify-between\">\n <div class=\"w-full\">\n <div class=\"flex items-center gap-x-3 justify-between w-full\">\n <div class=\"text-3xl lg:text-4xl font-bold grow\">Places Overview</div>\n </div>\n <p class=\"mt-1 text-sm\">Check the list of places. Use the filter to find specific places.</p>\n </div>\n </div>\n <div class=\"flex flex-col lg:flex-row justify-between gap-4\">\n <label class=\"input input-bordered input-xs lg:input-md flex items-center gap-2\">\n <input type=\"text\" class=\"grow\" placeholder=\"Search places\" v-model=\"query\" @keydown.enter.stop=\"fetchPlaces(0)\" />\n <button class=\"btn hidden lg:block btn-sm\" @click=\"fetchPlaces(0)\">\n Search\n </button>\n <div class=\"lg:hidden\" @click=\"fetchPlaces(0)\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n </div>\n </label>\n </div>\n <div class=\"flex gap-2 items-center text-xs lg:text-md\">\n <div class=\"click flex gap-2 p-1 bg-base-300/50 rounded-md\" v-if=\"lastSearch\" @click=\"resetSearch\">\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n {{ lastSearch }}\n </div>\n <div><span>Pages</span>:</div>\n <div class=\"w-1/3 overflow-auto flex gap-1\">\n <div :class=\"['badge click', page === ix-1 ? 'badge-neutral' :'badge-outline' ]\" v-for=\"ix in totalPages\" :key=\"ix\" \n @click=\"page = ix - 1\">\n {{ ix }}\n </div>\n </div>\n <div class=\"grow\"></div>\n <div class=\"badge badge-success text-white inline-flex gap-2\">{{ places?.length }} <span>results</span></div>\n </div>\n <div class=\"h-[60vh] overflow-auto\">\n <table class=\"z-20 relative min-w-full divide-y divide-base-200 text-xs lg:text-md\">\n <thead class=\"sticky -top-1 bg-base-200 z-20 shadow border-t border-base-300/50 rounded-md md:rounded-lg\">\n <tr class=\"sticky top-0 bg-base-200\">\n <th v-for=\"col in columns\" :key=\"col\" class=\"sticky top-0 py-3.5 px-4 text-sm font-normal text-left rtl:text-right text-gray-500 bg-base-200\">\n <div class=\"flex gap-2 click\">\n <span>{{ col.name }}</span>\n </div>\n </th>\n </tr>\n </thead>\n <tbody class=\"w-full divide-y divide-gray-200\">\n <tr class=\"click hover:bg-base-300/80 opacity-80 hover:opacity-100\" v-for=\"place in resultsPage\" :key=\"place.idZone\" @click=\"showPlaceDetails(place)\">\n <td class=\"px-2 py-2 whitespace-nowrap\">\n <span class=\"font-bold\">{{ place.idZone }}</span>\n </td>\n <td class=\"px-2 py-3 whitespace-nowrap\">{{ place.Zone }}</td>\n <td class=\"px-2 py-3 whitespace-nowrap\">{{ place.Destination }}</td>\n <td class=\"px-2 py-3 whitespace-nowrap\">{{ place.Country }}</td>\n <td class=\"px-2 py-3 whitespace-nowrap max-w-xs overflow-auto truncate text-ellipsis\">\n {{ place.georef }}\n </td>\n </tr>\n <tr v-if=\"!resultsPage?.length\">\n <td class=\"p-2 text-2xl\">\n No results\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- Modal for Google Maps -->\n <Modal class=\"lg:w-1/2 -m-2\" v-if=\"showModal\" @close=\"closeModal\">\n <div class=\"flex flex-col gap-2\">\n <h1 class=\"mb-2 text-lg inline-flex gap-1\">Locations in <span class=\"font-bold\">{{selectedPlace.Zone}}, {{ selectedPlace.Destination }} ({{ selectedPlace.Country }})</span> </h1>\n <div class=\"flex\"><span>Polygon</span>:</div>\n <textarea class=\"text-xs h-20 bg-base-300/40 p-2 rounded-md\" :value=\"JSON.stringify(selectedPlace.georef)\">\n </textarea>\n <GMap :polygons=\"selectedPlace.georef\" />\n </div>\n </Modal>\n</div>\n</template>\n\n<script>\nimport Modal from '../Modal.vue'\nimport GMap from './GMap.vue'\nexport default {\n data() {\n return {\n query: '',\n lastSearch: null,\n places: [],\n page: 0,\n pageSize: 15,\n showModal: false,\n selectedPlace: null\n }\n },\n components: {\n Modal,\n GMap\n },\n\n\n async created() {\n await this.fetchPlaces(0)\n },\n computed: {\n columns() {\n return [\n { name: 'ID', column: 'idZone' },\n { name: 'Zone', column: 'Zone' },\n { name: 'Destination', column: 'Destination' },\n { name: 'Country', column: 'Country' },\n { name: 'Polygon', column: 'georef' },\n ]\n },\n\n resultsPage() {\n const start = this.page * this.pageSize\n const end = (this.page + 1) * this.pageSize\n return this.places?.slice(start, end)\n },\n\n totalPages() {\n if (!this.places) {\n return 0\n }\n return Math.ceil(this.places.length / this.pageSize)\n },\n },\n methods: {\n resetSearch () {\n this.query = \"\"\n this.lastSearch = null\n this.fetchPlaces(0)\n },\n async fetchPlaces(pageIndex) {\n try {\n const { data } = await this.$storex.api.admin.search.places(this.query, pageIndex, 'zone')\n const parseGeo = (z) => {\n try {\n const geoRef = z.georef.split(\"#\").map(JSON.parse)\n return geoRef\n } catch (ex) {\n console.log(\"Error parsing georef\", ex, z, z.georef.split(\"#\")) \n }\n return []\n }\n this.places = data.zones?.map(z => ({\n ...z,\n georef: parseGeo(z) \n }))\n this.page = pageIndex\n this.lastSearch = this.query\n this.query = \"\"\n } catch (error) {\n console.error('Error fetching places:', error)\n }\n },\n prevPage() {\n if (this.page > 1) {\n this.fetchPlaces(this.page - 1)\n }\n },\n nextPage() {\n this.fetchPlaces(this.page + 1)\n },\n\n async showPlaceDetails(place) {\n this.selectedPlace = place\n this.showModal = true;\n },\n closeModal() {\n this.showModal = false;\n this.selectedPlace = null;\n }\n }\n}\n</script>","<script setup>\nimport moment from 'moment'\nimport Dashboard from './Dashboard.vue';\nimport Voucher from '../components/bookings/Voucher.vue';\n</script>\n\n<template lang=\"pug\">\nDashboard.p-2\n .flex.flex-col(v-if=\"voucher\")\n .flex.justify-between.bg-base-200.p-2.rounded-full.shadow.items-center\n .text-2xl.flex.items-center.gap-2 {{ voucher.booking_id }}\n .flex.justify-end.gap-4\n <label class=\"input input-bordered flex items-center gap-2\">\n <i class=\"fa-solid fa-envelope\"></i>\n <input type=\"text\" v-model=\"email\" class=\"grow\" placeholder=\"Email\" />\n .btn.btn-xs(@click=\"sendEmail\") Send\n </label>\n .btn.btn-error.text-white(@click=\"confirmCancel = true\" v-if=\"hoursToPickUp > 0\")\n span Cancel booking\n .grow.overflow-auto\n Voucher(:voucher=\"voucher\")\n Modal(class=\"lg:w-1/3\" v-if=\"confirmCancel\" @close=\"confirmCancel = false\")\n .text-2xl.font-bold Cancel booking {{ voucher.booking_id }} ?\n .badge.badge-info {{ voucher.status }}\n .flex.gap-2.my-2\n .font-bold Pickup date: \n span {{ moment(voucher.pickup_datetime).format(\"MMM Do YY, HH:mm\") }}\n .flex.flex-col\n .text-xl.underline Cancellation policy\n label(class=\"mb-1\")\n p.font-bold Up to 48h before travel time, 100% refund.\n p For shorter time, please contact our operations teams to check if it still possible.\n .flex.justify-center.p-2\n div(v-if=\"canCancel\")\n .btn.btn-error.text-white(v-if=\"canCancel\" @click=\"cancelBooking\")\n span Yes, cancel\n .loading.loading-spinner.loading-xs(v-if=\"confirmCancel === 'cancelling'\")\n .text-center(v-else)\n .alert.alert-warning.font-bold\n .text-xs Sorry, pick up time will be in {{ hoursToPickUp }}h. Contact us to cancel.\n\n</template>\n<script>\nexport default {\n data () {\n return {\n voucher: null,\n confirmCancel: null,\n email: null\n }\n },\n created () {\n this.loadBooking()\n },\n computed: {\n bookingId () {\n return this.$route.params.bookingId\n },\n canCancel () {\n return this.hoursToPickUp >= 48\n },\n hoursToPickUp () {\n return moment(this.voucher.pickup_datetime).diff(moment(), 'hours')\n },\n isValidEmail () {\n return !!/^[^@]+@[^\\.]+\\..+$/.exec(this.email)\n }\n },\n watch: {\n bookingId () {\n this.loadBooking()\n }\n },\n methods: {\n async loadBooking () {\n this.voucher = await this.$storex.bookings.loadBooking(this.bookingId)\n },\n async cancelBooking () {\n this.confirmCancel = 'cancelling'\n const id = this.voucher.booking_id\n await this.$storex.bookings.cancelBooking(id)\n this.confirmCancel = null\n this.loadBooking()\n this.$root.showNotification(`Booking ${id} cancelled`)\n },\n async sendEmail() {\n if (!this.isValidEmail) {\n this.$root.showNotification(\"Invalid email.\")\n return \n }\n await this.$storex.bookings.emailBooking({\n bookingId: this.voucher.booking_id,\n email: this.email\n })\n this.$root.showNotification(\"Message sent.\")\n this.email = null\n }\n }\n}\n</script>","<script setup>\nimport Autocomplete from '../Autocomplete.vue';\n</script>\n<template>\n <div class=\"flex flex-col gap-4 h-full lg:px-4\">\n <div class=\"flex gap-2 items-center\">\n <label class=\"input input-md input-bordered flex items-center gap-2 w-2/3\">\n <input type=\"text\" class=\"grow\" :placeholder=\"`${users?.length} users. Search...`\" v-model=\"filter\" />\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" class=\"w-4 h-4 opacity-70\"><path fill-rule=\"evenodd\" d=\"M9.965 11.026a5 5 0 1 1 1.06-1.06l2.755 2.754a.75.75 0 1 1-1.06 1.06l-2.755-2.754ZM10.5 7a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Z\" clip-rule=\"evenodd\" /></svg>\n </label>\n <div class=\"grow\"></div>\n <button class=\"btn btn-md btn-primary\" @click=\"userDetail = { role: 'user', password: 'ChangeMe!Pas123' }\">\n <i class=\"fa-solid fa-plus\"></i>\n <span class=\"hidden lg:block\">Add new user</span>\n </button>\n </div>\n <div class=\"overflow-x-auto grow w-full relative overflow-auto\">\n <div class=\"absolute top-0 left-0 right-0 bottom-0 border overflow-auto border-base-300/50 rounded-md md:rounded-lg grow\">\n <table class=\"relative min-w-full divide-y divide-base-200 text-xs lg:text-md\">\n <thead class=\"sticky -top-1 bg-base-200 z-10 shadow border-t border-base-300/50 rounded-md md:rounded-lg\">\n <tr class=\"sticky top-0 bg-base-200\">\n <th class=\"sticky top-0 py-3.5 px-4 text-left bg-base-200\">\n User\n </th>\n <th class=\"sticky top-0 py-3.5 text-left bg-base-200\">\n Company\n </th>\n </tr>\n </thead>\n <tbody>\n <tr class=\"click hover:bg-base-200 m-2\" v-for=\"user in filteredUsers\" :key=\"user.idUser\"\n @click=\"userDetail = { ...user }\"\n >\n <td class=\"p-2 flex gap-2\">\n <div class=\"avatar placeholder\">\n <div :class=\"['rounded-full w-10 h-10', colorFromRole(user.role)]\">\n <span>{{ user.role.toUpperCase().slice(0, 2) }}</span>\n </div>\n </div>\n <div class=\"flex items-center gap-3\">\n <div>\n <div class=\"font-bold\">{{ user.name || '-no-name-' }}</div>\n <div class=\"text-sm opacity-50\">{{ user.lastName || '-no-last-name' }}</div>\n <div :class=\"['badge', colorFromRole(user.role)]\">{{ user.role }}</div>\n </div>\n </div>\n </td>\n <td>\n <div v-if=\"user.agency\">\n <div class=\"font-bold\">\n Agency: {{ user.agency.commercialName }}\n </div>\n <div class=\"flex flex-col gap-2\">\n {{ user.agency.email }}\n <span class=\"ml-2 font-medium\">\n {{ user.agency.fiscalName }}\n </span> \n </div>\n </div>\n <div v-if=\"user.provider\">\n <div class=\"font-bold\">\n Provider: {{ user.provider.providerName }}\n </div>\n <div class=\"flex flex-col gap-2\">\n {{ user.provider.email }}\n <span class=\"ml-2 font-medium\">\n {{ user.provider.description }}\n </span> \n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n <Modal class=\"w-full lg:w-2/3 2xl:w-1/2\" v-if=\"userDetail\"> \n <div class=\"h-full flex flex-col gap-2 text-xs p-4 lg:p-1\">\n <div class=\"text-xl\">User details</div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n Name\n </div>\n <input type=\"text\" v-model=\"userDetail.name\" class=\"input input-bordered input-sm grow\" />\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n Last name\n </div>\n <input type=\"text\" v-model=\"userDetail.lastName\" class=\"input input-bordered input-sm grow\" />\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n Email *\n </div>\n <input type=\"text\" v-model=\"userDetail.email\" class=\"input input-bordered input-sm grow\" />\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n Phone\n </div>\n <input type=\"text\" v-model=\"userDetail.phone\" class=\"input input-bordered input-sm grow\" />\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n Role\n </div>\n <select v-model=\"userDetail.role\" class=\"select select-sm select-bordered w-full max-w-xs\">\n <option disabled selected>Choose</option>\n <option :value=\"role.name\" v-for=\"role in roles\" :key=\"role\">\n {{ role.name }}\n </option>\n </select>\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n <span>Provider </span>*\n </div>\n <div class=\"gorw border rounded-full\">\n <Autocomplete class=\"input-sm -mt-1\"\n :value=\"userDetail.provider?.providerName\"\n placeholder=\"Search provider\"\n :search=\"searchProvider\"\n @selected=\"onSelectProvider\" \n />\n </div>\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n <span>Agency </span> *\n </div>\n <div class=\"gorw border rounded-full\">\n <Autocomplete class=\"input-sm -mt-1\"\n placeholder=\"Search agency\"\n :value=\"userDetail.agency?.commercialName\"\n :search=\"searchAgency\"\n @selected=\"onSelectAgency\" \n />\n </div>\n </div>\n <div class=\"flex mt-4 text-xl items-center\">\n Security\n </div>\n <div class=\"flex flex-col lg:flex-row\">\n <div class=\"w-1/3\">\n Password\n </div>\n <div>\n <input type=\"text\" v-model=\"userDetail.password\" class=\"input input-bordered input-sm grow\"\n placeholder=\"Set new password\"\n />\n </div>\n </div>\n <div class=\"lg:h-20\"></div>\n <div class=\"mt-4 flex gap-2 justify-end\">\n <button class=\"btn btn-sm btn-info text-white\" @click=\"saveUser(userDetail)\">\n Save\n </button>\n <button class=\"btn btn-sm btn-error text-white hidden\"\n @click=\"removeUser\"\n >\n <div v-if=\"confirmRemove\" @click=\"deleteUser(userDetail)\">Confirm disable user</div>\n <div v-else>Disable user</div>\n </button>\n <button class=\"btn btn-sm\" @click=\"cancelUserEdit\">\n Close\n </button>\n </div>\n </div>\n </Modal>\n\n </div>\n</template>\n<script>\nimport API from '../../api'\nconst COLORS = [\"slate\",\"gray\",\"zinc\",\"stone\",\"red\",\"orange\",\"amber\",\"yellow\",\"lime\",\"green\",\"emerald\",\"teal\",\"cyan\",\"sky\",\"blue\",\"indigo\",\"violet\",\"purple\",\"fuchsia\",\"pink\",\"rose\"]\nexport default {\n data() {\n return {\n users: null,\n filter: null,\n userDetail: null,\n roles: null,\n confirmRemove: false\n }\n },\n async created() {\n this.search()\n const { data: roles } = await API.admin.roles()\n this.roles = roles\n },\n computed: {\n filteredUsers () {\n const filter = this.filter?.toLowerCase()\n return this.users?.filter(u => !filter || filter.length < 3 ||\n u.searchIndex.indexOf(filter) !== -1\n )\n }\n },\n watch: {\n },\n methods: {\n colorFromRole (roleName) {\n const ix = this.roles?.findIndex(r => r.name === roleName) || 0\n const color = COLORS[ix].toLowerCase()\n return `bg-${color}-400 text-${color}-content`\n },\n async searchProvider (query) {\n const { data } = await API.admin.search.providers(query)\n return data\n },\n onSelectProvider (provider) {\n this.userDetail = {\n ...this.userDetail,\n provider\n }\n },\n async searchAgency (query) {\n const { data } = await API.admin.search.agencies(query)\n return data.map(a => ({ ...a, name: a.commercialName }))\n },\n onSelectAgency (agency) {\n this.userDetail = {\n ...this.userDetail,\n agency\n }\n },\n removeUser () {\n if (!this.confirmRemove) {\n this.confirmRemove = true\n }\n },\n cancelUserEdit () {\n this.userDetail = null\n this.confirmRemove = false\n },\n async saveUser (user) {\n await API.admin.users(user)\n this.cancelUserEdit()\n this.search()\n },\n async deleteUser(user) {\n user.active = false\n await API.admin.users(user)\n this.cancelUserEdit()\n this.search()\n },\n async search () {\n const { data } = await this.$storex.api.admin.users()\n this.users = data.map(u => ({\n ...u,\n searchIndex: [\n ...Object.values(u),\n ...Object.values(u.provider||{}),\n ...Object.values(u.agency||{}),\n ].map(v => `${v||\"\"}`.toLowerCase()).join(\"\")\n }))\n }\n }\n}\n</script>","<script setup>\nimport Dashboard from './Dashboard.vue';\nimport UserManagement from '../components/admin/UserManagement.vue'\n</script>\n<template>\n <Dashboard>\n <div class=\"flex flex-col gap-4 h-full max-h-full ml-1 mt-2\">\n <div class=\"sm:flex sm:items-center sm:justify-between\">\n <div>\n <div class=\"flex items-center gap-x-3\">\n <h2 class=\"text-3xl lg:text-4xl font-bold \">\n Admin\n </h2>\n </div>\n <p class=\"mt-1 text-sm\">\n Management section\n </p>\n </div>\n </div>\n <div class=\"flex flex-col lg:flex-row gap-2 grow\">\n <div class=\"flex lg:flex-col gap-2 lg:bg-base-200 lg:h-full w-1/5 lg:p-4\">\n <div class=\"flex flex-col lg:flex-row gap-2 items-center p-2 click hover:underline\" @click.stop=\"manage('users')\">\n <i class=\"fa-solid fa-users\"></i>\n <span class=\"\">Users</span>\n </div>\n </div>\n <div class=\"grow h-full\">\n <UserManagement class=\"w-full h-full\" v-if=\"showUsers\" />\n </div>\n </div>\n </div>\n </Dashboard>\n</template>\n<script>\nexport default {\n data() {\n return {\n }\n },\n created() {\n },\n computed: {\n mode () {\n return this.$route.path.split(\"/\").reverse()[0]\n },\n showUsers () {\n return this.mode === 'users'\n }\n },\n watch: {\n },\n methods: {\n manage (module) {\n this.$router.push({ name: '', path: '/admin/' + module })\n }\n }\n}\n</script>","<template>\n <div class=\"\">\n <div class=\"flex flex-col lg:flex-row justify-between gap-6 p-6 text-xs lg:text-md w-full\">\n <div class=\"lg:w-40 flex flex-col shrink-0 gap-1 items-center\">\n <div class=\"badge badge-info text-white\">{{ vehicle.vehicle_class }} </div>\n <img class=\"w-32 rounded-md shadow mt-2\" :src=\"vehicle.vehicle_image_url\" v-if=\"vehicle.vehicle_image_url\" />\n <div v-else>\n <i :class=\"[vehicle.vehicle_icon, 'w-10 h-10']\"></i>\n </div>\n {{ vehicle.vehicle_type }}\n <div class=\"text-xs\">{{ vehicle.vehicle_description }}</div>\n </div>\n <div class=\"lg:w-96 flex flex-col justify-between\">\n <div class=\"text-2xl\">\n Vehicle details\n </div>\n <div class=\"flex flex-col gap-2 text-sm\">\n <div class=\"font-bold\">{{ vehicle.vehicle_description }}</div>\n <div class=\"flex gap-2 items-center\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Max. passenger</span>:\n <span class=\"font-bold\">{{ vehicle.max_passengers }}</span>\n </div>\n <div class=\"flex gap-2 items-center\">\n <i class=\"fa-solid fa-suitcase-rolling\"></i>\n <span>Max. luggage</span>:\n <span class=\"font-bold\">{{ vehicle.luggage_allowance }}</span>\n </div> \n <div class=\"font-bold\">{{ vehicle.child_seat_descriptor }} - {{ vehicle.child_seat_payment_method }}</div>\n </div>\n </div>\n <div class=\"flex flex-col justify-between\">\n <div class=\"text-2xl\">\n Route details\n </div>\n <div class=\"text-sm\">\n <table>\n <tr>\n <td><span>Wait time</span>:</td>\n <td class=\"w-20\"></td>\n <td class=\"font-bold\">{{ vehicle.driver_wait_mins }} (mins.)</td>\n </tr>\n <tr>\n <td><span>Meet greet</span>:</td>\n <td class=\"w-20\"></td>\n <td class=\"font-bold\">\n <span class=\"text-success inline-flex gap-1 items-center\" v-if=\"vehicle.meet_greet\">\n <i class=\"fa-solid fa-circle-check\"></i>\n Meet greet\n </span>\n <span class=\"text-error inline-flex gap-1 items-center\" v-else>\n <i class=\"fa-solid fa-circle-xmark\"></i>\n No meet greet\n </span>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"grow\"></div>\n <div class=\"flex flex-col shrink-0 justify-between\">\n <div class=\"text-right\">\n <div class=\"text-2xl\">\n {{ vehicle.sale_price }}\n {{ vehicle.sale_currency }}\n </div>\n </div>\n <button class=\"btn btn-warning\" v-if=\"!viewOnly\" @click=\"$emit('book', vehicle)\">\n Book\n </button>\n </div>\n </div>\n <slot></slot>\n </div>\n</template>\n<script>\nexport default {\n props: ['vehicle', 'viewOnly']\n}\n</script>","<script setup>\nimport Autocomplete from '../Autocomplete.vue'\nimport SearchResult from './SearchResult.vue';\n</script>\n<template>\n <div class=\"flex flex-col gap-4 ml-2 mt-2 p-2 w-full lg:h-full\">\n <div class=\"sm:flex sm:items-center sm:justify-between\">\n <div>\n <div class=\"flex items-center gap-x-3\">\n <h2 class=\"text-3xl lg:text-4xl font-bold \">\n Search for transfers\n </h2>\n </div>\n <p class=\"mt-1 text-sm\">\n Search your transfer. Use the filter to refine your search.\n </p>\n </div>\n </div>\n <div class=\"flex flex-col lg:flex-row justify-between gap-4\">\n <div class=\"rounded-md bg-base-200 shadow p-2 lg:p-4 flex flex-col lg:flex-row gap-6 w-full\">\n \n <div class=\"flex flex-col gap-2 w-full\">\n <div class=\"text-xl grow\">\n Search your route <span class=\"badge badge-info text-white inline-block mx-1\">from</span> or <span class=\"badge badge-info text-white inline-block mx-1\">to</span> Airport\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"input input-bordered input-sm flex items-center gap-2\">\n <div :class=\"['tooltip flex gap-2 items-center',\n fromMapLink ? 'text-sky-500 click' : 'opacity-0']\" @click=\"openLink(fromMapLink)\"\n :data-tip=\"fromMapLink ? 'Open link':'Pick up'\"\n >\n <span v-if=\"isFromAirport\"><i class=\"fa-solid fa-plane\"></i></span>\n <span v-else><i class=\"fa-solid fa-map-location-dot\"></i></span>\n </div>\n <Autocomplete class=\"-mt-1 input-sm border-none bg-transparent\"\n :value=\"search.from?.name\"\n :placeholder=\"'Pick up place'\"\n :search=\"searchFromPlaces\"\n @selected=\"onSelectFrom\" \n />\n </div>\n <div class=\"input input-bordered input-sm flex items-center gap-2\">\n <div :class=\"['tooltip flex gap-2 items-center',\n toMapLink ? 'text-sky-500 click' : 'opacity-0']\" @click=\"openLink(toMapLink)\"\n :data-tip=\"toMapLink ? 'Open link':'Destination'\"\n >\n <span v-if=\"isToAirport\"><i class=\"fa-solid fa-plane\"></i></span>\n <span v-else><i class=\"fa-solid fa-map-location-dot\"></i></span>\n </div>\n <Autocomplete class=\"-mt-1 input-sm border-none bg-transparent\"\n :value=\"search.to?.name\"\n :placeholder=\"'Destination'\"\n :search=\"searchToPlaces\"\n @selected=\"onSelectTo\" \n />\n </div>\n </div>\n <span class=\"text-xs text-error\" v-if=\"!isFromAirport && !isToAirport\">\n No airport selected\n </span>\n </div>\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-xl grow\">Time</div>\n <div class=\"input input-bordered input-sm flex items-center gap-2\">\n <i class=\"fa-solid fa-calendar-days\"></i>\n <input type=\"date\" v-model=\"search.date\" />\n </div>\n <div class=\"input input-bordered input-sm flex items-center gap-2\">\n <i class=\"fa-regular fa-clock\"></i>\n <input type=\"time\" v-model=\"search.time\" />\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-xl grow\">Passengers</div>\n <div class=\"flex gap-2\">\n \n <div class=\"flex gap-2 items-center justify-between\">\n <div class=\"flex gap-2 text-nowrap items-center text-xs\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Adults</span> (12+)\n </div>\n <select v-model=\"search.adults\" class=\"select select-bordered select-xs\">\n <option v-for=\"i in 10\" :key=\"i\" :value=\"i\">{{ i }}</option>\n </select>\n </div>\n <div class=\"flex gap-2 items-center justify-between\">\n <div class=\"flex gap-2 text-nowrap items-center text-xs\">\n <i class=\"fa-solid fa-child\"></i>\n <span>Children</span> (3-11)\n </div>\n <select v-model=\"search.children\" class=\"select select-bordered select-xs\">\n <option value=\"0\">0</option>\n <option v-for=\"i in 10\" :key=\"i\" :value=\"i\">{{ i }}</option>\n </select>\n </div>\n </div>\n <div class=\"flex gap-2\">\n <div class=\"flex gap-2 items-center justify-between\">\n <div class=\"flex gap-2 text-nowrap items-center text-xs\">\n <i class=\"fa-solid fa-baby\"></i>\n <span>Babies</span> (0-2)\n </div>\n <select v-model=\"search.infants\" class=\"select select-bordered select-xs\">\n <option value=\"0\">0</option>\n <option v-for=\"i in 5\" :key=\"i\" :value=\"i\">{{ i }}</option>\n </select>\n </div>\n <div class=\"flex gap-2 items-center justify-between\">\n <div class=\"flex gap-2 text-nowrap items-center text-xs\">\n <i class=\"fa-solid fa-couch\"></i>\n Booster seats\n </div>\n <select v-model=\"search.booster_seats\" class=\"select select-bordered select-xs\">\n <option value=\"0\">0</option>\n <option v-for=\"i in 5\" :key=\"i\" :value=\"i\">{{ i }}</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-xl grow\">Settings</div>\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-xs\">Currency</div>\n <select v-model=\"search.sale_currency\" class=\"select select-bordered select-xs\">\n <option v-for=\"currency in currencies\" :key=\"currency.code\" :value=\"currency.code\">{{ currency.dispName }}</option>\n </select>\n </div>\n </div>\n <div class=\"flex flex-col justify-end\">\n <button class=\"btn btn-primary\" @click=\"doSearch\" :disabled=\"!canSearch\">\n Search\n </button>\n </div>\n </div>\n </div>\n <div class=\"text-xl\" v-if=\"results\">{{ vehicles?.length || 0 }} Results found</div>\n <div class=\"flex gap-4\">\n <div class=\"badge badge-primary badge-outline gap-2\">\n <i class=\"fa-solid fa-coins\"></i> 100-200\n </div>\n <div class=\"badge badge-outline gap-2\">\n <i class=\"fa-solid fa-coins\"></i> 200-500\n </div>\n <div class=\"badge badge-outline gap-2\">\n <i class=\"fa-solid fa-coins\"></i> 500+\n </div>\n </div>\n <div class=\"flex flex-col grow justify-center items-center\" v-if=\"searching\">\n <img class=\"w-60\" src=\"https://i.pinimg.com/originals/2b/1b/0f/2b1b0f8a386c5ae1983b3993c3f84eee.gif\" />\n <div class=\"text-xl animate-pulse\">Searching...</div>\n </div>\n <div class=\"flex flex-col gap-2 lg:grow lg:overflow-auto\">\n <SearchResult class=\"flex flex-col lg:flex-row justify-between gap-6 p-6 rounded-xl shadow border bg-base-200 mr-2 mb-2 text-xs lg:text-md\"\n v-for=\"vehicle, ix in vehicles\" :key=\"ix\"\n :vehicle=\"vehicle\"\n @book=\"book\"\n />\n </div>\n </div>\n</template>\n<script>\nimport API from '../../api'\nexport default {\n data () {\n return {\n currencies: null,\n search: {\n \"from\": \"\",\n \"to\": \"\",\n \"date\": null,\n \"time\": null, \n \"adults\": 1,\n \"children\": 0,\n \"infants\": 0,\n \"baby_seats\": 0,\n \"booster_seats\": 0,\n \"sale_currency\": \"EUR\"\n },\n results: null,\n searching: false,\n }\n },\n async created () {\n const { data: currencies } = await API.admin.currencies()\n this.currencies = currencies.map(c => ({\n ...c,\n code: c.dispName.split(\" \")[0]\n }))\n const lastSearch = localStorage.getItem(\"lastTransferSearch\")\n if (lastSearch) {\n this.search = JSON.parse(lastSearch)\n }\n },\n computed: {\n canSearch () {\n return !!(this.search.from && \n this.search.to && \n this.search.adults && \n this.search.date &&\n this.search.time) &&\n (this.isFromAirport || this.isToAirport)\n },\n vehicles () {\n return this.results?.vehicles \n },\n fromMapLink () {\n if (!this.search?.from) {\n return null\n }\n const { name, location } = this.search.from\n return `https://maps.google.com/?ll=${location.latitude},${location.longitude}&q=${name}`\n },\n toMapLink () {\n if (!this.search?.to) {\n return null\n }\n const { name, location } = this.search.to\n return `https://maps.google.com/?ll=${location.latitude},${location.longitude}&q=${name}`\n },\n isFromAirport() {\n return this.search?.from?.destinationType === \"airport\"\n },\n isToAirport () {\n return this.search?.to?.destinationType === \"airport\"\n }\n },\n methods: {\n getIcon (destinationType) {\n return destinationType === 'airport' ? 'fa-solid fa-plane' : destinationType === 'hotel' ? 'fa-solid fa-hotel' : 'fa-solid fa-map-marker-alt'\n },\n async searchFromPlaces (query) {\n const res = await this.searchPlaces(query)\n return res\n },\n async searchToPlaces (query) {\n const res = await this.searchPlaces(query)\n return res\n },\n async searchPlaces (query) {\n if (query.length >= 3) {\n const { data: { zones, places } } = await API.admin.search.places(query, 0, 'zone')\n if (zones) {\n return zones.map(zone => {\n let destinationType = 'other'\n if (zone.iata) {\n destinationType = 'airport'\n }\n return {\n ...zone,\n name: `${zone.Zone}, ${zone.Destination} (${zone.Country})`,\n destinationType,\n googleMapsUri: `https://maps.google.com/?q=${zone.georef.substring(1,zone.georef.length-1)} (${zone.name})`,\n icon: this.getIcon(destinationType)\n }\n })\n }\n return places?.map(c => {\n const destinationType = c.primaryType || c.subtype\n return {\n destinationType,\n ...c,\n name: `${c.displayName.text} - ${c.formattedAddress}`,\n icon: this.getIcon(destinationType)\n }\n })\n }\n },\n getDestination (selection) {\n let { idZone, iata, name, location, georef, destinationType } = selection // Use destinationType directly\n if (georef) {\n const [latitude, longitude] = JSON.parse(georef)\n location = { latitude, longitude }\n }\n return { idZone, name, iata, location, destinationType }\n },\n onSelectFrom (selection) {\n this.search.from = this.getDestination(selection)\n },\n onSelectTo (selection) {\n this.search.to = this.getDestination(selection)\n },\n openLink(link) {\n if (link) {\n window.open(link, '_blank')\n }\n },\n pushSearchToLink () {\n const { searchQuery } = this.$storex.search.lastSearch\n this.$router.push({ query: searchQuery })\n },\n async doSearch () {\n this.searching = true\n this.results = null\n try {\n this.results = await this.$storex.search.search(this.search)\n this.pushSearchToLink()\n } finally {\n this.searching = false\n }\n },\n book (searchResult) {\n this.$router.push(\"/search/book?\" + searchResult.searchQuery)\n }\n }\n}\n</script>","<script setup>\nimport SearchResultVue from './SearchResult.vue'\nimport Autocomplete from '../Autocomplete.vue'\nimport Voucher from '../bookings/Voucher.vue'\n</script>\n<template lang=\"pug\">\n div.overflow-auto.h-full\n Modal(class=\"h-full lg:h-5/6 lg:w-2/3 overflow-hidden\" v-if=\"showVoucher\" @close=\"showVoucher = false\")\n .flex.flex-col.gap-1.overflow-hidden\n .text-2xl.mb-2.border-b.text-success.font-bold(v-if=\"newBooking\") Booking succeded\n .text-3xl.mb-2.border-b(v-else) Please review and continue\n .grow.overflow-auto.p-4\n Voucher(:voucher=\"voucherPreview\")\n .flex.flex-col.text-right.w-full.items-end.gap-2(v-if=\"!newBooking\")\n label(class=\"flex items-center mt-2\")\n input(type=\"checkbox\" v-model=\"acceptTermsAndConds\" class=\"checkbox\")\n span(class=\"ml-2\") I accept the \n span.underline.click\n a(href=\"/termsandconds\" target=\"_blank\") terms and conditions.\n .flex.justify-end.gap-2\n button.btn.btn-error.text-white(@click=\"showVoucher = false\") Back\n button(type=\"button\" @click=\"handleBooking\" class=\"btn btn-success\"\n :class=\"{ 'loading': isBooking }\"\n :disabled=\"!acceptTermsAndConds\"\n ) {{ buttonText }}\n\n Modal(class=\"lg:w-1/3\" v-if=\"errors\")\n .text-2xl Ops, please review the errors\n button.absolute.right-4.btn.btn-error.btn-xs.text-white(@click=\"errors = null\") Close\n p(v-for=\"error, ix in errors\" :key=\"ix\") {{ error }}\n\n div(v-if=\"!vehicle\")\n h2.text-2xl.font-semibold(v-if=\"$storex.search.searching\")\n div Checking booking details\n <progress class=\"progress w-56\"></progress>\n h2.text-2xl.font-semibold(v-else) Ops!, no results found!\n div(class=\"booking-form lg:p-6 bg-white shadow-md rounded-lg w-full flex flex-col gap-2\" v-if=\"vehicle\")\n h2.text-2xl.font-semibold Almost done with your booking\n \n div(class=\"lg:px-6 lg:py-2\")\n div.flex.flex-col.gap-2.p-2\n h3.text-lg.font-medium.mb-2 Search Details\n .row-col\n .flex.flex-col.gap-2.grow\n .row-col\n .flex.gap-2\n div(:class=\"['tooltip flex gap-2 items-center',fromMapLink ? 'text-sky-500 click' : 'opacity-0']\"\n @click=\"openLink(fromMapLink)\"\n :data-tip=\"fromMapLink ? 'Open link':'Pick up'\")\n <span v-if=\"isFromAirport\"><i class=\"fa-solid fa-plane\"></i></span>\n <span v-else><i class=\"fa-solid fa-map-location-dot\"></i></span>\n span.font-bold From:\n span {{ $storex.search.lastSearch.search.from.name }}\n .flex\n input.grow.input.input-sm.input-bordered(placeholder=\"Pickup adreess details\" v-model=\"form.trip.pickupAddressDetails\")\n .flex.flex-col.gap-2.grow\n .row-col\n .flex.gap-2\n div(:class=\"['tooltip flex gap-2 items-center',toMapLink ? 'text-sky-500 click' : 'opacity-0']\"\n @click=\"openLink(toMapLink)\"\n :data-tip=\"toMapLink ? 'Open link':'Pick up'\")\n <span v-if=\"isToAirport\"><i class=\"fa-solid fa-plane\"></i></span>\n <span v-else><i class=\"fa-solid fa-map-location-dot\"></i></span>\n span.font-bold To:\n span {{ $storex.search.lastSearch.search.to.name }}\n .flex\n input.grow.input.input-sm.input-bordered(placeholder=\"Dropoff adreess details\" v-model=\"form.trip.dropoffAddressDetails\")\n \n h3.text-lg.font-medium.mb-2 Selected vehicle\n .bg-base-200.rounded-md\n SearchResultVue(:vehicle=\"vehicle\" :viewOnly=\"!canBook\" @book=\"bookTrip\")\n \n div.breadcrumbs.my-4\n ul.flex.space-x-4.text-xs\n li(v-for=\"(breadcrumb, index) in breadcrumbs\" :key=\"index\"\n :class=\"['py-1 px-2 rounded-full flex items-center',hasMandatoryField(index) ? 'border border-red-800/40' :'',currentStep === index + 1 ? 'bg-info text-white':'bg-base-300 text-neutral-content', ]\")\n a(href=\"#\" @click.prevent=\"navigateToStep(index + 1)\" class=\"flex items-center\")\n i(:class=\"breadcrumb.icon + ' fa-lg fa-solid'\")\n span(class=\"ml-2 hidden md:inline\") {{ breadcrumb.text }}\n span.text-red-600.font-bold.ml-2(v-if=\"hasMandatoryField(index)\")\n <i class=\"fa-solid fa-exclamation\"></i>\n \n div.grow.overflow-auto\n div(class=\"space-y-4 md:space-y-6\")\n div(:class=\"['mb-6 md:mb-4', currentStep === 1 ? 'block' : 'hidden']\")\n h3.text-lg.font-medium.mb-2 Passenger Details\n .row-col\n span(class=\"label lg:w-1/4\") First Name\n span *\n input(type=\"text\" placeholder=\"Agency reference\" v-model=\"form.agencyRef\" class=\"input input-bordered input-sm grow mandatory-field\") \n .row-col\n span(class=\"label lg:w-1/4\") First Name\n span *\n input(type=\"text\" placeholder=\"First Name\" v-model=\"form.passenger.firstName\" class=\"input input-bordered input-sm grow mandatory-field\")\n .row-col\n span(class=\"label lg:w-1/4\") Last Name\n input(type=\"text\" placeholder=\"Last Name\" v-model=\"form.passenger.lastName\" class=\"input input-bordered input-sm grow\")\n .row-col\n span(class=\"label lg:w-1/4\") Email\n span *\n input(type=\"email\" placeholder=\"Email\" v-model=\"form.passenger.email\" class=\"input input-bordered input-sm grow mandatory-field\")\n .row-col\n span(class=\"label lg:w-1/4\") Email confirmation\n input(type=\"email\" placeholder=\"Email confirmation\" v-model=\"form.passenger.emailConfirmation\" class=\"input input-bordered input-sm grow\")\n div(class=\"flex flex-col lg:flex-row lg:gap-2 justify-start\")\n span(class=\"label lg:w-1/4\") Country/region Code\n span *\n div.shrink-0.grow.pt-1\n .w-96\n select.select.select-bordered.select-sm(v-model=\"form.passenger.countryCode\")\n option(:value=\"country.code\" v-for=\"country in $storex.bookings.countryCodes\" :key=\"country.code\")\n span {{ country.name }} ({{ country.code }})\n .row-col\n span(class=\"label lg:w-1/4\") Mobile Phone Number\n span *\n input(type=\"tel\" placeholder=\"Mobile Phone Number\" v-model=\"form.passenger.phoneNumber\" class=\"input input-bordered input-sm grow mandatory-field\")\n .row-col\n span(class=\"label lg:w-1/4\") Luggage\n input(type=\"number\" placeholder=\"Number of luggage\" v-model=\"form.passenger.luggage\" class=\"input input-bordered input-sm grow\")\n \n h3.text-lg.font-medium.my-2 Comments\n .row-col\n span(class=\"label lg:w-1/4\") Special instructions (optional)\n input(type=\"text\" placeholder=\"Special instructions (optional)\" v-model=\"form.passenger.specialInstructions\" class=\"input input-bordered input-sm grow\")\n \n div.flex.justify-end\n button(type=\"button\" @click=\"nextStep\" class=\"btn btn-primary mt-4\") Next\n \n div(:class=\"['mb-6 md:mb-4 flex flex-col gap-2 p-1', currentStep === 2 ? 'block' : 'hidden']\")\n h3.text-lg.font-medium.mb-2 Flight & Pickup\n p For Your Flight {{ isFromAirport ? 'Arriving to' : 'Departing from' }} \n span.font-bold {{ airportName }}\n\n .flex.flex-col.gap-2.items-start(class=\"w-full lg:w-3/4\") <!-- Fligh and PickUp section sould be 3/4 of the width -->\n .row-col\n .flex.gap-2.items-center\n .flex.gap-2.items-center\n span.label.w-60 Flight number\n span *\n input(type=\"text\" placeholder=\"Flight number\" v-model=\"form.flight.number\" class=\"input input-bordered input-sm grow mandatory-field\")\n .flex.gap-2.items-center\n span.label.grow Flight time\n span *\n .input.input-bordered.input-sm.mandatory-field\n input(type=\"time\" v-model=\"form.flight.time\")\n .row-col\n span.label.w-60 Pickup time\n span *\n .input.input-bordered.input-sm.mandatory-field\n input(type=\"time\" v-model=\"form.flight.pickupTime\")\n\n div.flex.justify-end.gap-2\n button(type=\"button\" @click=\"prevStep\" class=\"btn btn-secondary mt-4\") Back\n \n</template>\n<script>\nimport API from '../../api'\nexport default {\n data() {\n return {\n currentStep: 1,\n breadcrumbs: [\n { text: 'Passenger Details', icon: 'fa-user' },\n { text: 'Flight Details', icon: 'fa-plane' }\n ],\n form: {\n trip: {\n from: 'Cascades Les Halles, Paris, Rue des Innocents, Paris, France',\n to: 'CDG - Paris, FR - Paris Charles De Gaulle Airport',\n carbonOffset: false,\n pickupAddressDetails: '',\n dropoffAddressDetails: ''\n },\n passenger: {\n firstName: '',\n lastName: '',\n email: '',\n emailConfirmation: '',\n countryCode: '',\n phoneNumber: '',\n specialInstructions: '',\n password: '',\n luggage: 0,\n },\n flight: {\n number: null,\n pickupTime: null,\n time: null\n },\n agencyRef: null,\n },\n showVoucher: false,\n bookingRequest: null,\n acceptTermsAndConds: false,\n errors: null,\n isBooking: false,\n newBooking: null,\n flightNumberError: null,\n };\n },\n async created () {\n if (!this.vehicle) {\n await this.$storex.search.searchFromLink(this.$route.query)\n }\n if (this.search) {\n this.form.flight.pickupTime = this.search.time\n }\n // Stripe response\n const { uuid, session_id } = this.query\n if (uuid) {\n const { data: { status, formData, bookingRequest } } = await API.transfers.paymentStatus({ uuid, session_id })\n formData && (this.form = JSON.parse(formData))\n if (status === \"complete\") {\n this.finishBookTrip(JSON.parse(bookingRequest), uuid)\n }\n }\n },\n computed: {\n canPay () {\n return this.form.passenger.firstName &&\n this.form.passenger.email && \n (this.form.passenger.email === this.form.passenger.emailConfirmation) &&\n this.form.passenger.countryCode &&\n this.form.passenger.phoneNumber &&\n this.form.flight.number &&\n this.form.flight.pickupTime &&\n this.form.flight.time &&\n this.form.agencyRef\n },\n canBook () {\n return this.canPay\n },\n search () {\n return this.$storex.search.lastSearch?.search\n },\n vehicle () {\n const { contract_line_id } = this.$route.query\n return this.$storex.search.lastSearch?.results?.vehicles.find(r => r.contract_line_id === parseInt(contract_line_id))\n },\n fromMapLink () {\n if (!this.search?.from) {\n return null\n }\n const { name, location } = this.search.from\n return `https://maps.google.com/?q=${location.latitude},${location.longitude} (${name})`\n },\n toMapLink () {\n if (!this.search?.to) {\n return null\n }\n const { name, location } = this.search.to\n return `https://maps.google.com/?q=${location.latitude},${location.longitude} (${name})`\n },\n isFromAirport() {\n return this.search?.from?.destinationType === \"airport\"\n },\n isToAirport () {\n return this.search?.to?.destinationType === \"airport\"\n },\n airportName () {\n if (this.isFromAirport) {\n return this.search.from.name\n }\n return this.search.to?.name\n },\n voucherPreview () {\n return this.newBooking || {\n ...this.search,\n ...this.vehicle,\n ...this.bookingRequest,\n }\n },\n query () {\n return this.$route.query\n },\n paymentType () {\n return this.$storex.user.user.agency.paymentType\n },\n buttonText() {\n return this.paymentType === 1 ? 'Pay' : 'Pay & book now!'\n }\n },\n methods: {\n prepareBookingRequest() {\n function getDestination ({ idZone, location, iata }) {\n if (iata && typeof(iata) === 'string' && iata.length === 3) {\n return iata\n }\n if (idZone) {\n return idZone\n }\n return `[${location.latitude},${location.longitude}]`\n }\n const flightDateTime = () => {\n const { date } = this.search \n return `${date}T${this.form.flight.time}`\n }\n this.bookingRequest = {\n agency_ref: this.form.agencyRef,\n contract_line_id: this.vehicle.contract_line_id,\n passenger_name: `${this.form.passenger.firstName} ${this.form.passenger.lastName}`,\n passenger_phone: `+${this.form.passenger.countryCode}${this.form.passenger.phoneNumber.replace(/[0-9]/, \"\")}`,\n passenger_email: this.form.passenger.email,\n sale_currency: this.search.sale_currency,\n adults: this.search.adults,\n children: this.search.children,\n infants: this.search.infants,\n booster_seats: this.search.booster_seats,\n baby_seats: this.search.baby_seats,\n luggage: this.form.passenger.luggage,\n comments_visible: this.form.passenger.specialInstructions,\n pickup_datetime: `${this.search.date}T${this.form.flight.pickupTime}`,\n from: getDestination(this.search.from),\n to: getDestination(this.search.to),\n\n pickup_address: [this.search.from.name, this.form.trip.pickupAddressDetails].join(\"\\n\"),\n dropoff_address: [this.search.to.name, this.form.trip.dropoffAddressDetails].join(\"\\n\"),\n\n inward_flight_service_ref: this.isFromAirport ? this.form.flight.number : null,\n inward_terminal_datetime: this.isFromAirport ? flightDateTime() : null,\n \n outward_flight_service_ref: this.isFromAirport ? null : this.form.flight.number,\n outward_terminal_datetime: this.isFromAirport ? null : flightDateTime(),\n \n client_locale: navigator.language.split(\" \")[0].split(\"-\")[0]\n };\n },\n bookTrip() {\n this.prepareBookingRequest()\n\n this.showVoucher = true\n console.log('Booking form.trip with details:', JSON.stringify(this.bookingRequest, null, 2));\n },\n signIn() {\n console.log('Signing in...');\n },\n nextStep() {\n if (this.currentStep < this.breadcrumbs.length) {\n this.currentStep++;\n }\n },\n prevStep() {\n if (this.currentStep > 1) {\n this.currentStep--;\n }\n },\n navigateToStep(step) {\n this.currentStep = step;\n },\n hasMandatoryField(stepIndex) {\n if (stepIndex === 0) {\n return !this.form.passenger.firstName || !this.form.passenger.email || !this.form.passenger.countryCode || !this.form.passenger.phoneNumber ||\n this.form.passenger.email !== this.form.passenger.emailConfirmation\n } else if (stepIndex === 1) {\n return !this.form.flight.number || !this.form.flight.pickupTime || !this.form.flight.time;\n } \n return false;\n },\n cancelBooking() {\n console.log('Booking cancelled.');\n // Add any additional logic for cancelling the booking here\n },\n async finishBookTrip (bookingRequest, uuid) {\n this.isBooking = true;\n const { data: newBooking } = await API.transfers.book(bookingRequest, uuid)\n console.log(\"newBooking\", this.bookingRequest, newBooking)\n if (newBooking?.errors.length) {\n this.errors = newBooking.errors\n this.showVoucher = false\n } else {\n this.$router.push(`/booking/${newBooking.booking_id}`)\n }\n this.isBooking = false;\n },\n async payTrip() {\n try {\n this.prepareBookingRequest()\n const { \n form: formData,\n bookingRequest,\n vehicle: {\n sale_currency,\n vehicle_description,\n vehicle_image_url,\n sale_price\n }\n } = this\n const [ origin, search ] = window.location.href.split(\"?\")\n const paramsters = search.split(\"&\")\n .filter(e => !e.startsWith(\"uuid=\") &&\n !e.startsWith(\"session_id=\"))\n .join(\"&\")\n \n const redirectUrl = `${origin}?${paramsters}`\n const { data: { paymentUrl } } = await API.transfers.pay(\n {\n redirectUrl,\n bookingRequest: JSON.stringify(bookingRequest),\n sale_currency,\n vehicle_description,\n vehicle_image_url,\n sale_price,\n formData: JSON.stringify(formData)\n });\n console.log('Payment successful:', paymentUrl);\n window.location = paymentUrl\n } catch (error) {\n this.paymentError = `Payment error: ${error}`\n }\n },\n handleBooking() {\n if (this.paymentType === 1) {\n this.finishBookTrip(this.bookingRequest, \"\");\n } else {\n this.payTrip();\n }\n }\n },\n};\n</script>\n","<script setup>\n</script>\n<template lang=\"pug\">\ndiv.flex-2.flex-col.h-full\n h2.header Profile\n p Proflie settings\n\n p.text-xl {{ $user.email }}\n\n div(class=\"mt-4 flex-2 flex-col w-full lg:w-1/3 justify-between\")\n div.row-col\n p Agency name\n input(v-model=\"$user.agency.commercialName\").input.input-bordered.flex-2.items-center.grow\n\n <label class=\"input input-bordered flex items-center gap-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" class=\"w-4 h-4 opacity-70\"><path d=\"M2.5 3A1.5 1.5 0 0 0 1 4.5v.793c.026.009.051.02.076.032L7.674 8.51c.206.1.446.1.652 0l6.598-3.185A.755.755 0 0 1 15 5.293V4.5A1.5 1.5 0 0 0 13.5 3h-11Z\" /><path d=\"M15 6.954 8.978 9.86a2.25 2.25 0 0 1-1.956 0L1 6.954V11.5A1.5 1.5 0 0 0 2.5 13h11a1.5 1.5 0 0 0 1.5-1.5V6.954Z\" /></svg>\n <input type=\"text\" class=\"grow\" placeholder=\"Email\" />\n </label>\n <label class=\"input input-bordered flex items-center gap-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" class=\"w-4 h-4 opacity-70\"><path d=\"M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM12.735 14c.618 0 1.093-.561.872-1.139a6.002 6.002 0 0 0-11.215 0c-.22.578.254 1.139.872 1.139h9.47Z\" /></svg>\n <input type=\"text\" class=\"grow\" placeholder=\"Username\" />\n </label>\n <label class=\"input input-bordered flex items-center gap-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" class=\"w-4 h-4 opacity-70\"><path fill-rule=\"evenodd\" d=\"M14 6a4 4 0 0 1-4.899 3.899l-1.955 1.955a.5.5 0 0 1-.353.146H5v1.5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1-.5-.5v-2.293a.5.5 0 0 1 .146-.353l3.955-3.955A4 4 0 1 1 14 6Zm-4-2a.75.75 0 0 0 0 1.5.5.5 0 0 1 .5.5.75.75 0 0 0 1.5 0 2 2 0 0 0-2-2Z\" clip-rule=\"evenodd\" /></svg>\n <input type=\"password\" class=\"grow\" value=\"password\" />\n </label>\n\n</template>\n<script>\nexport default {\n data () {\n return {\n name: \"name\"\n }\n }\n}\n</script>","<template>\n <div class=\"flex flex-col items-center overflow-auto h-full w-full\">\n <img class=\"h-40\" src=\"/logo_long.png\" />\n <Markdown :markdownText=\"markdownText\" v-if=\"markdownText\" />\n </div>\n</template>\n<script>\nexport default {\n data () {\n return {\n markdownText: null\n }\n },\n async mounted () {\n const { name } = this.$route\n this.markdownText = await (await (fetch(`/${name}.md`))).text()\n }\n}\n</script>","import { createWebHistory, createRouter } from 'vue-router'\n\nimport { $storex } from \"../store\";\n\nimport Bookings from '../views/Bookings.vue'\nimport Places from '../views/Places.vue'\nimport Booking from '../views/Booking.vue'\nimport Admin from '../views/Admin.vue'\nimport Support from '../views/Support.vue'\nimport Search from '../views/Search.vue'\nimport Profile from '../views/Profile.vue'\nimport LegalDocs from '../views/LegalDocs.vue'\n\nconst routes = [\n { \n path: '/',\n name: 'root',\n component: Bookings\n },\n { \n path: '/search',\n name: 'search',\n component: Search\n },\n { \n path: '/search/book',\n name: 'book',\n component: Search\n },\n { \n path: '/bookings',\n name: 'bookings',\n component: Bookings\n },\n { \n path: '/places',\n name: 'places',\n component: Places\n },\n { \n path: '/booking/:bookingId',\n name: 'booking',\n component: Booking\n },\n { \n path: '/admin',\n name: 'admin',\n component: Admin\n },\n { \n path: '/admin/users',\n name: 'admin-users',\n component: Admin\n },\n { \n path: '/support',\n name: 'suppoSupport',\n component: Support\n },\n { \n path: '/profile',\n name: 'profile',\n component: Profile\n },\n {\n path: '/termsandconds',\n name: 'termsandconds',\n component: LegalDocs\n },\n {\n path: '/privacy',\n name: 'privacy',\n component: LegalDocs\n }\n]\n\nconst baseUrl = `/${window.location.pathname.slice(1).split(\"/\")[0]}`\nconsole.log(\"Router base: \", import.meta.env.BASE_URL)\nexport const router = createRouter({\n history: createWebHistory(baseUrl),\n routes,\n})\n\nrouter.beforeEach(async (to, from, next) => {\n if (!$storex.user.user) {\n await $storex.user.init()\n }\n console.log(\"Navigate to\", to)\n if (to.name === 'search' && !$storex.user.user?.agency) {\n return next(\"/\")\n }\n if (to.name === 'bookings' && !$storex.user.user?.provider) {\n return next(\"/\")\n }\n if (!to.name) {\n return next(\"/\")\n }\n next()\n})\n\nwindow.$router = router","<template>\n <div class=\"hero min-h-screen bg-base-200\">\n <div class=\"hero-content flex-col lg:flex-row-reverse\">\n <div class=\"text-center lg:text-left lg:pl-6\">\n <div class=\"flex justify-center lg:justify-start\">\n <img src=\"/logo_long.png\" />\n </div>\n <h1 class=\"text-5xl font-bold mt-4\">Welcome!</h1>\n <div class=\"text-center lg:text-left\">\n <p class=\"py-6\">\n Welcome to your personal Dashboard! Here, you can effortlessly manage your inventory, track orders, and strengthen your business connections\n </p>\n </div>\n </div>\n <div class=\"card shrink-0 w-full max-w-sm shadow-2xl bg-base-100\" v-if=\"showRegister\">\n <form class=\"card-body\">\n <div class=\"text-xs flex flex-col gap-2\">\n <div class=\"text-xl\">Thanks for your interest!</div>\n <p>\n Please send as an email to register and gain access to the platform. \n </p>\n <p>\n After processing your request promptly, we'll send an email to you containing detailed instructions.\n </p>\n Thank you for your patience and understanding.\n </div>\n <div class=\"form-control mt-6\">\n <a class=\"btn btn-secondary\" href=\"mailto:info@onwaytransfers.com?subject=Access to OWTB2B Dashboard&body=Hi, we would like to request access to the OWTB2B Dashboard.\">\n <i class=\"fa-regular fa-envelope\"></i> Register\n </a>\n </div>\n </form>\n <div class=\"underline text-primary text-xs mb-4 text-center click\" @click=\"showRegister = false\">\n Login with your account\n </div>\n </div>\n <div class=\"card shrink-0 w-full max-w-sm shadow-2xl bg-base-100\" v-else>\n <form class=\"card-body\">\n <div class=\"form-control\">\n <label class=\"label\">\n <span class=\"label-text\">Email</span>\n </label>\n <input type=\"email\" placeholder=\"email\" class=\"input input-bordered\" v-model=\"email\" required />\n </div>\n <div class=\"form-control\">\n <label class=\"label\">\n <span class=\"label-text\">Password</span>\n </label>\n <input type=\"password\" placeholder=\"password\" class=\"input input-bordered\" v-model=\"password\" required />\n <label class=\"label\">\n <a href=\"#\" class=\"label-text-alt link link-hover\">Forgot password?</a>\n </label>\n </div>\n <div class=\"form-control mt-6\">\n <button class=\"btn btn-primary\" @click.prevent=\"login\">Login</button>\n </div>\n </form>\n <div class=\"underline text-primary text-xs mb-4 text-center click\" @click=\"showRegister = true\">\n Don't have an account yet?\n </div>\n </div>\n </div>\n</div>\n</template>\n<script>\nexport default {\n data () {\n return {\n email: null,\n password: null,\n company: null,\n showRegister: false\n }\n },\n methods: {\n async login () {\n try {\n const { email, password } = this\n await this.$storex.user.login({ email, password, isAdmin: this.$route.path === '/admin' })\n } catch (ex) {\n console.error(ex)\n }\n if (!this.$storex.user.user) {\n this.$root.showNotification(\"Login error\")\n }\n },\n register () {\n const { email, company } = this\n this.$storex.user.register({ email, company })\n this.$root.showNotification(\"Thanks for registering\")\n }\n }\n}\n</script>","<template lang=\"pug\">\n.card.p-4.flex.flex-col.gap-2.text-xs\n .text-xl Cookies consent \n .text-xs\n |This website stores data such as cookies to enable important site functionality including analytics, targeting, and personalization. You may alter your preferences at any time or accept the default settings.\n\n .flex.gap-2\n <input type=\"checkbox\" class=\"toggle toggle-sm\" checked=\"checked\" disabled /> Strictly Necessary\n .flex.gap-2\n <input type=\"checkbox\" class=\"toggle toggle-sm\" v-model=\"analytics\" /> Analytics\n a.text-xs.underline.my-2(:href=\"$router.resolve({name: 'privacy'}).href\" target=\"_blank\") Privacy policy\n .btn.btn-sm(@click=\"$emit('accept', { analytics })\") Accept\n</template>\n<script>\nexport default {\n data() {\n return {\n analytics: true\n }\n }\n}\n</script>","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","<script setup>\nimport Login from './components/Login.vue'\nimport CookiesConsent from './components/CookiesConsent.vue';\nimport Cookies from 'js-cookie'\n</script>\n\n<template>\n <div :data-theme=\"$storex.user.theme\" class=\"w-screen h-screen\">\n <div class=\"absolute -top-2 left-0 w-full\" v-if=\"$storex.loading\">\n <progress class=\"progress w-full opacity-40 z-[150]\"></progress>\n </div>\n <RouterView class=\"\" v-if=\"$storex.user.user\" />\n <Login v-else/>\n <dialog id=\"my_modal_5\" class=\"modal modal-bottom sm:modal-middle modal-open\" v-if=\"notification\">\n <div class=\"modal-box\">\n <p class=\"py-4\">{{ notification }}</p>\n <div class=\"modal-action\">\n <form method=\"dialog\">\n <!-- if there is a button in form, it will close the modal -->\n <button class=\"btn\" @click=\"notification = null\">Close</button>\n </form>\n </div>\n </div>\n </dialog>\n <div class=\"absolute right-2 bottom-2 card p-2 bg-base-300 z-50\" v-if=\"!hasCookiesConsent\">\n <CookiesConsent @accept=\"acceptCookies\" class=\"w-60\" />\n </div>\n </div>\n</template>\n<script>\nexport default {\n data () {\n return {\n notification: null,\n hasCookiesConsent: Cookies.get('cookies-consent')\n }\n },\n methods: {\n showNotification (notification) {\n this.notification = notification\n },\n acceptCookies (settings) {\n this.hasCookiesConsent = JSON.stringify(settings)\n Cookies.set('cookies-consent', this.hasCookiesConsent)\n }\n },\n expose: ['showNotification']\n}\n</script>","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /* eslint-disable no-unused-expressions */\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well knownâ€.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array<string> | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * <https://github.com/mozilla/source-map/blob/60adcb0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array<string>} sources\n * An array of URLs to the original source files.\n * @property {Array<string>} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array<string> | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record<string, unknown> & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array<VFile>} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-knownâ€.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","import {dequal} from 'dequal'\n\n/**\n * @type {Set<string>}\n */\nconst codesWarned = new Set()\n\nclass AssertionError extends Error {\n name = /** @type {const} */ ('Assertion')\n code = /** @type {const} */ ('ERR_ASSERTION')\n\n /**\n * Create an assertion error.\n *\n * @param {string} message\n * Message explaining error.\n * @param {unknown} actual\n * Value.\n * @param {unknown} expected\n * Baseline.\n * @param {string} operator\n * Name of equality operation.\n * @param {boolean} generated\n * Whether `message` is a custom message or not\n * @returns\n * Instance.\n */\n // eslint-disable-next-line max-params\n constructor(message, actual, expected, operator, generated) {\n super(message)\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor)\n }\n\n /**\n * @type {unknown}\n */\n this.actual = actual\n\n /**\n * @type {unknown}\n */\n this.expected = expected\n\n /**\n * @type {boolean}\n */\n this.generated = generated\n\n /**\n * @type {string}\n */\n this.operator = operator\n }\n}\n\nclass DeprecationError extends Error {\n name = /** @type {const} */ ('DeprecationWarning')\n\n /**\n * Create a deprecation message.\n *\n * @param {string} message\n * Message explaining deprecation.\n * @param {string | undefined} code\n * Deprecation identifier; deprecation messages will be generated only once per code.\n * @returns\n * Instance.\n */\n constructor(message, code) {\n super(message)\n\n /**\n * @type {string | undefined}\n */\n this.code = code\n }\n}\n\n/**\n * Wrap a function or class to show a deprecation message when first called.\n *\n * > 👉 **Important**: only shows a message when the `development` condition is\n * > used, does nothing in production.\n *\n * When the resulting wrapped `fn` is called, emits a warning once to\n * `console.error` (`stderr`).\n * If a code is given, one warning message will be emitted in total per code.\n *\n * @template {Function} T\n * Function or class kind.\n * @param {T} fn\n * Function or class.\n * @param {string} message\n * Message explaining deprecation.\n * @param {string | null | undefined} [code]\n * Deprecation identifier (optional); deprecation messages will be generated\n * only once per code.\n * @returns {T}\n * Wrapped `fn`.\n */\nexport function deprecate(fn, message, code) {\n let warned = false\n\n // The wrapper will keep the same prototype as fn to maintain prototype chain\n Object.setPrototypeOf(deprecated, fn)\n\n // @ts-expect-error: it’s perfect, typescript…\n return deprecated\n\n /**\n * @this {unknown}\n * @param {...Array<unknown>} args\n * @returns {unknown}\n */\n function deprecated(...args) {\n if (!warned) {\n warned = true\n\n if (typeof code === 'string' && codesWarned.has(code)) {\n // Empty.\n } else {\n console.error(new DeprecationError(message, code || undefined))\n\n if (typeof code === 'string') codesWarned.add(code)\n }\n }\n\n return new.target\n ? Reflect.construct(fn, args, new.target)\n : Reflect.apply(fn, this, args)\n }\n}\n\n/**\n * Assert deep strict equivalence.\n *\n * > 👉 **Important**: only asserts when the `development` condition is used,\n * > does nothing in production.\n *\n * @template {unknown} T\n * Expected kind.\n * @param {unknown} actual\n * Value.\n * @param {T} expected\n * Baseline.\n * @param {Error | string | null | undefined} [message]\n * Message for assertion error (default: `'Expected values to be deeply equal'`).\n * @returns {asserts actual is T}\n * Nothing; throws when `actual` is not deep strict equal to `expected`.\n * @throws {AssertionError}\n * Throws when `actual` is not deep strict equal to `expected`.\n */\nexport function equal(actual, expected, message) {\n assert(\n dequal(actual, expected),\n actual,\n expected,\n 'equal',\n 'Expected values to be deeply equal',\n message\n )\n}\n\n/**\n * Assert if `value` is truthy.\n *\n * > 👉 **Important**: only asserts when the `development` condition is used,\n * > does nothing in production.\n *\n * @param {unknown} value\n * Value to assert.\n * @param {Error | string | null | undefined} [message]\n * Message for assertion error (default: `'Expected value to be truthy'`).\n * @returns {asserts value}\n * Nothing; throws when `value` is falsey.\n * @throws {AssertionError}\n * Throws when `value` is falsey.\n */\nexport function ok(value, message) {\n assert(\n Boolean(value),\n false,\n true,\n 'ok',\n 'Expected value to be truthy',\n message\n )\n}\n\n/**\n * Assert that a code path never happens.\n *\n * > 👉 **Important**: only asserts when the `development` condition is used,\n * > does nothing in production.\n *\n * @param {Error | string | null | undefined} [message]\n * Message for assertion error (default: `'Unreachable'`).\n * @returns {never}\n * Nothing; always throws.\n * @throws {AssertionError}\n * Throws when `value` is falsey.\n */\nexport function unreachable(message) {\n assert(false, false, true, 'ok', 'Unreachable', message)\n}\n\n/**\n * @param {boolean} bool\n * Whether to skip this operation.\n * @param {unknown} actual\n * Actual value.\n * @param {unknown} expected\n * Expected value.\n * @param {string} operator\n * Operator.\n * @param {string} defaultMessage\n * Default message for operation.\n * @param {Error | string | null | undefined} userMessage\n * User-provided message.\n * @returns {asserts bool}\n * Nothing; throws when falsey.\n */\n// eslint-disable-next-line max-params\nfunction assert(bool, actual, expected, operator, defaultMessage, userMessage) {\n if (!bool) {\n throw userMessage instanceof Error\n ? userMessage\n : new AssertionError(\n userMessage || defaultMessage,\n actual,\n expected,\n operator,\n !userMessage\n )\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * Character codes.\n *\n * This module is compiled away!\n *\n * micromark works based on character codes.\n * This module contains constants for the ASCII block and the replacement\n * character.\n * A couple of them are handled in a special way, such as the line endings\n * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal\n * tab) and its expansion based on what column it’s at (virtual space),\n * and the end-of-file (eof) character.\n * As values are preprocessed before handling them, the actual characters LF,\n * CR, HT, and NUL (which is present as the replacement character), are\n * guaranteed to not exist.\n *\n * Unicode basic latin block.\n */\nexport const codes = /** @type {const} */ ({\n carriageReturn: -5,\n lineFeed: -4,\n carriageReturnLineFeed: -3,\n horizontalTab: -2,\n virtualSpace: -1,\n eof: null,\n nul: 0,\n soh: 1,\n stx: 2,\n etx: 3,\n eot: 4,\n enq: 5,\n ack: 6,\n bel: 7,\n bs: 8,\n ht: 9, // `\\t`\n lf: 10, // `\\n`\n vt: 11, // `\\v`\n ff: 12, // `\\f`\n cr: 13, // `\\r`\n so: 14,\n si: 15,\n dle: 16,\n dc1: 17,\n dc2: 18,\n dc3: 19,\n dc4: 20,\n nak: 21,\n syn: 22,\n etb: 23,\n can: 24,\n em: 25,\n sub: 26,\n esc: 27,\n fs: 28,\n gs: 29,\n rs: 30,\n us: 31,\n space: 32,\n exclamationMark: 33, // `!`\n quotationMark: 34, // `\"`\n numberSign: 35, // `#`\n dollarSign: 36, // `$`\n percentSign: 37, // `%`\n ampersand: 38, // `&`\n apostrophe: 39, // `'`\n leftParenthesis: 40, // `(`\n rightParenthesis: 41, // `)`\n asterisk: 42, // `*`\n plusSign: 43, // `+`\n comma: 44, // `,`\n dash: 45, // `-`\n dot: 46, // `.`\n slash: 47, // `/`\n digit0: 48, // `0`\n digit1: 49, // `1`\n digit2: 50, // `2`\n digit3: 51, // `3`\n digit4: 52, // `4`\n digit5: 53, // `5`\n digit6: 54, // `6`\n digit7: 55, // `7`\n digit8: 56, // `8`\n digit9: 57, // `9`\n colon: 58, // `:`\n semicolon: 59, // `;`\n lessThan: 60, // `<`\n equalsTo: 61, // `=`\n greaterThan: 62, // `>`\n questionMark: 63, // `?`\n atSign: 64, // `@`\n uppercaseA: 65, // `A`\n uppercaseB: 66, // `B`\n uppercaseC: 67, // `C`\n uppercaseD: 68, // `D`\n uppercaseE: 69, // `E`\n uppercaseF: 70, // `F`\n uppercaseG: 71, // `G`\n uppercaseH: 72, // `H`\n uppercaseI: 73, // `I`\n uppercaseJ: 74, // `J`\n uppercaseK: 75, // `K`\n uppercaseL: 76, // `L`\n uppercaseM: 77, // `M`\n uppercaseN: 78, // `N`\n uppercaseO: 79, // `O`\n uppercaseP: 80, // `P`\n uppercaseQ: 81, // `Q`\n uppercaseR: 82, // `R`\n uppercaseS: 83, // `S`\n uppercaseT: 84, // `T`\n uppercaseU: 85, // `U`\n uppercaseV: 86, // `V`\n uppercaseW: 87, // `W`\n uppercaseX: 88, // `X`\n uppercaseY: 89, // `Y`\n uppercaseZ: 90, // `Z`\n leftSquareBracket: 91, // `[`\n backslash: 92, // `\\`\n rightSquareBracket: 93, // `]`\n caret: 94, // `^`\n underscore: 95, // `_`\n graveAccent: 96, // `` ` ``\n lowercaseA: 97, // `a`\n lowercaseB: 98, // `b`\n lowercaseC: 99, // `c`\n lowercaseD: 100, // `d`\n lowercaseE: 101, // `e`\n lowercaseF: 102, // `f`\n lowercaseG: 103, // `g`\n lowercaseH: 104, // `h`\n lowercaseI: 105, // `i`\n lowercaseJ: 106, // `j`\n lowercaseK: 107, // `k`\n lowercaseL: 108, // `l`\n lowercaseM: 109, // `m`\n lowercaseN: 110, // `n`\n lowercaseO: 111, // `o`\n lowercaseP: 112, // `p`\n lowercaseQ: 113, // `q`\n lowercaseR: 114, // `r`\n lowercaseS: 115, // `s`\n lowercaseT: 116, // `t`\n lowercaseU: 117, // `u`\n lowercaseV: 118, // `v`\n lowercaseW: 119, // `w`\n lowercaseX: 120, // `x`\n lowercaseY: 121, // `y`\n lowercaseZ: 122, // `z`\n leftCurlyBrace: 123, // `{`\n verticalBar: 124, // `|`\n rightCurlyBrace: 125, // `}`\n tilde: 126, // `~`\n del: 127,\n // Unicode Specials block.\n byteOrderMarker: 65279,\n // Unicode Specials block.\n replacementCharacter: 65533 // `�`\n})\n","/**\n * This module is compiled away!\n *\n * Parsing markdown comes with a couple of constants, such as minimum or maximum\n * sizes of certain sequences.\n * Additionally, there are a couple symbols used inside micromark.\n * These are all defined here, but compiled away by scripts.\n */\nexport const constants = /** @type {const} */ ({\n attentionSideBefore: 1, // Symbol to mark an attention sequence as before content: `*a`\n attentionSideAfter: 2, // Symbol to mark an attention sequence as after content: `a*`\n atxHeadingOpeningFenceSizeMax: 6, // 6 number signs is fine, 7 isn’t.\n autolinkDomainSizeMax: 63, // 63 characters is fine, 64 is too many.\n autolinkSchemeSizeMax: 32, // 32 characters is fine, 33 is too many.\n cdataOpeningString: 'CDATA[', // And preceded by `<![`.\n characterGroupWhitespace: 1, // Symbol used to indicate a character is whitespace\n characterGroupPunctuation: 2, // Symbol used to indicate a character is punctuation\n characterReferenceDecimalSizeMax: 7, // `�`.\n characterReferenceHexadecimalSizeMax: 6, // `�`.\n characterReferenceNamedSizeMax: 31, // `∳`.\n codeFencedSequenceSizeMin: 3, // At least 3 ticks or tildes are needed.\n contentTypeDocument: 'document',\n contentTypeFlow: 'flow',\n contentTypeContent: 'content',\n contentTypeString: 'string',\n contentTypeText: 'text',\n hardBreakPrefixSizeMin: 2, // At least 2 trailing spaces are needed.\n htmlRaw: 1, // Symbol for `<script>`\n htmlComment: 2, // Symbol for `<!---->`\n htmlInstruction: 3, // Symbol for `<?php?>`\n htmlDeclaration: 4, // Symbol for `<!doctype>`\n htmlCdata: 5, // Symbol for `<![CDATA[]]>`\n htmlBasic: 6, // Symbol for `<div`\n htmlComplete: 7, // Symbol for `<x>`\n htmlRawSizeMax: 8, // Length of `textarea`.\n linkResourceDestinationBalanceMax: 32, // See: <https://spec.commonmark.org/0.30/#link-destination>, <https://github.com/remarkjs/react-markdown/issues/658#issuecomment-984345577>\n linkReferenceSizeMax: 999, // See: <https://spec.commonmark.org/0.30/#link-label>\n listItemValueSizeMax: 10, // See: <https://spec.commonmark.org/0.30/#ordered-list-marker>\n numericBaseDecimal: 10,\n numericBaseHexadecimal: 0x10,\n tabSize: 4, // Tabs have a hard-coded size of 4, per CommonMark.\n thematicBreakMarkerCountMin: 3, // At least 3 asterisks, dashes, or underscores are needed.\n v8MaxSafeChunkSize: 10000 // V8 (and potentially others) have problems injecting giant arrays into other arrays, hence we operate in chunks.\n})\n","/**\n * This module is compiled away!\n *\n * Here is the list of all types of tokens exposed by micromark, with a short\n * explanation of what they include and where they are found.\n * In picking names, generally, the rule is to be as explicit as possible\n * instead of reusing names.\n * For example, there is a `definitionDestination` and a `resourceDestination`,\n * instead of one shared name.\n */\n\n// Note: when changing the next record, you must also change `TokenTypeMap`\n// in `micromark-util-types/index.d.ts`.\nexport const types = /** @type {const} */ ({\n // Generic type for data, such as in a title, a destination, etc.\n data: 'data',\n\n // Generic type for syntactic whitespace (tabs, virtual spaces, spaces).\n // Such as, between a fenced code fence and an info string.\n whitespace: 'whitespace',\n\n // Generic type for line endings (line feed, carriage return, carriage return +\n // line feed).\n lineEnding: 'lineEnding',\n\n // A line ending, but ending a blank line.\n lineEndingBlank: 'lineEndingBlank',\n\n // Generic type for whitespace (tabs, virtual spaces, spaces) at the start of a\n // line.\n linePrefix: 'linePrefix',\n\n // Generic type for whitespace (tabs, virtual spaces, spaces) at the end of a\n // line.\n lineSuffix: 'lineSuffix',\n\n // Whole ATX heading:\n //\n // ```markdown\n // #\n // ## Alpha\n // ### Bravo ###\n // ```\n //\n // Includes `atxHeadingSequence`, `whitespace`, `atxHeadingText`.\n atxHeading: 'atxHeading',\n\n // Sequence of number signs in an ATX heading (`###`).\n atxHeadingSequence: 'atxHeadingSequence',\n\n // Content in an ATX heading (`alpha`).\n // Includes text.\n atxHeadingText: 'atxHeadingText',\n\n // Whole autolink (`<https://example.com>` or `<admin@example.com>`)\n // Includes `autolinkMarker` and `autolinkProtocol` or `autolinkEmail`.\n autolink: 'autolink',\n\n // Email autolink w/o markers (`admin@example.com`)\n autolinkEmail: 'autolinkEmail',\n\n // Marker around an `autolinkProtocol` or `autolinkEmail` (`<` or `>`).\n autolinkMarker: 'autolinkMarker',\n\n // Protocol autolink w/o markers (`https://example.com`)\n autolinkProtocol: 'autolinkProtocol',\n\n // A whole character escape (`\\-`).\n // Includes `escapeMarker` and `characterEscapeValue`.\n characterEscape: 'characterEscape',\n\n // The escaped character (`-`).\n characterEscapeValue: 'characterEscapeValue',\n\n // A whole character reference (`&`, `≠`, or `𝌆`).\n // Includes `characterReferenceMarker`, an optional\n // `characterReferenceMarkerNumeric`, in which case an optional\n // `characterReferenceMarkerHexadecimal`, and a `characterReferenceValue`.\n characterReference: 'characterReference',\n\n // The start or end marker (`&` or `;`).\n characterReferenceMarker: 'characterReferenceMarker',\n\n // Mark reference as numeric (`#`).\n characterReferenceMarkerNumeric: 'characterReferenceMarkerNumeric',\n\n // Mark reference as numeric (`x` or `X`).\n characterReferenceMarkerHexadecimal: 'characterReferenceMarkerHexadecimal',\n\n // Value of character reference w/o markers (`amp`, `8800`, or `1D306`).\n characterReferenceValue: 'characterReferenceValue',\n\n // Whole fenced code:\n //\n // ````markdown\n // ```js\n // alert(1)\n // ```\n // ````\n codeFenced: 'codeFenced',\n\n // A fenced code fence, including whitespace, sequence, info, and meta\n // (` ```js `).\n codeFencedFence: 'codeFencedFence',\n\n // Sequence of grave accent or tilde characters (` ``` `) in a fence.\n codeFencedFenceSequence: 'codeFencedFenceSequence',\n\n // Info word (`js`) in a fence.\n // Includes string.\n codeFencedFenceInfo: 'codeFencedFenceInfo',\n\n // Meta words (`highlight=\"1\"`) in a fence.\n // Includes string.\n codeFencedFenceMeta: 'codeFencedFenceMeta',\n\n // A line of code.\n codeFlowValue: 'codeFlowValue',\n\n // Whole indented code:\n //\n // ```markdown\n // alert(1)\n // ```\n //\n // Includes `lineEnding`, `linePrefix`, and `codeFlowValue`.\n codeIndented: 'codeIndented',\n\n // A text code (``` `alpha` ```).\n // Includes `codeTextSequence`, `codeTextData`, `lineEnding`, and can include\n // `codeTextPadding`.\n codeText: 'codeText',\n\n codeTextData: 'codeTextData',\n\n // A space or line ending right after or before a tick.\n codeTextPadding: 'codeTextPadding',\n\n // A text code fence (` `` `).\n codeTextSequence: 'codeTextSequence',\n\n // Whole content:\n //\n // ```markdown\n // [a]: b\n // c\n // =\n // d\n // ```\n //\n // Includes `paragraph` and `definition`.\n content: 'content',\n // Whole definition:\n //\n // ```markdown\n // [micromark]: https://github.com/micromark/micromark\n // ```\n //\n // Includes `definitionLabel`, `definitionMarker`, `whitespace`,\n // `definitionDestination`, and optionally `lineEnding` and `definitionTitle`.\n definition: 'definition',\n\n // Destination of a definition (`https://github.com/micromark/micromark` or\n // `<https://github.com/micromark/micromark>`).\n // Includes `definitionDestinationLiteral` or `definitionDestinationRaw`.\n definitionDestination: 'definitionDestination',\n\n // Enclosed destination of a definition\n // (`<https://github.com/micromark/micromark>`).\n // Includes `definitionDestinationLiteralMarker` and optionally\n // `definitionDestinationString`.\n definitionDestinationLiteral: 'definitionDestinationLiteral',\n\n // Markers of an enclosed definition destination (`<` or `>`).\n definitionDestinationLiteralMarker: 'definitionDestinationLiteralMarker',\n\n // Unenclosed destination of a definition\n // (`https://github.com/micromark/micromark`).\n // Includes `definitionDestinationString`.\n definitionDestinationRaw: 'definitionDestinationRaw',\n\n // Text in an destination (`https://github.com/micromark/micromark`).\n // Includes string.\n definitionDestinationString: 'definitionDestinationString',\n\n // Label of a definition (`[micromark]`).\n // Includes `definitionLabelMarker` and `definitionLabelString`.\n definitionLabel: 'definitionLabel',\n\n // Markers of a definition label (`[` or `]`).\n definitionLabelMarker: 'definitionLabelMarker',\n\n // Value of a definition label (`micromark`).\n // Includes string.\n definitionLabelString: 'definitionLabelString',\n\n // Marker between a label and a destination (`:`).\n definitionMarker: 'definitionMarker',\n\n // Title of a definition (`\"x\"`, `'y'`, or `(z)`).\n // Includes `definitionTitleMarker` and optionally `definitionTitleString`.\n definitionTitle: 'definitionTitle',\n\n // Marker around a title of a definition (`\"`, `'`, `(`, or `)`).\n definitionTitleMarker: 'definitionTitleMarker',\n\n // Data without markers in a title (`z`).\n // Includes string.\n definitionTitleString: 'definitionTitleString',\n\n // Emphasis (`*alpha*`).\n // Includes `emphasisSequence` and `emphasisText`.\n emphasis: 'emphasis',\n\n // Sequence of emphasis markers (`*` or `_`).\n emphasisSequence: 'emphasisSequence',\n\n // Emphasis text (`alpha`).\n // Includes text.\n emphasisText: 'emphasisText',\n\n // The character escape marker (`\\`).\n escapeMarker: 'escapeMarker',\n\n // A hard break created with a backslash (`\\\\n`).\n // Note: does not include the line ending.\n hardBreakEscape: 'hardBreakEscape',\n\n // A hard break created with trailing spaces (` \\n`).\n // Does not include the line ending.\n hardBreakTrailing: 'hardBreakTrailing',\n\n // Flow HTML:\n //\n // ```markdown\n // <div\n // ```\n //\n // Inlcudes `lineEnding`, `htmlFlowData`.\n htmlFlow: 'htmlFlow',\n\n htmlFlowData: 'htmlFlowData',\n\n // HTML in text (the tag in `a <i> b`).\n // Includes `lineEnding`, `htmlTextData`.\n htmlText: 'htmlText',\n\n htmlTextData: 'htmlTextData',\n\n // Whole image (``, `![alpha][bravo]`, `![alpha][]`, or\n // `![alpha]`).\n // Includes `label` and an optional `resource` or `reference`.\n image: 'image',\n\n // Whole link label (`[*alpha*]`).\n // Includes `labelLink` or `labelImage`, `labelText`, and `labelEnd`.\n label: 'label',\n\n // Text in an label (`*alpha*`).\n // Includes text.\n labelText: 'labelText',\n\n // Start a link label (`[`).\n // Includes a `labelMarker`.\n labelLink: 'labelLink',\n\n // Start an image label (`![`).\n // Includes `labelImageMarker` and `labelMarker`.\n labelImage: 'labelImage',\n\n // Marker of a label (`[` or `]`).\n labelMarker: 'labelMarker',\n\n // Marker to start an image (`!`).\n labelImageMarker: 'labelImageMarker',\n\n // End a label (`]`).\n // Includes `labelMarker`.\n labelEnd: 'labelEnd',\n\n // Whole link (`[alpha](bravo)`, `[alpha][bravo]`, `[alpha][]`, or `[alpha]`).\n // Includes `label` and an optional `resource` or `reference`.\n link: 'link',\n\n // Whole paragraph:\n //\n // ```markdown\n // alpha\n // bravo.\n // ```\n //\n // Includes text.\n paragraph: 'paragraph',\n\n // A reference (`[alpha]` or `[]`).\n // Includes `referenceMarker` and an optional `referenceString`.\n reference: 'reference',\n\n // A reference marker (`[` or `]`).\n referenceMarker: 'referenceMarker',\n\n // Reference text (`alpha`).\n // Includes string.\n referenceString: 'referenceString',\n\n // A resource (`(https://example.com \"alpha\")`).\n // Includes `resourceMarker`, an optional `resourceDestination` with an optional\n // `whitespace` and `resourceTitle`.\n resource: 'resource',\n\n // A resource destination (`https://example.com`).\n // Includes `resourceDestinationLiteral` or `resourceDestinationRaw`.\n resourceDestination: 'resourceDestination',\n\n // A literal resource destination (`<https://example.com>`).\n // Includes `resourceDestinationLiteralMarker` and optionally\n // `resourceDestinationString`.\n resourceDestinationLiteral: 'resourceDestinationLiteral',\n\n // A resource destination marker (`<` or `>`).\n resourceDestinationLiteralMarker: 'resourceDestinationLiteralMarker',\n\n // A raw resource destination (`https://example.com`).\n // Includes `resourceDestinationString`.\n resourceDestinationRaw: 'resourceDestinationRaw',\n\n // Resource destination text (`https://example.com`).\n // Includes string.\n resourceDestinationString: 'resourceDestinationString',\n\n // A resource marker (`(` or `)`).\n resourceMarker: 'resourceMarker',\n\n // A resource title (`\"alpha\"`, `'alpha'`, or `(alpha)`).\n // Includes `resourceTitleMarker` and optionally `resourceTitleString`.\n resourceTitle: 'resourceTitle',\n\n // A resource title marker (`\"`, `'`, `(`, or `)`).\n resourceTitleMarker: 'resourceTitleMarker',\n\n // Resource destination title (`alpha`).\n // Includes string.\n resourceTitleString: 'resourceTitleString',\n\n // Whole setext heading:\n //\n // ```markdown\n // alpha\n // bravo\n // =====\n // ```\n //\n // Includes `setextHeadingText`, `lineEnding`, `linePrefix`, and\n // `setextHeadingLine`.\n setextHeading: 'setextHeading',\n\n // Content in a setext heading (`alpha\\nbravo`).\n // Includes text.\n setextHeadingText: 'setextHeadingText',\n\n // Underline in a setext heading, including whitespace suffix (`==`).\n // Includes `setextHeadingLineSequence`.\n setextHeadingLine: 'setextHeadingLine',\n\n // Sequence of equals or dash characters in underline in a setext heading (`-`).\n setextHeadingLineSequence: 'setextHeadingLineSequence',\n\n // Strong (`**alpha**`).\n // Includes `strongSequence` and `strongText`.\n strong: 'strong',\n\n // Sequence of strong markers (`**` or `__`).\n strongSequence: 'strongSequence',\n\n // Strong text (`alpha`).\n // Includes text.\n strongText: 'strongText',\n\n // Whole thematic break:\n //\n // ```markdown\n // * * *\n // ```\n //\n // Includes `thematicBreakSequence` and `whitespace`.\n thematicBreak: 'thematicBreak',\n\n // A sequence of one or more thematic break markers (`***`).\n thematicBreakSequence: 'thematicBreakSequence',\n\n // Whole block quote:\n //\n // ```markdown\n // > a\n // >\n // > b\n // ```\n //\n // Includes `blockQuotePrefix` and flow.\n blockQuote: 'blockQuote',\n // The `>` or `> ` of a block quote.\n blockQuotePrefix: 'blockQuotePrefix',\n // The `>` of a block quote prefix.\n blockQuoteMarker: 'blockQuoteMarker',\n // The optional ` ` of a block quote prefix.\n blockQuotePrefixWhitespace: 'blockQuotePrefixWhitespace',\n\n // Whole unordered list:\n //\n // ```markdown\n // - a\n // b\n // ```\n //\n // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further\n // lines.\n listOrdered: 'listOrdered',\n\n // Whole ordered list:\n //\n // ```markdown\n // 1. a\n // b\n // ```\n //\n // Includes `listItemPrefix`, flow, and optionally `listItemIndent` on further\n // lines.\n listUnordered: 'listUnordered',\n\n // The indent of further list item lines.\n listItemIndent: 'listItemIndent',\n\n // A marker, as in, `*`, `+`, `-`, `.`, or `)`.\n listItemMarker: 'listItemMarker',\n\n // The thing that starts a list item, such as `1. `.\n // Includes `listItemValue` if ordered, `listItemMarker`, and\n // `listItemPrefixWhitespace` (unless followed by a line ending).\n listItemPrefix: 'listItemPrefix',\n\n // The whitespace after a marker.\n listItemPrefixWhitespace: 'listItemPrefixWhitespace',\n\n // The numerical value of an ordered item.\n listItemValue: 'listItemValue',\n\n // Internal types used for subtokenizers, compiled away\n chunkDocument: 'chunkDocument',\n chunkContent: 'chunkContent',\n chunkFlow: 'chunkFlow',\n chunkText: 'chunkText',\n chunkString: 'chunkString'\n})\n","/**\n * This module is compiled away!\n *\n * While micromark works based on character codes, this module includes the\n * string versions of ’em.\n * The C0 block, except for LF, CR, HT, and w/ the replacement character added,\n * are available here.\n */\nexport const values = /** @type {const} */ ({\n ht: '\\t',\n lf: '\\n',\n cr: '\\r',\n space: ' ',\n exclamationMark: '!',\n quotationMark: '\"',\n numberSign: '#',\n dollarSign: '$',\n percentSign: '%',\n ampersand: '&',\n apostrophe: \"'\",\n leftParenthesis: '(',\n rightParenthesis: ')',\n asterisk: '*',\n plusSign: '+',\n comma: ',',\n dash: '-',\n dot: '.',\n slash: '/',\n digit0: '0',\n digit1: '1',\n digit2: '2',\n digit3: '3',\n digit4: '4',\n digit5: '5',\n digit6: '6',\n digit7: '7',\n digit8: '8',\n digit9: '9',\n colon: ':',\n semicolon: ';',\n lessThan: '<',\n equalsTo: '=',\n greaterThan: '>',\n questionMark: '?',\n atSign: '@',\n uppercaseA: 'A',\n uppercaseB: 'B',\n uppercaseC: 'C',\n uppercaseD: 'D',\n uppercaseE: 'E',\n uppercaseF: 'F',\n uppercaseG: 'G',\n uppercaseH: 'H',\n uppercaseI: 'I',\n uppercaseJ: 'J',\n uppercaseK: 'K',\n uppercaseL: 'L',\n uppercaseM: 'M',\n uppercaseN: 'N',\n uppercaseO: 'O',\n uppercaseP: 'P',\n uppercaseQ: 'Q',\n uppercaseR: 'R',\n uppercaseS: 'S',\n uppercaseT: 'T',\n uppercaseU: 'U',\n uppercaseV: 'V',\n uppercaseW: 'W',\n uppercaseX: 'X',\n uppercaseY: 'Y',\n uppercaseZ: 'Z',\n leftSquareBracket: '[',\n backslash: '\\\\',\n rightSquareBracket: ']',\n caret: '^',\n underscore: '_',\n graveAccent: '`',\n lowercaseA: 'a',\n lowercaseB: 'b',\n lowercaseC: 'c',\n lowercaseD: 'd',\n lowercaseE: 'e',\n lowercaseF: 'f',\n lowercaseG: 'g',\n lowercaseH: 'h',\n lowercaseI: 'i',\n lowercaseJ: 'j',\n lowercaseK: 'k',\n lowercaseL: 'l',\n lowercaseM: 'm',\n lowercaseN: 'n',\n lowercaseO: 'o',\n lowercaseP: 'p',\n lowercaseQ: 'q',\n lowercaseR: 'r',\n lowercaseS: 's',\n lowercaseT: 't',\n lowercaseU: 'u',\n lowercaseV: 'v',\n lowercaseW: 'w',\n lowercaseX: 'x',\n lowercaseY: 'y',\n lowercaseZ: 'z',\n leftCurlyBrace: '{',\n verticalBar: '|',\n rightCurlyBrace: '}',\n tilde: '~',\n replacementCharacter: '�'\n})\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {codes} from 'micromark-util-symbol'\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < codes.space || code === codes.del)\n )\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/)\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < codes.horizontalTab\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < codes.nul || code === codes.space)\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return (\n code === codes.horizontalTab ||\n code === codes.virtualSpace ||\n code === codes.space\n )\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u)\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/)\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => boolean}\n */\nfunction regexCheck(regex) {\n return check\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code))\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n return d\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n /** @type {Readonly<ActionTuple>} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<UnistParent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array<Parents>, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array<string>`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array<PhrasingContent> | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array<Node>`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array<Pair>} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {import('unist-util-visit-parents').BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array<Nodes> | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array<Parents>} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array<Nodes>} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array<ConstructName>} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array<PhrasingContent> | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","import {values} from 'micromark-util-symbol'\n\n/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercaseâ€, such as U+03F4 (`Ï´`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return (\n value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, values.space)\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercaseâ€, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n state.indentLines(state.containerFlow(node, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: <https://github.com/syntax-tree/mdast-util-to-markdown/blob/8ce8dbf/lib/unsafe.js#L14>\n *\n * @type {Array<ConstructName>}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray<string|null|undefined>} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible†size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['ä¸æ–‡', 'Charlie'],\n * ['👩â€â¤ï¸â€ðŸ‘©', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | ä¸æ–‡ | Charlie |\n * | 👩â€â¤ï¸â€ðŸ‘© | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['ä¸æ–‡', 'Charlie'],\n * ['👩â€â¤ï¸â€ðŸ‘©', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | ä¸æ–‡ | Charlie |\n * | 👩â€â¤ï¸â€ðŸ‘© | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray<ReadonlyArray<string|null|undefined>>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array<number>} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array<Array<string>>} Cells per row. */\n const cellMatrix = []\n /** @type {Array<Array<number>>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array<number>} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array<string>} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array<string>} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @callback Handler\n * Handle a value, with a certain ID field set to a certain value.\n * The ID field is passed to `zwitch`, and it’s value is this function’s\n * place on the `handlers` record.\n * @param {...any} parameters\n * Arbitrary parameters passed to the zwitch.\n * The first will be an object with a certain ID field set to a certain value.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback UnknownHandler\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @param {unknown} value\n * An object with a certain ID field set to an unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {any}\n * Anything!\n */\n\n/**\n * @callback InvalidHandler\n * Handle values that do not have a certain ID field.\n * @param {unknown} value\n * Any unknown value.\n * @param {...any} rest\n * Arbitrary parameters passed to the zwitch.\n * @returns {void|null|undefined|never}\n * This should crash or return nothing.\n */\n\n/**\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @typedef Options\n * Configuration (required).\n * @property {Invalid} [invalid]\n * Handler to use for invalid values.\n * @property {Unknown} [unknown]\n * Handler to use for unknown values.\n * @property {Handlers} [handlers]\n * Handlers to use.\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Handle values based on a field.\n *\n * @template {InvalidHandler} [Invalid=InvalidHandler]\n * @template {UnknownHandler} [Unknown=UnknownHandler]\n * @template {Record<string, Handler>} [Handlers=Record<string, Handler>]\n * @param {string} key\n * Field to switch on.\n * @param {Options<Invalid, Unknown, Handlers>} [options]\n * Configuration (required).\n * @returns {{unknown: Unknown, invalid: Invalid, handlers: Handlers, (...parameters: Parameters<Handlers[keyof Handlers]>): ReturnType<Handlers[keyof Handlers]>, (...parameters: Parameters<Unknown>): ReturnType<Unknown>}}\n */\nexport function zwitch(key, options) {\n const settings = options || {}\n\n /**\n * Handle one value.\n *\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid†handler will be called.\n * If `value` has an unknown `key`, the special “unknown†handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @this {unknown}\n * Any context object.\n * @param {unknown} [value]\n * Any value.\n * @param {...unknown} parameters\n * Arbitrary parameters passed to the zwitch.\n * @property {Handler} invalid\n * Handle for values that do not have a certain ID field.\n * @property {Handler} unknown\n * Handle values that do have a certain ID field, but it’s set to a value\n * that is not listed in the `handlers` record.\n * @property {Handlers} handlers\n * Record of handlers.\n * @returns {unknown}\n * Anything.\n */\n function one(value, ...parameters) {\n /** @type {Handler|undefined} */\n let fn = one.invalid\n const handlers = one.handlers\n\n if (value && own.call(value, key)) {\n // @ts-expect-error Indexable.\n const id = String(value[key])\n // @ts-expect-error Indexable.\n fn = own.call(handlers, id) ? handlers[id] : one.unknown\n }\n\n if (fn) {\n return fn.call(this, value, ...parameters)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n // @ts-expect-error: matches!\n return one\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array<ConstructName>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['fence'], null | undefined>}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['quote'], null | undefined>}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['emphasis'], null | undefined>}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form†depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array<UnistParent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bullet'], null | undefined>}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['bulletOrdered'], null | undefined>}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['rule'], null | undefined>}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['listItemIndent'], null | undefined>}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['strong'], null | undefined>}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form†depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude<Options['ruleRepetition'], null | undefined>}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","import {codes, values} from 'micromark-util-symbol'\n\n/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < codes.ht ||\n code === codes.vt ||\n (code > codes.cr && code < codes.space) ||\n // Control character (DEL) of C0, and C1 controls.\n (code > codes.tilde && code < 160) ||\n // Lone high surrogates and low surrogates.\n (code > 55_295 && code < 57_344) ||\n // Noncharacters.\n (code > 64_975 && code < 65_008) ||\n /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 ||\n (code & 65_535) === 65_534 ||\n /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111\n ) {\n return values.replacementCharacter\n }\n\n return String.fromCodePoint(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {codes, constants} from 'micromark-util-symbol'\n\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string†content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n\n if (head === codes.numberSign) {\n const head = $2.charCodeAt(1)\n const hex = head === codes.lowercaseX || head === codes.uppercaseX\n return decodeNumericCharacterReference(\n $2.slice(hex ? 2 : 1),\n hex ? constants.numericBaseHexadecimal : constants.numericBaseDecimal\n )\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array<Array<string>>} matrix\n * @param {Array<string | null | undefined> | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array<Array<string>>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array<string>} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array<FromMarkdownExtension>}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","import {constants} from 'micromark-util-symbol'\n\n/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {Array<unknown>} */\n let parameters\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < constants.v8MaxSafeChunkSize) {\n parameters = Array.from(items)\n parameters.unshift(start, remove)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove)\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(\n chunkStart,\n chunkStart + constants.v8MaxSafeChunkSize\n )\n parameters.unshift(start, 0)\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters)\n\n chunkStart += constants.v8MaxSafeChunkSize\n start += constants.v8MaxSafeChunkSize\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Handles} Handles\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {Array<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * @param {Array<unknown>} list\n * @returns {undefined}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {Array<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * A single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nimport {codes} from 'micromark-util-symbol'\n\nconst wwwPrefix = {tokenize: tokenizeWwwPrefix, partial: true}\nconst domain = {tokenize: tokenizeDomain, partial: true}\nconst path = {tokenize: tokenizePath, partial: true}\nconst trail = {tokenize: tokenizeTrail, partial: true}\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n}\n\nconst wwwAutolink = {tokenize: tokenizeWwwAutolink, previous: previousWww}\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n}\nconst emailAutolink = {tokenize: tokenizeEmailAutolink, previous: previousEmail}\n\n/** @type {ConstructRecord} */\nconst text = {}\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {text}\n}\n\n/** @type {Code} */\nlet code = codes.digit0\n\n// Add alphanumerics.\nwhile (code < codes.leftCurlyBrace) {\n text[code] = emailAutolink\n code++\n if (code === codes.colon) code = codes.uppercaseA\n else if (code === codes.leftSquareBracket) code = codes.lowercaseA\n}\n\ntext[codes.plusSign] = emailAutolink\ntext[codes.dash] = emailAutolink\ntext[codes.dot] = emailAutolink\ntext[codes.underscore] = emailAutolink\ntext[codes.uppercaseH] = [emailAutolink, protocolAutolink]\ntext[codes.lowercaseH] = [emailAutolink, protocolAutolink]\ntext[codes.uppercaseW] = [emailAutolink, wwwAutolink]\ntext[codes.lowercaseW] = [emailAutolink, wwwAutolink]\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean | undefined} */\n let dot\n /** @type {boolean} */\n let data\n\n return start\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n if (code === codes.atSign) {\n effects.consume(code)\n return emailDomain\n }\n\n return nok(code)\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L318>\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === codes.dot) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code)\n }\n\n // Alphanumerical, `-`, and `_`.\n if (\n code === codes.dash ||\n code === codes.underscore ||\n asciiAlphanumeric(code)\n ) {\n data = true\n effects.consume(code)\n return emailDomain\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code)\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code)\n dot = true\n return emailDomain\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L332>.\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n\n return wwwStart\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (\n (code !== codes.uppercaseW && code !== codes.lowercaseW) ||\n !previousWww.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code)\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this\n let buffer = ''\n let seen = false\n\n return protocolStart\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if (\n (code === codes.uppercaseH || code === codes.lowercaseH) &&\n previousProtocol.call(self, self.previous) &&\n !previousUnbalanced(self.events)\n ) {\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n\n return nok(code)\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n\n if (code === codes.colon) {\n const protocol = buffer.toLowerCase()\n\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code)\n return protocolSlashesInside\n }\n }\n\n return nok(code)\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === codes.slash) {\n effects.consume(code)\n\n if (seen) {\n return afterProtocol\n }\n\n seen = true\n return protocolSlashesInside\n }\n\n return nok(code)\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === codes.eof ||\n asciiControl(code) ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code)\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0\n\n return wwwPrefixInside\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === codes.uppercaseW || code === codes.lowercaseW) && size < 3) {\n size++\n effects.consume(code)\n return wwwPrefixInside\n }\n\n if (code === codes.dot && size === 3) {\n effects.consume(code)\n return wwwPrefixAfter\n }\n\n return nok(code)\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === codes.eof ? nok(code) : ok(code)\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment\n /** @type {boolean | undefined} */\n let seen\n\n return domainInside\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === codes.dot || code === codes.underscore) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L12>.\n if (\n code === codes.eof ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n (code !== codes.dash && unicodePunctuation(code))\n ) {\n return domainAfter(code)\n }\n\n seen = true\n effects.consume(code)\n return domainInside\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === codes.underscore) {\n underscoreInLastSegment = true\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment\n underscoreInLastSegment = undefined\n }\n\n effects.consume(code)\n return domainInside\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // <https://github.com/github/cmark-gfm/issues/279>\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code)\n }\n\n return ok(code)\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0\n let sizeClose = 0\n\n return pathInside\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === codes.leftParenthesis) {\n sizeOpen++\n effects.consume(code)\n return pathInside\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === codes.rightParenthesis && sizeClose < sizeOpen) {\n return pathAtPunctuation(code)\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (\n code === codes.exclamationMark ||\n code === codes.quotationMark ||\n code === codes.ampersand ||\n code === codes.apostrophe ||\n code === codes.rightParenthesis ||\n code === codes.asterisk ||\n code === codes.comma ||\n code === codes.dot ||\n code === codes.colon ||\n code === codes.semicolon ||\n code === codes.lessThan ||\n code === codes.questionMark ||\n code === codes.rightSquareBracket ||\n code === codes.underscore ||\n code === codes.tilde\n ) {\n return effects.check(trail, ok, pathAtPunctuation)(code)\n }\n\n if (\n code === codes.eof ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n\n effects.consume(code)\n return pathInside\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === codes.rightParenthesis) {\n sizeClose++\n }\n\n effects.consume(code)\n return pathInside\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (\n code === codes.exclamationMark ||\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.rightParenthesis ||\n code === codes.asterisk ||\n code === codes.comma ||\n code === codes.dot ||\n code === codes.colon ||\n code === codes.semicolon ||\n code === codes.questionMark ||\n code === codes.underscore ||\n code === codes.tilde\n ) {\n effects.consume(code)\n return trail\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === codes.ampersand) {\n effects.consume(code)\n return trailCharRefStart\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // <https://github.com/github/cmark-gfm/issues/278>.\n // Check that it is not followed by `(` or `[`.\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return trailBracketAfter\n }\n\n if (\n // `<` is an end.\n code === codes.lessThan ||\n // So is whitespace.\n code === codes.eof ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n\n return nok(code)\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of <https://github.com/github/cmark-gfm/issues/278> for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (\n code === codes.eof ||\n code === codes.leftParenthesis ||\n code === codes.leftSquareBracket ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n\n return trail(code)\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharRefInside(code) : nok(code)\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === codes.semicolon) {\n effects.consume(code)\n return trail\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return trailCharRefInside\n }\n\n // It’s not a trail.\n return nok(code)\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code)\n return after\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code)\n }\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L156>.\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return (\n code === codes.eof ||\n code === codes.leftParenthesis ||\n code === codes.asterisk ||\n code === codes.underscore ||\n code === codes.leftSquareBracket ||\n code === codes.rightSquareBracket ||\n code === codes.tilde ||\n markdownLineEndingOrSpace(code)\n )\n}\n\n/**\n * See:\n * <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L214>.\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code)\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside†atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: <https://github.com/github/cmark-gfm/blob/ef1cfcb/extensions/autolink.c#L307>.\n // Other than slash, every preceding character is allowed.\n return !(code === codes.slash || gfmAtext(code))\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return (\n code === codes.plusSign ||\n code === codes.dash ||\n code === codes.dot ||\n code === codes.underscore ||\n asciiAlphanumeric(code)\n )\n}\n\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n\n while (index--) {\n const token = events[index][1]\n\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into†w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n\n return result\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\nimport {codes, values} from 'micromark-util-symbol'\n\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n\n if (!protocol) {\n return value\n }\n\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === codes.percentSign &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = values.replacementCharacter\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n\n if (skip) {\n index += skip\n skip = 0\n }\n }\n\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nimport {codes, constants} from 'micromark-util-symbol'\n\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === codes.eof ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return constants.characterGroupWhitespace\n }\n\n if (unicodePunctuation(code)) {\n return constants.characterGroupPunctuation\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {Array<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array<Event>} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n\n openingSequence = {\n type: use > 1 ? types.strongSequence : types.emphasisSequence,\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? types.strongSequence : types.emphasisSequence,\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? types.strongText : types.emphasisText,\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? types.strong : types.emphasis,\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n assert(\n context.parser.constructs.insideSpan.null,\n 'expected `insideSpan` to be populated'\n )\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable<Code>} */\n let marker\n\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(\n code === codes.asterisk || code === codes.underscore,\n 'expected asterisk or underscore'\n )\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n assert(attentionMarkers, 'expected `attentionMarkers` to be populated')\n\n const open =\n !after ||\n (after === constants.characterGroupPunctuation && before) ||\n attentionMarkers.includes(code)\n const close =\n !before ||\n (before === constants.characterGroupPunctuation && after) ||\n attentionMarkers.includes(previous)\n\n token._open = Boolean(\n marker === codes.asterisk ? open : open && (before || !close)\n )\n token._close = Boolean(\n marker === codes.asterisk ? close : close && (after || !open)\n )\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const autolink = {name: 'autolink', tokenize: tokenizeAutolink}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.lessThan, 'expected `<`')\n effects.enter(types.autolink)\n effects.enter(types.autolinkMarker)\n effects.consume(code)\n effects.exit(types.autolinkMarker)\n effects.enter(types.autolinkProtocol)\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n if (code === codes.atSign) {\n return nok(code)\n }\n\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n code === codes.plusSign ||\n code === codes.dash ||\n code === codes.dot ||\n asciiAlphanumeric(code)\n ) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === codes.colon) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === codes.plusSign ||\n code === codes.dash ||\n code === codes.dot ||\n asciiAlphanumeric(code)) &&\n size++ < constants.autolinkSchemeSizeMax\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === codes.greaterThan) {\n effects.exit(types.autolinkProtocol)\n effects.enter(types.autolinkMarker)\n effects.consume(code)\n effects.exit(types.autolinkMarker)\n effects.exit(types.autolink)\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (\n code === codes.eof ||\n code === codes.space ||\n code === codes.lessThan ||\n asciiControl(code)\n ) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === codes.atSign) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === codes.dot) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === codes.greaterThan) {\n // Exit, then change the token type.\n effects.exit(types.autolinkProtocol).type = types.autolinkEmail\n effects.enter(types.autolinkMarker)\n effects.consume(code)\n effects.exit(types.autolinkMarker)\n effects.exit(types.autolink)\n return ok\n }\n\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if (\n (code === codes.dash || asciiAlphanumeric(code)) &&\n size++ < constants.autolinkDomainSizeMax\n ) {\n const next = code === codes.dash ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownSpace} from 'micromark-util-character'\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `â‰` represents a tab (plus how much it expands) and `â ` represents a\n * single space.\n *\n * ```markdown\n * â‰\n * â â â â \n * â‰â \n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\n\n/** @type {Construct} */\nexport const blankLine = {tokenize: tokenizeBlankLine, partial: true}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code)\n ? factorySpace(effects, after, types.linePrefix)(code)\n : after(code)\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `â ` represents a space character.\n *\n * ```markdown\n * > | â â âŠ\n * ^\n * > | âŠ\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === codes.eof || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {tokenize: tokenizeBlockQuoteContinuation},\n exit\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === codes.greaterThan) {\n const state = self.containerState\n\n assert(state, 'expected `containerState` to be defined in container')\n\n if (!state.open) {\n effects.enter(types.blockQuote, {_container: true})\n state.open = true\n }\n\n effects.enter(types.blockQuotePrefix)\n effects.enter(types.blockQuoteMarker)\n effects.consume(code)\n effects.exit(types.blockQuoteMarker)\n return after\n }\n\n return nok(code)\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(types.blockQuotePrefixWhitespace)\n effects.consume(code)\n effects.exit(types.blockQuotePrefixWhitespace)\n effects.exit(types.blockQuotePrefix)\n return ok\n }\n\n effects.exit(types.blockQuotePrefix)\n return ok(code)\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this\n\n return contStart\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n return factorySpace(\n effects,\n contBefore,\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n }\n\n return contBefore(code)\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code)\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(types.blockQuote)\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.backslash, 'expected `\\\\`')\n effects.enter(types.characterEscape)\n effects.enter(types.escapeMarker)\n effects.consume(code)\n effects.exit(types.escapeMarker)\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(types.characterEscapeValue)\n effects.consume(code)\n effects.exit(types.characterEscapeValue)\n effects.exit(types.characterEscape)\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.ampersand, 'expected `&`')\n effects.enter(types.characterReference)\n effects.enter(types.characterReferenceMarker)\n effects.consume(code)\n effects.exit(types.characterReferenceMarker)\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === codes.numberSign) {\n effects.enter(types.characterReferenceMarkerNumeric)\n effects.consume(code)\n effects.exit(types.characterReferenceMarkerNumeric)\n return numeric\n }\n\n effects.enter(types.characterReferenceValue)\n max = constants.characterReferenceNamedSizeMax\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === codes.uppercaseX || code === codes.lowercaseX) {\n effects.enter(types.characterReferenceMarkerHexadecimal)\n effects.consume(code)\n effects.exit(types.characterReferenceMarkerHexadecimal)\n effects.enter(types.characterReferenceValue)\n max = constants.characterReferenceHexadecimalSizeMax\n test = asciiHexDigit\n return value\n }\n\n effects.enter(types.characterReferenceValue)\n max = constants.characterReferenceDecimalSizeMax\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a	b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === codes.semicolon && size) {\n const token = effects.exit(types.characterReferenceValue)\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(types.characterReferenceMarker)\n effects.consume(code)\n effects.exit(types.characterReferenceMarker)\n effects.exit(types.characterReference)\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {tokenize: tokenizeCloseStart, partial: true}\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n let marker\n\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n assert(\n code === codes.graveAccent || code === codes.tilde,\n 'expected `` ` `` or `~`'\n )\n\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === types.linePrefix\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n\n marker = code\n effects.enter(types.codeFenced)\n effects.enter(types.codeFencedFence)\n effects.enter(types.codeFencedFenceSequence)\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n\n if (sizeOpen < constants.codeFencedSequenceSizeMin) {\n return nok(code)\n }\n\n effects.exit(types.codeFencedFenceSequence)\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, types.whitespace)(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.codeFencedFence)\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n\n effects.enter(types.codeFencedFenceInfo)\n effects.enter(types.chunkString, {contentType: constants.contentTypeString})\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.chunkString)\n effects.exit(types.codeFencedFenceInfo)\n return infoBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.exit(types.chunkString)\n effects.exit(types.codeFencedFenceInfo)\n return factorySpace(effects, metaBefore, types.whitespace)(code)\n }\n\n if (code === codes.graveAccent && code === marker) {\n return nok(code)\n }\n\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n\n effects.enter(types.codeFencedFenceMeta)\n effects.enter(types.chunkString, {contentType: constants.contentTypeString})\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.chunkString)\n effects.exit(types.codeFencedFenceMeta)\n return infoBefore(code)\n }\n\n if (code === codes.graveAccent && code === marker) {\n return nok(code)\n }\n\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n assert(markdownLineEnding(code), 'expected eol')\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n assert(markdownLineEnding(code), 'expected eol')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n types.linePrefix,\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n\n effects.enter(types.codeFlowValue)\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.codeFlowValue)\n return beforeContentChunk(code)\n }\n\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(types.codeFenced)\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n assert(markdownLineEnding(code), 'expected eol')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n // To do: `enter` here or in next state?\n effects.enter(types.codeFencedFence)\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(types.codeFencedFenceSequence)\n return sequenceClose(code)\n }\n\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n\n if (size >= sizeOpen) {\n effects.exit(types.codeFencedFenceSequence)\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, types.whitespace)(code)\n : sequenceCloseAfter(code)\n }\n\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.codeFencedFence)\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n assert(markdownLineEnding(code), 'expected eol')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n\n/** @type {Construct} */\nconst furtherStart = {tokenize: tokenizeFurtherStart, partial: true}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n assert(markdownSpace(code))\n effects.enter(types.codeIndented)\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(\n effects,\n afterPrefix,\n types.linePrefix,\n constants.tabSize + 1\n )(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === types.linePrefix &&\n tail[2].sliceSerialize(tail[1], true).length >= constants.tabSize\n ? atBreak(code)\n : nok(code)\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === codes.eof) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code)\n }\n\n effects.enter(types.codeFlowValue)\n return inside(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.codeFlowValue)\n return atBreak(code)\n }\n\n effects.consume(code)\n return inside\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(types.codeIndented)\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this\n\n return furtherStart\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return furtherStart\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(\n effects,\n afterPrefix,\n types.linePrefix,\n constants.tabSize + 1\n )(code)\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === types.linePrefix &&\n tail[2].sliceSerialize(tail[1], true).length >= constants.tabSize\n ? ok(code)\n : markdownLineEnding(code)\n ? furtherStart(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === types.lineEnding ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === types.lineEnding ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === types.codeTextData) {\n // Then we have padding.\n events[headEnterIndex][1].type = types.codeTextPadding\n events[tailExitIndex][1].type = types.codeTextPadding\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (\n index !== tailExitIndex &&\n events[index][1].type !== types.lineEnding\n ) {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === types.lineEnding\n ) {\n events[enter][1].type = types.codeTextData\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== codes.graveAccent ||\n this.events[this.events.length - 1][1].type === types.characterEscape\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.graveAccent, 'expected `` ` ``')\n assert(previous.call(self, self.previous), 'expected correct previous')\n effects.enter(types.codeText)\n effects.enter(types.codeTextSequence)\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === codes.graveAccent) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit(types.codeTextSequence)\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === codes.eof) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === codes.space) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === codes.graveAccent) {\n token = effects.enter(types.codeTextSequence)\n size = 0\n return sequenceClose(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return between\n }\n\n // Data.\n effects.enter(types.codeTextData)\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === codes.eof ||\n code === codes.space ||\n code === codes.graveAccent ||\n markdownLineEnding(code)\n ) {\n effects.exit(types.codeTextData)\n return between(code)\n }\n\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === codes.graveAccent) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(types.codeTextSequence)\n effects.exit(types.codeText)\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = types.codeTextData\n return data(code)\n }\n}\n","import {constants} from 'micromark-util-symbol'\n\n/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push[...newElements]` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : []\n /** @type {Array<T>} */\n this.right = []\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError(\n 'Cannot access index `' +\n index +\n '` in a splice buffer of size `' +\n (this.left.length + this.right.length) +\n '`'\n )\n }\n\n if (index < this.left.length) return this.left[index]\n return this.right[this.right.length - index + this.left.length - 1]\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0)\n return this.right.pop()\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop =\n end === null || end === undefined ? Number.POSITIVE_INFINITY : end\n\n if (stop < this.left.length) {\n return this.left.slice(start, stop)\n }\n\n if (start > this.left.length) {\n return this.right\n .slice(\n this.right.length - stop + this.left.length,\n this.right.length - start + this.left.length\n )\n .reverse()\n }\n\n return this.left\n .slice(start)\n .concat(\n this.right.slice(this.right.length - stop + this.left.length).reverse()\n )\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0\n\n this.setCursor(Math.trunc(start))\n const removed = this.right.splice(\n this.right.length - count,\n Number.POSITIVE_INFINITY\n )\n if (items) chunkedPush(this.left, items)\n return removed.reverse()\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY)\n return this.left.pop()\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY)\n this.left.push(item)\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY)\n chunkedPush(this.left, items)\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0)\n this.right.push(item)\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0)\n chunkedPush(this.right, items.reverse())\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (\n n === this.left.length ||\n (n > this.left.length && this.right.length === 0) ||\n (n < 0 && this.left.length === 0)\n )\n return\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY)\n chunkedPush(this.right, removed.reverse())\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(\n this.left.length + this.right.length - n,\n Number.POSITIVE_INFINITY\n )\n chunkedPush(this.left, removed.reverse())\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0\n\n if (right.length < constants.v8MaxSafeChunkSize) {\n list.push(...right)\n } else {\n while (chunkStart < right.length) {\n list.push(\n ...right.slice(chunkStart, chunkStart + constants.v8MaxSafeChunkSize)\n )\n chunkStart += constants.v8MaxSafeChunkSize\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n */\n\nimport {splice} from 'micromark-util-chunked'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\nimport {SpliceBuffer} from './lib/splice-buffer.js'\n\n// Hidden API exposed for testing.\nexport {SpliceBuffer} from './lib/splice-buffer.js'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n let event\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number} */\n let otherIndex\n /** @type {Event} */\n let otherEvent\n /** @type {Array<Event>} */\n let parameters\n /** @type {Array<Event>} */\n let subevents\n /** @type {boolean | undefined} */\n let more\n const events = new SpliceBuffer(eventsArray)\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events.get(index)\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (\n index &&\n event[1].type === types.chunkFlow &&\n events.get(index - 1)[1].type === types.listItemPrefix\n ) {\n assert(event[1]._tokenizer, 'expected `_tokenizer` on subtokens')\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === types.lineEndingBlank\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === types.content\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === types.content) {\n break\n }\n\n if (subevents[otherIndex][1].type === types.chunkText) {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events.get(otherIndex)\n\n if (\n otherEvent[1].type === types.lineEnding ||\n otherEvent[1].type === types.lineEndingBlank\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = types.lineEndingBlank\n }\n\n otherEvent[1].type = types.lineEnding\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events.get(lineIndex)[1].start)\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n events.splice(lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0))\n return !more\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1]\n const context = events.get(eventIndex)[2]\n let startPosition = eventIndex - 1\n /** @type {Array<number>} */\n const startPositions = []\n assert(token.contentType, 'expected `contentType` on subtokens')\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {Array<[number, number]>} */\n const jumps = []\n /** @type {Record<string, number>} */\n const gaps = {}\n /** @type {Array<Chunk>} */\n let stream\n /** @type {Token | undefined} */\n let previous\n let index = -1\n /** @type {Token | undefined} */\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start]\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n\n assert(\n !previous || current.previous === previous,\n 'expected previous to match'\n )\n assert(!previous || previous.next === current, 'expected next to match')\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(codes.eof)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n }\n\n // Unravel the next token.\n previous = current\n current = current.next\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n assert(current, 'expected a current token')\n start = index + 1\n breaks.push(start)\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n }\n\n // Help GC.\n tokenizer.events = []\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n assert(!current.next, 'expected no next token')\n } else {\n breaks.pop()\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n assert(start !== undefined, 'expected a start position when splicing')\n jumps.push([start, start + slice.length - 1])\n events.splice(start, 2, slice)\n }\n\n jumps.reverse()\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {tokenize: tokenizeContent, resolve: resolveContent}\n\n/** @type {Construct} */\nconst continuationConstruct = {tokenize: tokenizeContinuation, partial: true}\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous\n\n return chunkStart\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n assert(\n code !== codes.eof && !markdownLineEnding(code),\n 'expected no eof or eol'\n )\n\n effects.enter(types.content)\n previous = effects.enter(types.chunkContent, {\n contentType: constants.contentTypeContent\n })\n return chunkInside(code)\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === codes.eof) {\n return contentEnd(code)\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n }\n\n // Data.\n effects.consume(code)\n return chunkInside\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(types.chunkContent)\n effects.exit(types.content)\n return ok(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n assert(markdownLineEnding(code), 'expected eol')\n effects.consume(code)\n effects.exit(types.chunkContent)\n assert(previous, 'expected previous token')\n previous.next = effects.enter(types.chunkContent, {\n contentType: constants.contentTypeContent,\n previous\n })\n previous = previous.next\n return chunkInside\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n\n return startLookahead\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n assert(markdownLineEnding(code), 'expected a line ending')\n effects.exit(types.chunkContent)\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return factorySpace(effects, prefixed, types.linePrefix)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n return nok(code)\n }\n\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === types.linePrefix &&\n tail[2].sliceSerialize(tail[1], true).length >= constants.tabSize\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\n\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n\n return start\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === codes.lessThan) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return enclosedBefore\n }\n\n // ASCII control, space, closing paren.\n if (\n code === codes.eof ||\n code === codes.space ||\n code === codes.rightParenthesis ||\n asciiControl(code)\n ) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter(types.chunkString, {contentType: constants.contentTypeString})\n return raw(code)\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === codes.greaterThan) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter(types.chunkString, {contentType: constants.contentTypeString})\n return enclosed(code)\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === codes.greaterThan) {\n effects.exit(types.chunkString)\n effects.exit(stringType)\n return enclosedBefore(code)\n }\n\n if (\n code === codes.eof ||\n code === codes.lessThan ||\n markdownLineEnding(code)\n ) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === codes.backslash ? enclosedEscape : enclosed\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (\n code === codes.lessThan ||\n code === codes.greaterThan ||\n code === codes.backslash\n ) {\n effects.consume(code)\n return enclosed\n }\n\n return enclosed(code)\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (\n !balance &&\n (code === codes.eof ||\n code === codes.rightParenthesis ||\n markdownLineEndingOrSpace(code))\n ) {\n effects.exit(types.chunkString)\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (balance < limit && code === codes.leftParenthesis) {\n effects.consume(code)\n balance++\n return raw\n }\n\n if (code === codes.rightParenthesis) {\n effects.consume(code)\n balance--\n return raw\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (\n code === codes.eof ||\n code === codes.space ||\n code === codes.leftParenthesis ||\n asciiControl(code)\n ) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === codes.backslash ? rawEscape : raw\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (\n code === codes.leftParenthesis ||\n code === codes.rightParenthesis ||\n code === codes.backslash\n ) {\n effects.consume(code)\n return raw\n }\n\n return raw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n let seen\n\n return start\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.leftSquareBracket, 'expected `[`')\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (\n size > constants.linkReferenceSizeMax ||\n code === codes.eof ||\n code === codes.leftSquareBracket ||\n (code === codes.rightSquareBracket && !seen) ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n (code === codes.caret &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs)\n ) {\n return nok(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return atBreak\n }\n\n effects.enter(types.chunkString, {contentType: constants.contentTypeString})\n return labelInside(code)\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n code === codes.eof ||\n code === codes.leftSquareBracket ||\n code === codes.rightSquareBracket ||\n markdownLineEnding(code) ||\n size++ > constants.linkReferenceSizeMax\n ) {\n effects.exit(types.chunkString)\n return atBreak(code)\n }\n\n effects.consume(code)\n if (!seen) seen = !markdownSpace(code)\n return code === codes.backslash ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (\n code === codes.leftSquareBracket ||\n code === codes.backslash ||\n code === codes.rightSquareBracket\n ) {\n effects.consume(code)\n size++\n return labelInside\n }\n\n return labelInside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenType} TokenType\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\n\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n\n return start\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.leftParenthesis\n ) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === codes.leftParenthesis ? codes.rightParenthesis : code\n return begin\n }\n\n return nok(code)\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atBreak(code)\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return begin(marker)\n }\n\n if (code === codes.eof) {\n return nok(code)\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return factorySpace(effects, atBreak, types.linePrefix)\n }\n\n effects.enter(types.chunkString, {contentType: constants.contentTypeString})\n return inside(code)\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.chunkString)\n return atBreak(code)\n }\n\n effects.consume(code)\n return code === codes.backslash ? escape : inside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === codes.backslash) {\n effects.consume(code)\n return inside\n }\n\n return inside(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {types} from 'micromark-util-symbol'\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n\n return start\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? types.linePrefix : types.lineSuffix\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const definition = {name: 'definition', tokenize: tokenizeDefinition}\n\n/** @type {Construct} */\nconst titleBefore = {tokenize: tokenizeTitleBefore, partial: true}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n let identifier\n\n return start\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(types.definition)\n return before(code)\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n assert(code === codes.leftSquareBracket, 'expected `[`')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n types.definitionLabel,\n types.definitionLabelMarker,\n types.definitionLabelString\n )(code)\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === codes.colon) {\n effects.enter(types.definitionMarker)\n effects.consume(code)\n effects.exit(types.definitionMarker)\n return markerAfter\n }\n\n return nok(code)\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, destinationBefore)(code)\n : destinationBefore(code)\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(\n effects,\n destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok,\n types.definitionDestination,\n types.definitionDestinationLiteral,\n types.definitionDestinationLiteralMarker,\n types.definitionDestinationRaw,\n types.definitionDestinationString\n )(code)\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code)\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code)\n ? factorySpace(effects, afterWhitespace, types.whitespace)(code)\n : afterWhitespace(code)\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.definition)\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier)\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code)\n }\n\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, beforeMarker)(code)\n : nok(code)\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(\n effects,\n titleAfter,\n nok,\n types.definitionTitle,\n types.definitionTitleMarker,\n types.definitionTitleString\n )(code)\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code)\n ? factorySpace(\n effects,\n titleAfterOptionalWhitespace,\n types.whitespace\n )(code)\n : titleAfterOptionalWhitespace(code)\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === codes.eof || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.backslash, 'expected `\\\\`')\n effects.enter(types.hardBreakEscape)\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(types.hardBreakEscape)\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n let content\n /** @type {Token} */\n let text\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === types.whitespace) {\n contentStart += 2\n }\n\n // Suffix whitespace, part of the closing.\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === types.whitespace\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === types.atxHeadingSequence &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === types.whitespace))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: types.atxHeadingText,\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: types.chunkText,\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: constants.contentTypeText\n }\n\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0\n\n return start\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(types.atxHeading)\n return before(code)\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n assert(code === codes.numberSign, 'expected `#`')\n effects.enter(types.atxHeadingSequence)\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (\n code === codes.numberSign &&\n size++ < constants.atxHeadingOpeningFenceSizeMax\n ) {\n effects.consume(code)\n return sequenceOpen\n }\n\n // Always at least one `#`.\n if (code === codes.eof || markdownLineEndingOrSpace(code)) {\n effects.exit(types.atxHeadingSequence)\n return atBreak(code)\n }\n\n return nok(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === codes.numberSign) {\n effects.enter(types.atxHeadingSequence)\n return sequenceFurther(code)\n }\n\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.atxHeading)\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, types.whitespace)(code)\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(types.atxHeadingText)\n return data(code)\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible†hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === codes.numberSign) {\n effects.consume(code)\n return sequenceFurther\n }\n\n effects.exit(types.atxHeadingSequence)\n return atBreak(code)\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === codes.eof ||\n code === codes.numberSign ||\n markdownLineEndingOrSpace(code)\n ) {\n effects.exit(types.atxHeadingText)\n return atBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * List of lowercase HTML “block†tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw†tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\nimport {blankLine} from './blank-line.js'\n\n/** @type {Construct} */\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n\n/** @type {Construct} */\nconst blankLineBefore = {tokenize: tokenizeBlankLineBefore, partial: true}\nconst nonLazyContinuationStart = {\n tokenize: tokenizeNonLazyContinuationStart,\n partial: true\n}\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === types.htmlFlow\n ) {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === types.linePrefix) {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start\n // Remove the line prefix.\n events.splice(index - 2, 2)\n }\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n let marker\n /** @type {boolean} */\n let closingTag\n /** @type {string} */\n let buffer\n /** @type {number} */\n let index\n /** @type {Code} */\n let markerB\n\n return start\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n assert(code === codes.lessThan, 'expected `<`')\n effects.enter(types.htmlFlow)\n effects.enter(types.htmlFlowData)\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === codes.exclamationMark) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === codes.slash) {\n effects.consume(code)\n closingTag = true\n return tagCloseStart\n }\n\n if (code === codes.questionMark) {\n effects.consume(code)\n marker = constants.htmlInstruction\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === codes.dash) {\n effects.consume(code)\n marker = constants.htmlComment\n return commentOpenInside\n }\n\n if (code === codes.leftSquareBracket) {\n effects.consume(code)\n marker = constants.htmlCdata\n index = 0\n return cdataOpenInside\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n marker = constants.htmlDeclaration\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === codes.dash) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = constants.cdataOpeningString\n\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n\n return cdataOpenInside\n }\n\n return nok(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (\n code === codes.eof ||\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n const slash = code === codes.slash\n const name = buffer.toLowerCase()\n\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = constants.htmlRaw\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = constants.htmlBasic\n\n if (slash) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n marker = constants.htmlComplete\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : closingTag\n ? completeClosingTagAfter(code)\n : completeAttributeNameBefore(code)\n }\n\n // ASCII alphanumerical and `-`.\n if (code === codes.dash || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === codes.greaterThan) {\n effects.consume(code)\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === codes.slash) {\n effects.consume(code)\n return completeEnd\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === codes.colon || code === codes.underscore || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (\n code === codes.dash ||\n code === codes.dot ||\n code === codes.colon ||\n code === codes.underscore ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === codes.equalsTo) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (\n code === codes.eof ||\n code === codes.lessThan ||\n code === codes.equalsTo ||\n code === codes.greaterThan ||\n code === codes.graveAccent\n ) {\n return nok(code)\n }\n\n if (code === codes.quotationMark || code === codes.apostrophe) {\n effects.consume(code)\n markerB = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n return completeAttributeValueUnquoted(code)\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code)\n markerB = null\n return completeAttributeValueQuotedAfter\n }\n\n if (code === codes.eof || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (\n code === codes.eof ||\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.slash ||\n code === codes.lessThan ||\n code === codes.equalsTo ||\n code === codes.greaterThan ||\n code === codes.graveAccent ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownSpace(code)\n ) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === codes.greaterThan) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === codes.dash && marker === constants.htmlComment) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === codes.lessThan && marker === constants.htmlRaw) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === codes.greaterThan && marker === constants.htmlDeclaration) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === codes.questionMark && marker === constants.htmlInstruction) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === codes.rightSquareBracket && marker === constants.htmlCdata) {\n effects.consume(code)\n return continuationCdataInside\n }\n\n if (\n markdownLineEnding(code) &&\n (marker === constants.htmlBasic || marker === constants.htmlComplete)\n ) {\n effects.exit(types.htmlFlowData)\n return effects.check(\n blankLineBefore,\n continuationAfter,\n continuationStart\n )(code)\n }\n\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.htmlFlowData)\n return continuationStart(code)\n }\n\n effects.consume(code)\n return continuation\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(\n nonLazyContinuationStart,\n continuationStartNonLazy,\n continuationAfter\n )(code)\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n assert(markdownLineEnding(code))\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return continuationBefore\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n return continuationStart(code)\n }\n\n effects.enter(types.htmlFlowData)\n return continuation(code)\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === codes.slash) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === codes.greaterThan) {\n const name = buffer.toLowerCase()\n\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n\n return continuation(code)\n }\n\n if (asciiAlpha(code) && buffer.length < constants.htmlRawSizeMax) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === codes.greaterThan) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === codes.dash && marker === constants.htmlComment) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.htmlFlowData)\n return continuationAfter(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(types.htmlFlow)\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return after\n }\n\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(markdownLineEnding(code), 'expected a line ending')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const htmlText = {name: 'htmlText', tokenize: tokenizeHtmlText}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code> | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.lessThan, 'expected `<`')\n effects.enter(types.htmlText)\n effects.enter(types.htmlTextData)\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === codes.exclamationMark) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === codes.slash) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === codes.questionMark) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return commentOpenInside\n }\n\n if (code === codes.leftSquareBracket) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return commentEnd\n }\n\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (code === codes.dash) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return commentEnd\n }\n\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === codes.greaterThan\n ? end(code)\n : code === codes.dash\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = constants.cdataOpeningString\n\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === codes.greaterThan) {\n return end(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === codes.eof || code === codes.greaterThan) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (code === codes.questionMark) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === codes.greaterThan ? end(code) : instruction(code)\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === codes.dash || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === codes.dash || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === codes.slash) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === codes.colon || code === codes.underscore || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === codes.dash ||\n code === codes.dot ||\n code === codes.colon ||\n code === codes.underscore ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === codes.equalsTo) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === codes.eof ||\n code === codes.lessThan ||\n code === codes.equalsTo ||\n code === codes.greaterThan ||\n code === codes.graveAccent\n ) {\n return nok(code)\n }\n\n if (code === codes.quotationMark || code === codes.apostrophe) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === codes.eof) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === codes.eof ||\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.lessThan ||\n code === codes.equalsTo ||\n code === codes.graveAccent\n ) {\n return nok(code)\n }\n\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (\n code === codes.slash ||\n code === codes.greaterThan ||\n markdownLineEndingOrSpace(code)\n ) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === codes.greaterThan) {\n effects.consume(code)\n effects.exit(types.htmlTextData)\n effects.exit(types.htmlText)\n return ok\n }\n\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n assert(returnState, 'expected return state')\n assert(markdownLineEnding(code), 'expected eol')\n effects.exit(types.htmlTextData)\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(types.htmlTextData)\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {tokenize: tokenizeResource}\n/** @type {Construct} */\nconst referenceFullConstruct = {tokenize: tokenizeReferenceFull}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {tokenize: tokenizeReferenceCollapsed}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n\n while (++index < events.length) {\n const token = events[index][1]\n\n if (\n token.type === types.labelImage ||\n token.type === types.labelLink ||\n token.type === types.labelEnd\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === types.labelImage ? 4 : 2)\n token.type = types.data\n index++\n }\n }\n\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array<Event>} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === types.link ||\n (token.type === types.labelLink && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === types.labelLink) {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === types.labelImage || token.type === types.labelLink) &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== types.labelLink) {\n offset = 2\n break\n }\n }\n } else if (token.type === types.labelEnd) {\n close = index\n }\n }\n\n assert(open !== undefined, '`open` is supposed to be found')\n assert(close !== undefined, '`close` is supposed to be found')\n\n const group = {\n type: events[open][1].type === types.labelLink ? types.link : types.image,\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n const label = {\n type: types.label,\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n\n const text = {\n type: types.labelText,\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n assert(\n context.parser.constructs.insideSpan.null,\n 'expected `insideSpan.null` to be populated'\n )\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n\n splice(events, open, events.length, media)\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === types.labelImage ||\n self.events[index][1].type === types.labelLink) &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.rightSquareBracket, 'expected `]`')\n\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({start: labelStart.end, end: self.now()})\n )\n )\n effects.enter(types.labelEnd)\n effects.enter(types.labelMarker)\n effects.consume(code)\n effects.exit(types.labelMarker)\n effects.exit(types.labelEnd)\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === codes.leftParenthesis) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === codes.leftSquareBracket) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n assert(code === codes.leftParenthesis, 'expected left paren')\n effects.enter(types.resource)\n effects.enter(types.resourceMarker)\n effects.consume(code)\n effects.exit(types.resourceMarker)\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === codes.rightParenthesis) {\n return resourceEnd(code)\n }\n\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n types.resourceDestination,\n types.resourceDestinationLiteral,\n types.resourceDestinationLiteralMarker,\n types.resourceDestinationRaw,\n types.resourceDestinationString,\n constants.linkResourceDestinationBalanceMax\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (\n code === codes.quotationMark ||\n code === codes.apostrophe ||\n code === codes.leftParenthesis\n ) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n types.resourceTitle,\n types.resourceTitleMarker,\n types.resourceTitleString\n )(code)\n }\n\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === codes.rightParenthesis) {\n effects.enter(types.resourceMarker)\n effects.consume(code)\n effects.exit(types.resourceMarker)\n effects.exit(types.resource)\n return ok\n }\n\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n assert(code === codes.leftSquareBracket, 'expected left bracket')\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n types.reference,\n types.referenceMarker,\n types.referenceString\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n assert(code === codes.leftSquareBracket, 'expected left bracket')\n effects.enter(types.reference)\n effects.enter(types.referenceMarker)\n effects.consume(code)\n effects.exit(types.referenceMarker)\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === codes.rightSquareBracket) {\n effects.enter(types.referenceMarker)\n effects.consume(code)\n effects.exit(types.referenceMarker)\n effects.exit(types.reference)\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.exclamationMark, 'expected `!`')\n effects.enter(types.labelImage)\n effects.enter(types.labelImageMarker)\n effects.consume(code)\n effects.exit(types.labelImageMarker)\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === codes.leftSquareBracket) {\n effects.enter(types.labelMarker)\n effects.consume(code)\n effects.exit(types.labelMarker)\n effects.exit(types.labelImage)\n return after\n }\n\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * \n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === codes.caret &&\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.leftSquareBracket, 'expected `[`')\n effects.enter(types.labelLink)\n effects.enter(types.labelMarker)\n effects.consume(code)\n effects.exit(types.labelMarker)\n effects.exit(types.labelLink)\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === codes.caret &&\n '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const lineEnding = {name: 'lineEnding', tokenize: tokenizeLineEnding}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n assert(markdownLineEnding(code), 'expected eol')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return factorySpace(effects, ok, types.linePrefix)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n let marker\n\n return start\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(types.thematicBreak)\n // To do: parse indent like `markdown-rs`.\n return before(code)\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n assert(\n code === codes.asterisk ||\n code === codes.dash ||\n code === codes.underscore,\n 'expected `*`, `-`, or `_`'\n )\n marker = code\n return atBreak(code)\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(types.thematicBreakSequence)\n return sequence(code)\n }\n\n if (\n size >= constants.thematicBreakMarkerCountMin &&\n (code === codes.eof || markdownLineEnding(code))\n ) {\n effects.exit(types.thematicBreak)\n return ok(code)\n }\n\n return nok(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit(types.thematicBreakSequence)\n return markdownSpace(code)\n ? factorySpace(effects, atBreak, types.whitespace)(code)\n : atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/** @type {Construct} */\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {tokenize: tokenizeListContinuation},\n exit: tokenizeListEnd\n}\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n\n/** @type {Construct} */\nconst indentConstruct = {tokenize: tokenizeIndent, partial: true}\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === types.linePrefix\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n\n return start\n\n /** @type {State} */\n function start(code) {\n assert(self.containerState, 'expected state')\n const kind =\n self.containerState.type ||\n (code === codes.asterisk || code === codes.plusSign || code === codes.dash\n ? types.listUnordered\n : types.listOrdered)\n\n if (\n kind === types.listUnordered\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {_container: true})\n }\n\n if (kind === types.listUnordered) {\n effects.enter(types.listItemPrefix)\n return code === codes.asterisk || code === codes.dash\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === codes.digit1) {\n effects.enter(types.listItemPrefix)\n effects.enter(types.listItemValue)\n return inside(code)\n }\n }\n\n return nok(code)\n }\n\n /** @type {State} */\n function inside(code) {\n assert(self.containerState, 'expected state')\n if (asciiDigit(code) && ++size < constants.listItemValueSizeMax) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === codes.rightParenthesis || code === codes.dot)\n ) {\n effects.exit(types.listItemValue)\n return atMarker(code)\n }\n\n return nok(code)\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n assert(self.containerState, 'expected state')\n assert(code !== codes.eof, 'eof (`null`) is not a marker')\n effects.enter(types.listItemMarker)\n effects.consume(code)\n effects.exit(types.listItemMarker)\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n\n /** @type {State} */\n function onBlank(code) {\n assert(self.containerState, 'expected state')\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(types.listItemPrefixWhitespace)\n effects.consume(code)\n effects.exit(types.listItemPrefixWhitespace)\n return endOfPrefix\n }\n\n return nok(code)\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n assert(self.containerState, 'expected state')\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit(types.listItemPrefix), true).length\n return ok(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n\n assert(self.containerState, 'expected state')\n self.containerState._closeFlow = undefined\n\n return effects.check(blankLine, onBlank, notBlank)\n\n /** @type {State} */\n function onBlank(code) {\n assert(self.containerState, 'expected state')\n assert(typeof self.containerState.size === 'number', 'expected size')\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(\n effects,\n ok,\n types.listItemIndent,\n self.containerState.size + 1\n )(code)\n }\n\n /** @type {State} */\n function notBlank(code) {\n assert(self.containerState, 'expected state')\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n assert(self.containerState, 'expected state')\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n }\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n\n assert(self.containerState, 'expected state')\n assert(typeof self.containerState.size === 'number', 'expected size')\n\n return factorySpace(\n effects,\n afterPrefix,\n types.listItemIndent,\n self.containerState.size + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n assert(self.containerState, 'expected state')\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === types.listItemIndent &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n\n/**\n * @type {Exiter}\n * @this {TokenizeContext}\n */\nfunction tokenizeListEnd(effects) {\n assert(this.containerState, 'expected state')\n assert(typeof this.containerState.type === 'string', 'expected type')\n effects.exit(this.containerState.type)\n}\n\n/**\n * @type {Tokenizer}\n * @this {TokenizeContext}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n\n // Always populated by defaults.\n assert(\n self.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n return factorySpace(\n effects,\n afterPrefix,\n types.listItemPrefixWhitespace,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize + 1\n )\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === types.listItemPrefixWhitespace\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length\n /** @type {number | undefined} */\n let content\n /** @type {number | undefined} */\n let text\n /** @type {number | undefined} */\n let definition\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === types.content) {\n content = index\n break\n }\n\n if (events[index][1].type === types.paragraph) {\n text = index\n }\n }\n // Exit\n else {\n if (events[index][1].type === types.content) {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === types.definition) {\n definition = index\n }\n }\n }\n\n assert(text !== undefined, 'expected a `text` index to be found')\n assert(content !== undefined, 'expected a `text` index to be found')\n\n const heading = {\n type: types.setextHeading,\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n\n // Change the paragraph to setext heading text.\n events[text][1].type = types.setextHeadingText\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context])\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>} */\n let marker\n\n return start\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length\n /** @type {boolean | undefined} */\n let paragraph\n\n assert(\n code === codes.dash || code === codes.equalsTo,\n 'expected `=` or `-`'\n )\n\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== types.lineEnding &&\n self.events[index][1].type !== types.linePrefix &&\n self.events[index][1].type !== types.content\n ) {\n paragraph = self.events[index][1].type === types.paragraph\n break\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(types.setextHeadingLine)\n marker = code\n return before(code)\n }\n\n return nok(code)\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(types.setextHeadingLineSequence)\n return inside(code)\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n\n effects.exit(types.setextHeadingLineSequence)\n\n return markdownSpace(code)\n ? factorySpace(effects, after, types.lineSuffix)(code)\n : after(code)\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit(types.setextHeadingLine)\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {ok as assert} from 'devlop'\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {codes, constants, types} from 'micromark-util-symbol'\n\nconst indent = {tokenize: tokenizeIndent, partial: true}\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [codes.leftSquareBracket]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {tokenize: tokenizeDefinitionContinuation},\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [codes.leftSquareBracket]: {tokenize: tokenizeGfmFootnoteCall},\n [codes.rightSquareBracket]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1]\n\n if (token.type === types.labelImage) {\n labelStart = token\n break\n }\n\n // Exit if we’ve walked far enough.\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === types.labelLink ||\n token.type === types.label ||\n token.type === types.image ||\n token.type === types.link\n ) {\n break\n }\n }\n\n return start\n\n /**\n * @type {State}\n */\n function start(code) {\n assert(code === codes.rightSquareBracket, 'expected `]`')\n\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n\n const id = normalizeIdentifier(\n self.sliceSerialize({start: labelStart.end, end: self.now()})\n )\n\n if (id.codePointAt(0) !== codes.caret || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token | undefined} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n if (\n events[index][1].type === types.labelImage &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n\n assert(labelStart, 'expected `labelStart` to resolve')\n\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = types.data\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n }\n // Increment the end 1 character.\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n /** @type {Token} */\n const chunk = {\n type: types.chunkString,\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n\n /** @type {Array<Event>} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n ['enter', marker, context],\n ['exit', marker, context],\n // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n\n events.splice(index, events.length - index + 1, ...replacement)\n\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n let data\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.leftSquareBracket, 'expected `[`')\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== codes.caret) return nok(code)\n\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > constants.linkReferenceSizeMax ||\n // Closing brace with nothing.\n (code === codes.rightSquareBracket && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === codes.eof ||\n code === codes.leftSquareBracket ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteCallString')\n\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code)\n }\n\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n size++\n effects.consume(code)\n return code === codes.backslash ? callEscape : callData\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (\n code === codes.leftSquareBracket ||\n code === codes.backslash ||\n code === codes.rightSquareBracket\n ) {\n effects.consume(code)\n size++\n return callData\n }\n\n return callData(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n let identifier\n let size = 0\n /** @type {boolean | undefined} */\n let data\n\n return start\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n assert(code === codes.leftSquareBracket, 'expected `[`')\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelAtMarker\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === codes.caret) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n effects.enter('chunkString').contentType = 'string'\n return labelInside\n }\n\n return nok(code)\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > constants.linkReferenceSizeMax ||\n // Closing brace with nothing.\n (code === codes.rightSquareBracket && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === codes.eof ||\n code === codes.leftSquareBracket ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n\n if (code === codes.rightSquareBracket) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n size++\n effects.consume(code)\n return code === codes.backslash ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > <https://github.com/github/cmark-gfm/issues/240>\n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (\n code === codes.leftSquareBracket ||\n code === codes.backslash ||\n code === codes.rightSquareBracket\n ) {\n effects.consume(code)\n size++\n return labelInside\n }\n\n return labelInside(code)\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === codes.colon) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(\n effects,\n whitespaceAfter,\n 'gfmFootnoteDefinitionWhitespace'\n )\n }\n\n return nok(code)\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n constants.tabSize + 1\n )\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === constants.tabSize\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (default: `true`).\n *\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\n\nimport {ok as assert} from 'devlop'\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\nimport {codes, constants, types} from 'micromark-util-symbol'\n\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {}\n let single = options_.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {\n text: {[codes.tilde]: tokenizer},\n insideSpan: {null: [tokenizer]},\n attentionMarkers: {null: [codes.tilde]}\n }\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n\n // Opening.\n /** @type {Array<Event>} */\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n\n const insideSpan = context.parser.constructs.insideSpan.null\n\n if (insideSpan) {\n // Between.\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n )\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n\n splice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = types.data\n }\n }\n\n return events\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n\n return start\n\n /** @type {State} */\n function start(code) {\n assert(code === codes.tilde, 'expected `~`')\n\n if (\n previous === codes.tilde &&\n events[events.length - 1][1].type !== types.characterEscape\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous)\n\n if (code === codes.tilde) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open =\n !after || (after === constants.attentionSideAfter && Boolean(before))\n token._close =\n !before || (before === constants.attentionSideAfter && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array<Change>}\n */\n this.map = []\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add)\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0]\n })\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array<Jump>} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length\n /** @type {Array<Array<Event>>} */\n const vecs = []\n while (index > 0) {\n index -= 1\n vecs.push(\n events.slice(this.map[index][0] + this.map[index][1]),\n this.map[index][2]\n )\n\n // Truncate rest.\n events.length = this.map[index][0]\n }\n\n vecs.push([...events])\n events.length = 0\n\n let slice = vecs.pop()\n\n while (slice) {\n events.push(...slice)\n slice = vecs.pop()\n }\n\n // Truncate everything.\n this.map.length = 0\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\nfunction addImpl(editMap, at, remove, add) {\n let index = 0\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return\n }\n\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add)\n // }\n\n return\n }\n\n index += 1\n }\n\n editMap.map.push([at, remove, add])\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array<Event>} events\n// * @param {Array<Jump>} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\nimport {ok as assert} from 'devlop'\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly<Array<Event>>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array<Align>}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n assert(events[index][1].type === 'table', 'expected table')\n let inDelimiterRow = false\n /** @type {Array<Align>} */\n const align = []\n\n while (index < events.length) {\n const event = events[index]\n\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(\n events[index + 1][1].type === 'tableDelimiterMarker'\n ? 'left'\n : 'none'\n )\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1\n\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true\n }\n\n index += 1\n }\n\n return align\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport {ok as assert} from 'devlop'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {EditMap} from './edit-map.js'\nimport {gfmTableAlign} from './infer.js'\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {null: {tokenize: tokenizeTable, resolveAll: resolveTable}}\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n let size = 0\n let sizeB = 0\n /** @type {boolean | undefined} */\n let seen\n\n return start\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1\n\n while (index > -1) {\n const type = self.events[index][1].type\n if (\n type === types.lineEnding ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === types.linePrefix\n )\n index--\n else break\n }\n\n const tail = index > -1 ? self.events[index][1].type : null\n\n const next =\n tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n return next(code)\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead')\n effects.enter('tableRow')\n return headRowStart(code)\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === codes.verticalBar) {\n return headRowBreak(code)\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1\n return headRowBreak(code)\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === codes.eof) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true\n effects.exit('tableRow')\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return headDelimiterStart\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, types.whitespace)(code)\n }\n\n sizeB += 1\n\n if (seen) {\n seen = false\n // Header cell count.\n size += 1\n }\n\n if (code === codes.verticalBar) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n // Whether a delimiter was seen.\n seen = true\n return headRowBreak\n }\n\n // Anything else is cell data.\n effects.enter(types.data)\n return headRowData(code)\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (\n code === codes.eof ||\n code === codes.verticalBar ||\n markdownLineEndingOrSpace(code)\n ) {\n effects.exit(types.data)\n return headRowBreak(code)\n }\n\n effects.consume(code)\n return code === codes.backslash ? headRowEscape : headRowData\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === codes.backslash || code === codes.verticalBar) {\n effects.consume(code)\n return headRowData\n }\n\n return headRowData(code)\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n effects.enter('tableDelimiterRow')\n // Track if we’ve seen a `:` or `|`.\n seen = false\n\n if (markdownSpace(code)) {\n assert(self.parser.constructs.disable.null, 'expected `disabled.null`')\n return factorySpace(\n effects,\n headDelimiterBefore,\n types.linePrefix,\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )(code)\n }\n\n return headDelimiterBefore(code)\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === codes.dash || code === codes.colon) {\n return headDelimiterValueBefore(code)\n }\n\n if (code === codes.verticalBar) {\n seen = true\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return headDelimiterCellBefore\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code)\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n headDelimiterValueBefore,\n types.whitespace\n )(code)\n }\n\n return headDelimiterValueBefore(code)\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === codes.colon) {\n sizeB += 1\n seen = true\n\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterLeftAlignmentAfter\n }\n\n // Align: none.\n if (code === codes.dash) {\n sizeB += 1\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code)\n }\n\n if (code === codes.eof || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code)\n }\n\n return headDelimiterNok(code)\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === codes.dash) {\n effects.enter('tableDelimiterFiller')\n return headDelimiterFiller(code)\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === codes.dash) {\n effects.consume(code)\n return headDelimiterFiller\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === codes.colon) {\n seen = true\n effects.exit('tableDelimiterFiller')\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterRightAlignmentAfter\n }\n\n effects.exit('tableDelimiterFiller')\n return headDelimiterRightAlignmentAfter(code)\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n headDelimiterCellAfter,\n types.whitespace\n )(code)\n }\n\n return headDelimiterCellAfter(code)\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === codes.verticalBar) {\n return headDelimiterBefore(code)\n }\n\n if (code === codes.eof || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code)\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow')\n effects.exit('tableHead')\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code)\n }\n\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow')\n return bodyRowBreak(code)\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === codes.verticalBar) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return bodyRowBreak\n }\n\n if (code === codes.eof || markdownLineEnding(code)) {\n effects.exit('tableRow')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, types.whitespace)(code)\n }\n\n // Anything else is cell content.\n effects.enter(types.data)\n return bodyRowData(code)\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (\n code === codes.eof ||\n code === codes.verticalBar ||\n markdownLineEndingOrSpace(code)\n ) {\n effects.exit(types.data)\n return bodyRowBreak(code)\n }\n\n effects.consume(code)\n return code === codes.backslash ? bodyRowEscape : bodyRowData\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === codes.backslash || code === codes.verticalBar) {\n effects.consume(code)\n return bodyRowData\n }\n\n return bodyRowData(code)\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n let inFirstCellAwaitingPipe = true\n /** @type {RowKind} */\n let rowKind = 0\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0]\n /** @type {Range} */\n let cell = [0, 0, 0, 0]\n let afterHeadAwaitingFirstBodyRow = false\n let lastTableEnd = 0\n /** @type {Token | undefined} */\n let currentTable\n /** @type {Token | undefined} */\n let currentBody\n /** @type {Token | undefined} */\n let currentCell\n\n const map = new EditMap()\n\n while (++index < events.length) {\n const event = events[index]\n const token = event[1]\n\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n assert(currentTable, 'there should be a table opening')\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n currentBody = undefined\n lastTableEnd = 0\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentTable, context]])\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n inFirstCellAwaitingPipe = true\n currentCell = undefined\n lastCell = [0, 0, 0, 0]\n cell = [0, index + 1, 0, 0]\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentBody, context]])\n }\n\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1\n }\n // Cell data.\n else if (\n rowKind &&\n (token.type === types.data ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n inFirstCellAwaitingPipe = false\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n lastCell = [0, 0, 0, 0]\n }\n\n cell[2] = index\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n }\n\n lastCell = cell\n cell = [lastCell[1], index, 0, 0]\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true\n lastTableEnd = index\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n lastTableEnd = index\n\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n )\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell)\n }\n\n rowKind = 0\n } else if (\n rowKind &&\n (token.type === types.data ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n cell[3] = index\n }\n }\n\n if (lastTableEnd !== 0) {\n assert(currentTable, 'expected table opening')\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n }\n\n map.consume(context.events)\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1\n while (++index < context.events.length) {\n const event = context.events[index]\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index)\n }\n }\n\n return events\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly<TokenizeContext>} context\n * @param {Readonly<Range>} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName =\n rowKind === 1\n ? 'tableHeader'\n : rowKind === 2\n ? 'tableDelimiter'\n : 'tableData'\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent'\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n assert(previousCell, 'expected previous cell enter')\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]))\n map.add(range[0], 0, [['exit', previousCell, context]])\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1])\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n }\n map.add(range[1], 0, [['enter', previousCell, context]])\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2])\n const relatedEnd = getPoint(context.events, range[3])\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n }\n map.add(range[2], 0, [['enter', valueToken, context]])\n assert(range[3] !== 0)\n\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]]\n const end = context.events[range[3]]\n start[1].end = Object.assign({}, end[1].end)\n start[1].type = types.chunkText\n start[1].contentType = constants.contentTypeText\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1\n const b = range[3] - range[2] - 1\n map.add(a, b, [])\n }\n }\n\n map.add(range[3] + 1, 0, [['exit', valueToken, context]])\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between†parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))\n map.add(rowEnd, 0, [['exit', previousCell, context]])\n previousCell = undefined\n }\n\n return previousCell\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly<EditMap>} map\n * @param {Readonly<TokenizeContext>} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array<Event>} */\n const exits = []\n const related = getPoint(context.events, index)\n\n if (tableBody) {\n tableBody.end = Object.assign({}, related)\n exits.push(['exit', tableBody, context])\n }\n\n table.end = Object.assign({}, related)\n exits.push(['exit', table, context])\n\n map.add(index + 1, 0, exits)\n}\n\n/**\n * @param {Readonly<Array<Event>>} events\n * @param {number} index\n * @returns {Readonly<Point>}\n */\nfunction getPoint(events, index) {\n const event = events[index]\n const side = event[0] === 'enter' ? 'start' : 'end'\n return event[1][side]\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {ok as assert} from 'devlop'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\n\nconst tasklistCheck = {tokenize: tokenizeTasklistCheck}\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {[codes.leftSquareBracket]: tasklistCheck}\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n\n return open\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n assert(code === codes.leftSquareBracket, 'expected `[`')\n\n if (\n // Exit if there’s stuff before.\n self.previous !== codes.eof ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n if (code === codes.uppercaseX || code === codes.lowercaseX) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === codes.rightSquareBracket) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return after\n }\n\n return nok(code)\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code)\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({tokenize: spaceThenNonSpace}, ok, nok)(code)\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, types.whitespace)\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === codes.eof ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/// <reference types=\"remark-parse\" />\n/// <reference types=\"remark-stringify\" />\n\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {MicromarkOptions & MdastOptions} Options\n * Configuration.\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","export const getURLParameters = (url = '') => (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce((a, v) => ((a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a), {});\nexport const prevChild = (data = [], index) => {\n let i = index;\n while (i > -1) {\n i--;\n if (!data[i])\n return;\n if ((data[i] && data[i].value && data[i].value.replace(/(\\n|\\s)/g, '') !== '') || data[i].type !== 'text') {\n if (!/^rehype:/.test(data[i].value) || data[i].type !== 'comment')\n return;\n return data[i];\n }\n }\n return;\n};\nexport const nextChild = (data = [], index, tagName, codeBlockParames) => {\n let i = index;\n while (i < data.length) {\n i++;\n if (tagName) {\n const element = data[i];\n if (element && element.value && element.value.replace(/(\\n|\\s)/g, '') !== '' || data[i] && data[i].type === 'element') {\n return element.tagName === tagName ? element : undefined;\n }\n }\n else {\n const element = data[i];\n if (!element || element.type === 'element')\n return;\n if (element.type === 'text' && element.value.replace(/(\\n|\\s)/g, '') !== '')\n return;\n if (element.type && /^(comment|raw)$/ig.test(element.type)) {\n if (element.value && !/^rehype:/.test(element.value.replace(/^(\\s+)?<!--(.*?)-->/, '$2') || '')) {\n return;\n }\n ;\n if (codeBlockParames) {\n const nextNode = nextChild(data, i, 'pre', codeBlockParames);\n if (nextNode)\n return;\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '');\n return element;\n }\n else {\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '');\n return element;\n }\n }\n }\n }\n return;\n};\n/**\n * 获å–代ç 注视的ä½ç½®\n * @param data æ•°æ®\n * @param index 当å‰æ•°æ®æ‰€åœ¨çš„ä½ç½®\n * @returns 返回 当å‰å‚æ•°æ•°æ® Object,`{}`\n */\nexport const getCommentObject = ({ value = '' }) => {\n const param = getURLParameters(value.replace(/^<!--(.*?)-->/, '$1').replace(/^rehype:/, ''));\n Object.keys(param).forEach((keyName) => {\n if (param[keyName] === 'true') {\n param[keyName] = true;\n }\n if (param[keyName] === 'false') {\n param[keyName] = false;\n }\n if (typeof param[keyName] === 'string' && !/^0/.test(param[keyName]) && !isNaN(+param[keyName])) {\n param[keyName] = +param[keyName];\n }\n });\n return param;\n};\nexport const propertiesHandle = (defaultAttrs, attrs, type) => {\n if (type === 'string') {\n return { ...defaultAttrs, 'data-config': JSON.stringify({ ...attrs, rehyp: true }) };\n }\n else if (type === 'attr') {\n return { ...defaultAttrs, ...attrs };\n }\n return { ...defaultAttrs, 'data-config': { ...attrs, rehyp: true } };\n};\n//# sourceMappingURL=utils.js.map","import { visit } from 'unist-util-visit';\nimport { propertiesHandle, nextChild, prevChild, getCommentObject } from './utils.js';\nconst rehypeAttrs = (options = {}) => {\n const { properties = 'data', codeBlockParames = true } = options;\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (codeBlockParames && node.tagName === 'pre' && node && Array.isArray(node.children) && parent && Array.isArray(parent.children) && parent.children.length > 1) {\n const firstChild = node.children[0];\n if (firstChild && firstChild.tagName === 'code' && typeof index === 'number') {\n const child = prevChild(parent.children, index);\n if (child) {\n const attr = getCommentObject(child);\n if (Object.keys(attr).length > 0) {\n node.properties = { ...node.properties, ...{ 'data-type': 'rehyp' } };\n firstChild.properties = propertiesHandle(firstChild.properties, attr, properties);\n }\n }\n }\n }\n if (/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(node.tagName) && parent && Array.isArray(parent.children) && typeof index === 'number') {\n const child = nextChild(parent.children, index, '', codeBlockParames);\n if (child) {\n const attr = getCommentObject(child);\n if (Object.keys(attr).length > 0) {\n node.properties = propertiesHandle(node.properties, attr, properties);\n }\n }\n }\n });\n };\n};\nexport default rehypeAttrs;\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {InitialConstruct} */\nexport const content = {tokenize: initializeContent}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n let previous\n\n return contentStart\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n assert(\n code === codes.eof || markdownLineEnding(code),\n 'expected eol or eof'\n )\n\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n return factorySpace(effects, contentStart, types.linePrefix)\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n assert(\n code !== codes.eof && !markdownLineEnding(code),\n 'expected anything other than a line ending or EOF'\n )\n effects.enter(types.paragraph)\n return lineStart(code)\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter(types.chunkText, {\n contentType: constants.contentTypeText,\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n\n return data(code)\n }\n\n /** @type {State} */\n function data(code) {\n if (code === codes.eof) {\n effects.exit(types.chunkText)\n effects.exit(types.paragraph)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit(types.chunkText)\n return lineStart\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ContainerState} ContainerState\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {InitialConstruct} */\nexport const document = {tokenize: initializeDocument}\n\n/** @type {Construct} */\nconst containerConstruct = {tokenize: tokenizeContainer}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n const stack = []\n let continued = 0\n /** @type {TokenizeContext | undefined} */\n let childFlow\n /** @type {Token | undefined} */\n let childToken\n /** @type {number} */\n let lineStartOffset\n\n return start\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n assert(\n item[0].continuation,\n 'expected `continuation` to be defined on container construct'\n )\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n }\n\n // Done.\n return checkNewContainers(code)\n }\n\n /** @type {State} */\n function documentContinue(code) {\n assert(\n self.containerState,\n 'expected `containerState` to be defined after continuation'\n )\n\n continued++\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point | undefined} */\n let point\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === types.chunkFlow\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n assert(point, 'could not find previous flow chunk')\n\n exitContainers(continued)\n\n // Fix positions.\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce†into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n }\n\n // Check if there is a new container.\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n\n /** @type {State} */\n function containerContinue(code) {\n assert(\n self.currentConstruct,\n 'expected `currentConstruct` to be defined on tokenizer'\n )\n assert(\n self.containerState,\n 'expected `containerState` to be defined on tokenizer'\n )\n continued++\n stack.push([self.currentConstruct, self.containerState])\n // Try another.\n return documentContinued(code)\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === codes.eof) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter(types.chunkFlow, {\n contentType: constants.contentTypeFlow,\n previous: childToken,\n _tokenizer: childFlow\n })\n\n return flowContinue(code)\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === codes.eof) {\n writeToChild(effects.exit(types.chunkFlow), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit(types.chunkFlow))\n // Get ready for the next line.\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n\n /**\n * @param {Token} token\n * @param {boolean | undefined} [eof]\n * @returns {undefined}\n */\n function writeToChild(token, eof) {\n assert(childFlow, 'expected `childFlow` to be defined when continuing')\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream)\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake†it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes†the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset &&\n // …and either is not ended yet…\n (!childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean | undefined} */\n let seen\n /** @type {Point | undefined} */\n let point\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === types.chunkFlow\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n assert(point, 'could not find previous flow chunk')\n\n exitContainers(continued)\n\n // Fix positions.\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n )\n\n // Discard the duplicate exits.\n self.events.length = index\n }\n }\n\n /**\n * @param {number} size\n * @returns {undefined}\n */\n function exitContainers(size) {\n let index = stack.length\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n assert(\n entry[0].exit,\n 'expected `exit` to be defined on container construct'\n )\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n assert(\n self.containerState,\n 'expected `containerState` to be defined when closing flow'\n )\n assert(childFlow, 'expected `childFlow` to be defined when closing it')\n childFlow.write([codes.eof])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n assert(\n this.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n types.linePrefix,\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : constants.tabSize\n )\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {codes, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\n/** @type {InitialConstruct} */\nexport const flow = {tokenize: initializeFlow}\n\n/**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n types.linePrefix\n )\n )\n )\n\n return initial\n\n /** @type {State} */\n function atBlankEnding(code) {\n assert(\n code === codes.eof || markdownLineEnding(code),\n 'expected eol or eof'\n )\n\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.lineEndingBlank)\n effects.consume(code)\n effects.exit(types.lineEndingBlank)\n self.currentConstruct = undefined\n return initial\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n assert(\n code === codes.eof || markdownLineEnding(code),\n 'expected eol or eof'\n )\n\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.lineEnding)\n effects.consume(code)\n effects.exit(types.lineEnding)\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\nexport const resolver = {resolveAll: createResolver()}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n\n/**\n * @param {'string' | 'text'} field\n * @returns {InitialConstruct}\n */\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n\n return start\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === codes.eof) {\n effects.consume(code)\n return\n }\n\n effects.enter(types.data)\n effects.consume(code)\n return data\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(types.data)\n return text(code)\n }\n\n // Data.\n effects.consume(code)\n return data\n }\n\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n function atBreak(code) {\n if (code === codes.eof) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n // Always populated by defaults.\n assert(Array.isArray(list), 'expected `disable.null` to be populated')\n\n while (++index < list.length) {\n const item = list[index]\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * @returns {Resolver}\n */\nfunction createResolver(extraResolver) {\n return resolveAllText\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number | undefined} */\n let enter\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === types.data) {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== types.data) {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === types.lineEnding) &&\n events[eventIndex - 1][1].type === types.data\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean | undefined} */\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === codes.space) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n }\n // Number\n else if (chunk === codes.horizontalTab) {\n tabs = true\n size++\n } else if (chunk === codes.virtualSpace) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length ||\n tabs ||\n size < constants.hardBreakPrefixSizeMin\n ? types.lineSuffix\n : types.hardBreakTrailing,\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenType} TokenType\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n */\n\n/**\n * @callback Restore\n * @returns {undefined}\n *\n * @typedef Info\n * @property {Restore} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {undefined}\n */\n\nimport createDebug from 'debug'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\nimport {codes, values} from 'micromark-util-symbol'\nimport {ok as assert} from 'devlop'\n\nconst debug = createDebug('micromark')\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from ? Object.assign({}, from) : {line: 1, column: 1, offset: 0},\n {_index: 0, _bufferIndex: -1}\n )\n /** @type {Record<string, number>} */\n const columnStart = {}\n /** @type {Array<Construct>} */\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n let chunks = []\n /** @type {Array<Token>} */\n let stack = []\n /** @type {boolean | undefined} */\n let consumed = true\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {interrupt: true})\n }\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n previous: codes.eof,\n code: codes.eof,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects)\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice)\n\n main()\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== codes.eof) {\n return []\n }\n\n addResult(initialize, 0)\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n\n return context.events\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {line, column, offset, _index, _bufferIndex} = point\n return {line, column, offset, _index, _bufferIndex}\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n debug('position: define skip: `%j`', point)\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n */\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index]\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {undefined}\n */\n function go(code) {\n assert(consumed === true, 'expected character to be consumed')\n consumed = undefined\n debug('main: passing `%s` to %s', code, state && state.name)\n expectedCode = code\n assert(typeof state === 'function', 'expected state')\n state = state(code)\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n assert(code === expectedCode, 'expected given code to equal expected code')\n\n debug('consume: `%s`', code)\n\n assert(\n consumed === undefined,\n 'expected code to not have been consumed: this might be because `return x(code)` instead of `return x` was used'\n )\n assert(\n code === null\n ? context.events.length === 0 ||\n context.events[context.events.length - 1][0] === 'exit'\n : context.events[context.events.length - 1][0] === 'enter',\n 'expected last token to be open'\n )\n\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === codes.carriageReturnLineFeed ? 2 : 1\n accountForPotentialSkip()\n debug('position: after eol: `%j`', point)\n } else if (code !== codes.virtualSpace) {\n point.column++\n point.offset++\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++\n\n // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n }\n\n // Expose the previous character.\n context.previous = code\n\n // Mark as consumed.\n consumed = true\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n\n assert(typeof type === 'string', 'expected string type')\n assert(type.length > 0, 'expected non-empty string')\n debug('enter: `%s`', type)\n\n context.events.push(['enter', token, context])\n\n stack.push(token)\n\n return token\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n assert(typeof type === 'string', 'expected string type')\n assert(type.length > 0, 'expected non-empty string')\n\n const token = stack.pop()\n assert(token, 'cannot close w/o open tokens')\n token.end = now()\n\n assert(type === token.type, 'expected exit token to match current token')\n\n assert(\n !(\n token.start._index === token.end._index &&\n token.start._bufferIndex === token.end._bufferIndex\n ),\n 'expected non-empty token (`' + type + '`)'\n )\n\n debug('exit: `%s`', token.type)\n context.events.push(['exit', token, context])\n\n return token\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n */\n function constructFactory(onreturn, fields) {\n return hook\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | Construct | ConstructRecord} constructs\n * @param {State} returnState\n * @param {State | undefined} [bogusState]\n * @returns {State}\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n let constructIndex\n /** @type {Construct} */\n let currentConstruct\n /** @type {Info} */\n let info\n\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs\n ? // @ts-expect-error Looks like a construct.\n handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n function handleMapOfConstructs(map) {\n return start\n\n /** @type {State} */\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n\n return handleListOfConstructs(list)(code)\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n assert(bogusState, 'expected `bogusState` to be given')\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n function handleConstruct(construct) {\n return start\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n // Always populated by defaults.\n assert(\n context.parser.constructs.disable.null,\n 'expected `disable.null` to be populated'\n )\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live bindingâ€, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n\n /** @type {State} */\n function ok(code) {\n assert(code === expectedCode, 'expected code')\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n\n /** @type {State} */\n function nok(code) {\n assert(code === expectedCode, 'expected code')\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {undefined}\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n\n assert(\n construct.partial ||\n context.events.length === 0 ||\n context.events[context.events.length - 1][0] === 'exit',\n 'expected last token to end'\n )\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n */\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n\n return {restore, from: startEventsIndex}\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n */\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n debug('position: restore: `%j`', point)\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'end' | 'start'>} token\n * @returns {Array<Chunk>}\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n let view\n\n if (startIndex === endIndex) {\n assert(endBufferIndex > -1, 'expected non-negative end buffer index')\n assert(startBufferIndex > -1, 'expected non-negative start buffer index')\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n const head = view[0]\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex)\n } else {\n assert(startBufferIndex === 0, 'expected `startBufferIndex` to be `0`')\n view.shift()\n }\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean | undefined} [expandTabs=false]\n * @returns {string}\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n /** @type {boolean | undefined} */\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case codes.carriageReturn: {\n value = values.cr\n\n break\n }\n\n case codes.lineFeed: {\n value = values.lf\n\n break\n }\n\n case codes.carriageReturnLineFeed: {\n value = values.cr + values.lf\n\n break\n }\n\n case codes.horizontalTab: {\n value = expandTabs ? values.space : values.ht\n\n break\n }\n\n case codes.virtualSpace: {\n if (!expandTabs && atTab) continue\n value = values.space\n\n break\n }\n\n default: {\n assert(typeof chunk === 'number', 'expected number')\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === codes.horizontalTab\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {codes} from 'micromark-util-symbol'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [codes.asterisk]: list,\n [codes.plusSign]: list,\n [codes.dash]: list,\n [codes.digit0]: list,\n [codes.digit1]: list,\n [codes.digit2]: list,\n [codes.digit3]: list,\n [codes.digit4]: list,\n [codes.digit5]: list,\n [codes.digit6]: list,\n [codes.digit7]: list,\n [codes.digit8]: list,\n [codes.digit9]: list,\n [codes.greaterThan]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [codes.leftSquareBracket]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [codes.horizontalTab]: codeIndented,\n [codes.virtualSpace]: codeIndented,\n [codes.space]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [codes.numberSign]: headingAtx,\n [codes.asterisk]: thematicBreak,\n [codes.dash]: [setextUnderline, thematicBreak],\n [codes.lessThan]: htmlFlow,\n [codes.equalsTo]: setextUnderline,\n [codes.underscore]: thematicBreak,\n [codes.graveAccent]: codeFenced,\n [codes.tilde]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [codes.ampersand]: characterReference,\n [codes.backslash]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [codes.carriageReturn]: lineEnding,\n [codes.lineFeed]: lineEnding,\n [codes.carriageReturnLineFeed]: lineEnding,\n [codes.exclamationMark]: labelStartImage,\n [codes.ampersand]: characterReference,\n [codes.asterisk]: attention,\n [codes.lessThan]: [autolink, htmlText],\n [codes.leftSquareBracket]: labelStartLink,\n [codes.backslash]: [hardBreakEscape, characterEscape],\n [codes.rightSquareBracket]: labelEnd,\n [codes.underscore]: attention,\n [codes.graveAccent]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {null: [attention, resolveText]}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {null: [codes.asterisk, codes.underscore]}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {null: []}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs = /** @type {FullNormalizedExtension} */ (\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n )\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array<Chunk>}\n */\n\nimport {codes, constants} from 'micromark-util-symbol'\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n\n startPosition = 0\n buffer = ''\n\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === codes.byteOrderMarker) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (\n code === codes.lf &&\n startPosition === endPosition &&\n atCarriageReturn\n ) {\n chunks.push(codes.carriageReturnLineFeed)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(codes.carriageReturn)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case codes.nul: {\n chunks.push(codes.replacementCharacter)\n column++\n\n break\n }\n\n case codes.ht: {\n next = Math.ceil(column / constants.tabSize) * constants.tabSize\n chunks.push(codes.horizontalTab)\n while (column++ < next) chunks.push(codes.virtualSpace)\n\n break\n }\n\n case codes.lf: {\n chunks.push(codes.lineFeed)\n column = 1\n\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(codes.carriageReturn)\n if (buffer) chunks.push(buffer)\n chunks.push(codes.eof)\n }\n\n return chunks\n }\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit<Parent, 'children' | 'type'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit<CompileContext, 'sliceSerialize'>} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array<string>} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array<Transform>} transforms\n * Tree transforms.\n *\n * @typedef {Partial<Config>} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array<Fragment | Nodes>} stack\n * Stack of nodes.\n * @property {Array<TokenTuple>} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport {ok as assert} from 'devlop'\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {codes, constants, types} from 'micromark-util-symbol'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options)\n .document()\n .write(preprocess()(value, encoding, true))\n )\n )\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {type: 'root', children: []}\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array<number>} */\n const listStack = []\n let index = -1\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === types.listOrdered ||\n events[index][1].type === types.listUnordered\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n assert(typeof tail === 'number', 'expected list ot be open')\n index = prepareList(events, tail, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {sliceSerialize: events[index][2].sliceSerialize},\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0 ? events[0][1].start : {line: 1, column: 1, offset: 0}\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {line: 1, column: 1, offset: 0}\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n switch (event[1].type) {\n case types.listUnordered:\n case types.listOrdered:\n case types.blockQuote: {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n\n break\n }\n\n case types.lineEndingBlank: {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n\n break\n }\n\n case types.linePrefix:\n case types.listItemValue:\n case types.listItemMarker:\n case types.listItemPrefix:\n case types.listItemPrefixWhitespace: {\n // Empty.\n\n break\n }\n\n default: {\n atMarker = undefined\n }\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === types.listItemPrefix) ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === types.listUnordered ||\n event[1].type === types.listOrdered))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === types.lineEnding ||\n tailEvent[1].type === types.lineEndingBlank\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = types.lineEndingBlank\n listSpread = true\n }\n\n tailEvent[1].type = types.lineEnding\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === types.linePrefix ||\n tailEvent[1].type === types.blockQuotePrefix ||\n tailEvent[1].type === types.blockQuotePrefixWhitespace ||\n tailEvent[1].type === types.blockQuoteMarker ||\n tailEvent[1].type === types.listItemIndent\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === types.listItemPrefix) {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n listItem = item\n events.splice(index, 0, ['enter', item, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({type: 'fragment', children: []})\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n assert(parent, 'expected `parent`')\n assert('children' in parent, 'expected `parent`')\n /** @type {Array<Nodes>} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n assert(node, 'expected `node`')\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({start: token.start, end: token.end}) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n\n assert(node.type !== 'fragment', 'unexpected fragment `exit`ed')\n assert(node.position, 'expected `position` to be defined')\n node.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n assert(ancestor, 'expected nodes on stack')\n assert(ancestor.type === 'list', 'expected list on stack')\n ancestor.start = Number.parseInt(\n this.sliceSerialize(token),\n constants.numericBaseDecimal\n )\n this.data.expectingFirstListItemValue = undefined\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return\n this.buffer()\n this.data.flowCodeInside = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n this.data.flowCodeInside = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'code', 'expected code on stack')\n\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'definition', 'expected definition on stack')\n\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'definition', 'expected definition on stack')\n\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'definition', 'expected definition on stack')\n\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'heading', 'expected heading on stack')\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n\n assert(\n depth === 1 ||\n depth === 2 ||\n depth === 3 ||\n depth === 4 ||\n depth === 5 ||\n depth === 6,\n 'expected `depth` between `1` and `6`'\n )\n\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'heading', 'expected heading on stack')\n\n node.depth =\n this.sliceSerialize(token).codePointAt(0) === codes.equalsTo ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert('children' in node, 'expected parent on stack')\n /** @type {Array<Nodes>} */\n const siblings = node.children\n\n let tail = siblings[siblings.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.push(tail)\n }\n\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n assert(tail, 'expected a `node` to be on the stack')\n assert('value' in tail, 'expected a `literal` to be on the stack')\n assert(tail.position, 'expected `node` to have an open position')\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n assert(context, 'expected `node`')\n\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n assert('children' in context, 'expected `parent`')\n const tail = context.children[context.children.length - 1]\n assert(tail.position, 'expected tail to have a starting position')\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'html', 'expected html on stack')\n\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'html', 'expected html on stack')\n\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'inlineCode', 'expected inline code on stack')\n\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'link', 'expected link on stack')\n\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'image', 'expected image on stack')\n\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n assert(ancestor, 'expected ancestor on stack')\n assert(\n ancestor.type === 'image' || ancestor.type === 'link',\n 'expected image or link on stack'\n )\n\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n assert(fragment, 'expected node on stack')\n assert(fragment.type === 'fragment', 'expected fragment on stack')\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image or link on stack'\n )\n\n // Assume a reference.\n this.data.inReference = true\n\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children\n\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image or link on stack'\n )\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image or link on stack'\n )\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(\n node.type === 'image' || node.type === 'link',\n 'expected image reference or link reference on stack'\n )\n\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n assert(\n token.type === 'characterReferenceMarkerNumeric' ||\n token.type === 'characterReferenceMarkerHexadecimal'\n )\n this.data.characterReferenceType = token.type\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = this.data.characterReferenceType\n /** @type {string} */\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === types.characterReferenceMarkerNumeric\n ? constants.numericBaseDecimal\n : constants.numericBaseHexadecimal\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n assert(result !== false, 'expected reference to decode')\n value = result\n }\n\n const tail = this.stack[this.stack.length - 1]\n assert(tail, 'expected `node`')\n assert('value' in tail, 'expected `node.value`')\n tail.value += value\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop()\n assert(tail, 'expected `node`')\n assert(tail.position, 'expected `node.position`')\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'link', 'expected link on stack')\n\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node, 'expected node on stack')\n assert(node.type === 'link', 'expected link on stack')\n\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {type: 'blockquote', children: []}\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {type: 'code', lang: null, meta: null, value: ''}\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {type: 'inlineCode', value: ''}\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {type: 'emphasis', children: []}\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {type: 'break'}\n }\n\n /** @returns {Html} */\n function html() {\n return {type: 'html', value: ''}\n }\n\n /** @returns {Image} */\n function image() {\n return {type: 'image', title: null, url: '', alt: null}\n }\n\n /** @returns {Link} */\n function link() {\n return {type: 'link', title: null, url: '', children: []}\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {type: 'paragraph', children: []}\n }\n\n /** @returns {Strong} */\n function strong() {\n return {type: 'strong', children: []}\n }\n\n /** @returns {Text} */\n function text() {\n return {type: 'text', value: ''}\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {type: 'thematicBreak'}\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {line: d.line, column: d.column, offset: d.offset}\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n\n break\n }\n\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n\n break\n }\n\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({start: left.start, end: left.end}) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({start: right.start, end: right.end}) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({start: right.start, end: right.end}) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(definition.url || '')}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type)\n return as([type, [...value]], value);\n \n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// <reference types=\"mdast-util-to-hast\" />\n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\n","export function detailsNode(title) {\n return {\n type: 'element',\n tagName: 'details',\n properties: { open: true, className: 'octicon octicon-video' },\n children: [\n {\n type: 'element',\n tagName: 'summary',\n properties: {},\n children: [\n {\n type: 'element',\n tagName: 'svg',\n properties: {\n 'aria-hidden': true, height: 16, width: 16, viewBox: '0 0 16 16', version: '1.1', 'data-view-component': true,\n className: 'octicon octicon-device-camera-video'\n },\n children: [\n {\n type: 'element',\n tagName: 'path',\n properties: {\n 'fill-rule': 'evenodd',\n d: 'M16 3.75a.75.75 0 00-1.136-.643L11 5.425V4.75A1.75 1.75 0 009.25 3h-7.5A1.75 1.75 0 000 4.75v6.5C0 12.216.784 13 1.75 13h7.5A1.75 1.75 0 0011 11.25v-.675l3.864 2.318A.75.75 0 0016 12.25v-8.5zm-5 5.075l3.5 2.1v-5.85l-3.5 2.1v1.65zM9.5 6.75v-2a.25.25 0 00-.25-.25h-7.5a.25.25 0 00-.25.25v6.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-4.5z'\n },\n children: [],\n }\n ]\n },\n {\n type: 'element',\n tagName: 'span',\n properties: {\n 'aria-label': `Video description ${title || ''}`\n },\n children: [\n {\n type: 'text',\n value: title || ''\n }\n ]\n },\n {\n type: 'element',\n tagName: 'span',\n properties: {\n className: 'dropdown-caret'\n },\n children: []\n }\n ]\n }\n ]\n };\n}\n//# sourceMappingURL=detailsNode.js.map","import { visit } from 'unist-util-visit';\nimport { detailsNode } from './detailsNode.js';\nconst properties = { muted: 'muted', controls: 'controls', style: 'max-height:640px;' };\nconst queryStringToObject = (url) => [...new URLSearchParams(url.split('?!#')[1])].reduce((a, [k, v]) => ((a[k] = v), a), {});\nfunction reElement(node, details, href) {\n const filename = href.split('/').pop()?.replace(/(\\?|!|\\#|$).+/, '');\n node.properties = { ...properties, src: href };\n node.tagName = 'video';\n node.children = [];\n const { title = filename } = queryStringToObject(href);\n if (details) {\n const reNode = detailsNode(title);\n reNode.children.push({ ...node });\n node.children = reNode.children;\n node.tagName = reNode.tagName;\n node.properties = reNode.properties;\n }\n}\nconst RehypeVideo = (options) => {\n const { test = /\\/(.*)(.mp4|.mov)$/, details = true } = options || {};\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n const isChecked = (str) => test.test(str.replace(/(\\?|!|\\#|$).+/g, '').toLocaleLowerCase());\n const child = node.children[0];\n const delimiter = /((?:https?:\\/\\/)(?:(?:[a-z0-9]?(?:[a-z0-9\\-]{1,61}[a-z0-9])?\\.[^\\.|\\s])+[a-z\\.]*[a-z]+|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3})(?::\\d{1,5})*[a-z0-9.,_\\/~#&=;%+?\\-\\\\(\\\\)]*)/g;\n // const delimiter = /((?:https?:\\/\\/)?(?:(?:[a-z0-9]?(?:[a-z0-9\\-]{1,61}[a-z0-9])?\\.[^\\.|\\s])+[a-z\\.]*[a-z]+|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3})(?::\\d{1,5})*[a-z0-9.,_\\/~#&=;%+?\\-\\\\(\\\\)]*)/g;\n if (node.tagName === 'p' && node.children.length === 1) {\n if (child.type === 'text' && delimiter.test(child.value) && isChecked(child.value)) {\n reElement(node, details, child.value);\n }\n if (child.type === 'element' && child.tagName === 'a' && child.properties && typeof child.properties.href === 'string' && isChecked(child.properties.href)) {\n reElement(node, details, child.properties.href);\n }\n }\n });\n };\n};\nexport default RehypeVideo;\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n */\n\n/**\n * @template {string} SimpleSelector\n * Selector type.\n * @template {string} DefaultTagName\n * Default tag name.\n * @typedef {(\n * SimpleSelector extends ''\n * ? DefaultTagName\n * : SimpleSelector extends `${infer TagName}.${infer Rest}`\n * ? ExtractTagName<TagName, DefaultTagName>\n * : SimpleSelector extends `${infer TagName}#${infer Rest}`\n * ? ExtractTagName<TagName, DefaultTagName>\n * : SimpleSelector extends string\n * ? SimpleSelector\n * : DefaultTagName\n * )} ExtractTagName\n * Extract tag name from a simple selector.\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n * Type of selector.\n * @template {string} [DefaultTagName='div']\n * Type of default tag name (default: `'div'`).\n * @param {Selector | null | undefined} [selector]\n * Simple CSS selector (optional).\n *\n * Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n * Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: ExtractTagName<Selector, DefaultTagName>}}\n * Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n const value = selector || ''\n /** @type {Properties} */\n const props = {}\n let start = 0\n /** @type {string | undefined} */\n let previous\n /** @type {string | undefined} */\n let tagName\n\n while (start < value.length) {\n search.lastIndex = start\n const match = search.exec(value)\n const subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n tagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n // @ts-expect-error: tag name is parsed.\n tagName: tagName || defaultTagName || 'div',\n properties: props,\n children: []\n }\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {Element | Root} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {number | string} StyleValue\n * Value for a CSS style field.\n * @typedef {Record<string, StyleValue>} Style\n * Supported value of a `style` prop.\n * @typedef {boolean | number | string | null | undefined} PrimitiveValue\n * Primitive property value.\n * @typedef {Array<number | string>} ArrayValue\n * List of property values for space- or comma separated values (such as `className`).\n * @typedef {ArrayValue | PrimitiveValue} PropertyValue\n * Primitive value or list value.\n * @typedef {{[property: string]: PropertyValue | Style}} Properties\n * Acceptable value for element properties.\n *\n * @typedef {number | string | null | undefined} PrimitiveChild\n * Primitive children, either ignored (nullish), or turned into text nodes.\n * @typedef {Array<ArrayChildNested | Nodes | PrimitiveChild>} ArrayChild\n * List of children.\n * @typedef {Array<Nodes | PrimitiveChild>} ArrayChildNested\n * List of children (deep).\n * @typedef {ArrayChild | Nodes | PrimitiveChild} Child\n * Acceptable child value.\n */\n\nimport {parse as commas} from 'comma-separated-tokens'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {find, normalize} from 'property-information'\nimport {parse as spaces} from 'space-separated-tokens'\n\nconst buttonTypes = new Set(['button', 'menu', 'reset', 'submit'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * Schema to use.\n * @param {string} defaultTagName\n * Default tag name.\n * @param {Array<string> | undefined} [caseSensitive]\n * Case-sensitive tag names (default: `undefined`).\n * @returns\n * `h`.\n */\nexport function createH(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @overload\n * @param {null | undefined} [selector]\n * @param {...Child} children\n * @returns {Root}\n *\n * @overload\n * @param {string} selector\n * @param {Properties} properties\n * @param {...Child} children\n * @returns {Element}\n *\n * @overload\n * @param {string} selector\n * @param {...Child} children\n * @returns {Element}\n *\n * @param {string | null | undefined} [selector]\n * Selector.\n * @param {Child | Properties | null | undefined} [properties]\n * Properties (or first child) (default: `undefined`).\n * @param {...Child} children\n * Children.\n * @returns {Result}\n * Result.\n */\n function h(selector, properties, ...children) {\n let index = -1\n /** @type {Result} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // Properties are not supported for roots.\n const child = /** @type {Child} */ (properties)\n children.unshift(child)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isProperties(properties, node.tagName)) {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n } else {\n children.unshift(properties)\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n return h\n}\n\n/**\n * Check if something is properties or a child.\n *\n * @param {Child | Properties} value\n * Value to check.\n * @param {string} name\n * Tag name.\n * @returns {value is Properties}\n * Whether `value` is a properties object.\n */\nfunction isProperties(value, name) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n if (name === 'input' || !value.type || typeof value.type !== 'string') {\n return true\n }\n\n if ('children' in value && Array.isArray(value.children)) {\n return false\n }\n\n if (name === 'button') {\n return buttonTypes.has(value.type.toLowerCase())\n }\n\n return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * Schema.\n * @param {Properties} properties\n * Properties object.\n * @param {string} key\n * Property name.\n * @param {PropertyValue | Style} value\n * Property value.\n * @returns {undefined}\n * Nothing.\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {PropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array<number | string>} */\n const finalResult = []\n\n while (++index < result.length) {\n // Assume no booleans in array.\n const value = /** @type {number | string} */ (\n parsePrimitive(info, info.property, result[index])\n )\n finalResult[index] = value\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // Assume no booleans in `className`.\n const value = /** @type {number | string} */ (result)\n result = properties.className.concat(value)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array<RootContent>} nodes\n * Children.\n * @param {Child} value\n * Child.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * Property information.\n * @param {string} name\n * Property name.\n * @param {PrimitiveValue} value\n * Property value.\n * @returns {PrimitiveValue}\n * Property value.\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {Style} value\n * Style object.\n * @returns {string}\n * CSS string.\n */\nfunction style(value) {\n /** @type {Array<string>} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {Array<string>} values\n * List of properly cased keys.\n * @returns {Record<string, string>}\n * Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n /** @type {Record<string, string>} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @typedef {import('./create-h.js').Child} Child\n * Acceptable child value.\n * @typedef {import('./create-h.js').Properties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./create-h.js').Result} Result\n * Result from a `h` (or `s`) call.\n */\n\n// Register the JSX namespace on `h`.\n/**\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n */\n\n// Register the JSX namespace on `s`.\n/**\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n */\n\nimport {html, svg} from 'property-information'\nimport {createH} from './create-h.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType<createH>} */\nexport const h = createH(html, 'div')\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType<createH>} */\nexport const s = createH(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('hast').Comment} HastComment\n * @typedef {import('hast').Doctype} HastDoctype\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n */\n\n/**\n * @callback AfterTransform\n * Callback called when each node is transformed.\n * @param {Node} domNode\n * DOM node that was handled.\n * @param {HastNodes} hastNode\n * Corresponding hast node.\n * @returns {undefined | void}\n * Nothing.\n *\n * Note: `void` included until TS infers `undefined` nicely.\n *\n * @typedef Options\n * Configuration.\n * @property {AfterTransform | null | undefined} [afterTransform]\n * Callback called when each node is transformed (optional).\n */\n\nimport {h, s} from 'hastscript'\nimport {webNamespaces} from 'web-namespaces'\n\n/**\n * Transform a DOM tree to a hast tree.\n *\n * @param {Node} tree\n * DOM tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * Equivalent hast node.\n */\nexport function fromDom(tree, options) {\n return transform(tree, options || {}) || {type: 'root', children: []}\n}\n\n/**\n * @param {Node} node\n * DOM node to transform.\n * @param {Options} options\n * Configuration.\n * @returns {HastNodes | undefined}\n * Equivalent hast node.\n *\n * Note that certain legacy DOM nodes (i.e., Attr nodes (2), CDATA, processing instructions)\n */\nfunction transform(node, options) {\n const transformed = one(node, options)\n if (transformed && options.afterTransform)\n options.afterTransform(node, transformed)\n return transformed\n}\n\n/**\n * @param {Node} node\n * DOM node to transform.\n * @param {Options} options\n * Configuration.\n * @returns {HastNodes | undefined}\n * Equivalent hast node.\n */\nfunction one(node, options) {\n switch (node.nodeType) {\n case 1 /* Element */: {\n const domNode = /** @type {Element} */ (node)\n return element(domNode, options)\n }\n\n // Ignore: Attr (2).\n\n case 3 /* Text */: {\n const domNode = /** @type {Text} */ (node)\n return text(domNode)\n }\n\n // Ignore: CDATA (4).\n // Removed: Entity reference (5)\n // Removed: Entity (6)\n // Ignore: Processing instruction (7).\n\n case 8 /* Comment */: {\n const domNode = /** @type {Comment} */ (node)\n return comment(domNode)\n }\n\n case 9 /* Document */: {\n const domNode = /** @type {Document} */ (node)\n return root(domNode, options)\n }\n\n case 10 /* Document type */: {\n return doctype()\n }\n\n case 11 /* Document fragment */: {\n const domNode = /** @type {DocumentFragment} */ (node)\n return root(domNode, options)\n }\n\n default: {\n return undefined\n }\n }\n}\n\n/**\n * Transform a document.\n *\n * @param {Document | DocumentFragment} node\n * DOM node to transform.\n * @param {Options} options\n * Configuration.\n * @returns {HastRoot}\n * Equivalent hast node.\n */\nfunction root(node, options) {\n return {type: 'root', children: all(node, options)}\n}\n\n/**\n * Transform a doctype.\n *\n * @returns {HastDoctype}\n * Equivalent hast node.\n */\nfunction doctype() {\n return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @param {Text} node\n * DOM node to transform.\n * @returns {HastText}\n * Equivalent hast node.\n */\nfunction text(node) {\n return {type: 'text', value: node.nodeValue || ''}\n}\n\n/**\n * Transform a comment.\n *\n * @param {Comment} node\n * DOM node to transform.\n * @returns {HastComment}\n * Equivalent hast node.\n */\nfunction comment(node) {\n return {type: 'comment', value: node.nodeValue || ''}\n}\n\n/**\n * Transform an element.\n *\n * @param {Element} node\n * DOM node to transform.\n * @param {Options} options\n * Configuration.\n * @returns {HastElement}\n * Equivalent hast node.\n */\nfunction element(node, options) {\n const space = node.namespaceURI\n const fn = space === webNamespaces.svg ? s : h\n const tagName =\n space === webNamespaces.html ? node.tagName.toLowerCase() : node.tagName\n /** @type {DocumentFragment | Element} */\n const content =\n // @ts-expect-error: DOM types are wrong, content can exist.\n space === webNamespaces.html && tagName === 'template' ? node.content : node\n const attributes = node.getAttributeNames()\n /** @type {Record<string, string>} */\n const props = {}\n let index = -1\n\n while (++index < attributes.length) {\n props[attributes[index]] = node.getAttribute(attributes[index]) || ''\n }\n\n return fn(tagName, props, all(content, options))\n}\n\n/**\n * Transform child nodes in a parent.\n *\n * @param {Document | DocumentFragment | Element} node\n * DOM node to transform.\n * @param {Options} options\n * Configuration.\n * @returns {Array<HastRootContent>}\n * Equivalent hast nodes.\n */\nfunction all(node, options) {\n const nodes = node.childNodes\n /** @type {Array<HastRootContent>} */\n const children = []\n let index = -1\n\n while (++index < nodes.length) {\n const child = transform(nodes[index], options)\n\n if (child !== undefined) {\n // @ts-expect-error Assume no document inside document.\n children.push(child)\n }\n }\n\n return children\n}\n","/**\n * @typedef {import('hast').Root} Root\n *\n * @typedef {typeof import('./index.js').fromHtmlIsomorphic} FromHtmlIsomorphic\n */\n\nimport {fromDom} from 'hast-util-from-dom'\n\nconst parser = new DOMParser()\n\n/** @type {FromHtmlIsomorphic} */\nexport function fromHtmlIsomorphic(value, options) {\n const node = options?.fragment\n ? parseFragment(value)\n : parser.parseFromString(value, 'text/html')\n\n return /** @type {Root} */ (fromDom(node))\n}\n\n/**\n * Parse as a fragment.\n *\n * @param {string} value\n * @returns {DocumentFragment}\n */\nfunction parseFragment(value) {\n const template = document.createElement('template')\n template.innerHTML = value\n return template.content\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {(\n * Kind extends {children: Array<infer Child>}\n * ? Child\n * : never\n * )} Child\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Kind\n * All node types.\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Find the first node in `parent` after another `node` or after an index,\n * that passes `test`.\n *\n * @param parent\n * Parent node.\n * @param index\n * Child node or index.\n * @param [test=undefined]\n * Test for child to look for (optional).\n * @returns\n * A child (matching `test`, if given) or `undefined`.\n */\nexport const findAfter =\n // Note: overloads like this are needed to support optional generics.\n /**\n * @type {(\n * (<Kind extends UnistParent, Check extends Test>(parent: Kind, index: Child<Kind> | number, test: Check) => Matches<Child<Kind>, Check> | undefined) &\n * (<Kind extends UnistParent>(parent: Kind, index: Child<Kind> | number, test?: null | undefined) => Child<Kind> | undefined)\n * )}\n */\n (\n /**\n * @param {UnistParent} parent\n * @param {UnistNode | number} index\n * @param {Test} [test]\n * @returns {UnistNode | undefined}\n */\n function (parent, index, test) {\n const is = convert(test)\n\n if (!parent || !parent.type || !parent.children) {\n throw new Error('Expected parent node')\n }\n\n if (typeof index === 'number') {\n if (index < 0 || index === Number.POSITIVE_INFINITY) {\n throw new Error('Expected positive finite number as index')\n }\n } else {\n index = parent.children.indexOf(index)\n\n if (index < 0) {\n throw new Error('Expected child node or index')\n }\n }\n\n while (++index < parent.children.length) {\n if (is(parent.children[index], index, parent)) {\n return parent.children[index]\n }\n }\n\n return undefined\n }\n )\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array<TestFunction | string> | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends TestFunction>(element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate<Condition, Element>) &\n * (<Condition extends string>(element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends TestFunction>(test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate<Condition, Element>) &\n * (<Condition extends string>(test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array<TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast-util-is-element').TestFunction} TestFunction\n */\n\n/**\n * @typedef {'normal' | 'nowrap' | 'pre' | 'pre-wrap'} Whitespace\n * Valid and useful whitespace values (from CSS).\n *\n * @typedef {0 | 1 | 2} BreakNumber\n * Specific break:\n *\n * * `0` — space\n * * `1` — line ending\n * * `2` — blank line\n *\n * @typedef {'\\n'} BreakForce\n * Forced break.\n *\n * @typedef {boolean} BreakValue\n * Whether there was a break.\n *\n * @typedef {BreakNumber | BreakValue | undefined} BreakBefore\n * Any value for a break before.\n *\n * @typedef {BreakForce | BreakNumber | BreakValue | undefined} BreakAfter\n * Any value for a break after.\n *\n * @typedef CollectionInfo\n * Info on current collection.\n * @property {BreakAfter} breakAfter\n * Whether there was a break after.\n * @property {BreakBefore} breakBefore\n * Whether there was a break before.\n * @property {Whitespace} whitespace\n * Current whitespace setting.\n *\n * @typedef Options\n * Configuration.\n * @property {Whitespace | null | undefined} [whitespace='normal']\n * Initial CSS whitespace setting to use (default: `'normal'`).\n */\n\nimport {findAfter} from 'unist-util-find-after'\nimport {convertElement} from 'hast-util-is-element'\n\nconst searchLineFeeds = /\\n/g\nconst searchTabOrSpaces = /[\\t ]+/g\n\nconst br = convertElement('br')\nconst cell = convertElement(isCell)\nconst p = convertElement('p')\nconst row = convertElement('tr')\n\n// Note that we don’t need to include void elements here as they don’t have text.\n// See: <https://github.com/wooorm/html-void-elements>\nconst notRendered = convertElement([\n // List from: <https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements>\n 'datalist',\n 'head',\n 'noembed',\n 'noframes',\n 'noscript', // Act as if we support scripting.\n 'rp',\n 'script',\n 'style',\n 'template',\n 'title',\n // Hidden attribute.\n hidden,\n // From: <https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3>\n closedDialog\n])\n\n// See: <https://html.spec.whatwg.org/multipage/rendering.html#the-css-user-agent-style-sheet-and-presentational-hints>\nconst blockOrCaption = convertElement([\n 'address', // Flow content\n 'article', // Sections and headings\n 'aside', // Sections and headings\n 'blockquote', // Flow content\n 'body', // Page\n 'caption', // `table-caption`\n 'center', // Flow content (legacy)\n 'dd', // Lists\n 'dialog', // Flow content\n 'dir', // Lists (legacy)\n 'dl', // Lists\n 'dt', // Lists\n 'div', // Flow content\n 'figure', // Flow content\n 'figcaption', // Flow content\n 'footer', // Flow content\n 'form,', // Flow content\n 'h1', // Sections and headings\n 'h2', // Sections and headings\n 'h3', // Sections and headings\n 'h4', // Sections and headings\n 'h5', // Sections and headings\n 'h6', // Sections and headings\n 'header', // Flow content\n 'hgroup', // Sections and headings\n 'hr', // Flow content\n 'html', // Page\n 'legend', // Flow content\n 'li', // Lists (as `display: list-item`)\n 'listing', // Flow content (legacy)\n 'main', // Flow content\n 'menu', // Lists\n 'nav', // Sections and headings\n 'ol', // Lists\n 'p', // Flow content\n 'plaintext', // Flow content (legacy)\n 'pre', // Flow content\n 'section', // Sections and headings\n 'ul', // Lists\n 'xmp' // Flow content (legacy)\n])\n\n/**\n * Get the plain-text value of a node.\n *\n * ###### Algorithm\n *\n * * if `tree` is a comment, returns its `value`\n * * if `tree` is a text, applies normal whitespace collapsing to its\n * `value`, as defined by the CSS Text spec\n * * if `tree` is a root or element, applies an algorithm similar to the\n * `innerText` getter as defined by HTML\n *\n * ###### Notes\n *\n * > 👉 **Note**: the algorithm acts as if `tree` is being rendered, and as if\n * > we’re a CSS-supporting user agent, with scripting enabled.\n *\n * * if `tree` is an element that is not displayed (such as a `head`), we’ll\n * still use the `innerText` algorithm instead of switching to `textContent`\n * * if descendants of `tree` are elements that are not displayed, they are\n * ignored\n * * CSS is not considered, except for the default user agent style sheet\n * * a line feed is collapsed instead of ignored in cases where Fullwidth, Wide,\n * or Halfwidth East Asian Width characters are used, the same goes for a case\n * with Chinese, Japanese, or Yi writing systems\n * * replaced elements (such as `audio`) are treated like non-replaced elements\n *\n * @param {Nodes} tree\n * Tree to turn into text.\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `tree`.\n */\nexport function toText(tree, options) {\n const options_ = options || {}\n const children = 'children' in tree ? tree.children : []\n const block = blockOrCaption(tree)\n const whitespace = inferWhitespace(tree, {\n whitespace: options_.whitespace || 'normal',\n breakBefore: false,\n breakAfter: false\n })\n\n /** @type {Array<BreakNumber | string>} */\n const results = []\n\n // Treat `text` and `comment` as having normal white-space.\n // This deviates from the spec as in the DOM the node’s `.data` has to be\n // returned.\n // If you want that behavior use `hast-util-to-string`.\n // All other nodes are later handled as if they are `element`s (so the\n // algorithm also works on a `root`).\n // Nodes without children are treated as a void element, so `doctype` is thus\n // ignored.\n if (tree.type === 'text' || tree.type === 'comment') {\n results.push(\n ...collectText(tree, {\n whitespace,\n breakBefore: true,\n breakAfter: true\n })\n )\n }\n\n // 1. If this element is not being rendered, or if the user agent is a\n // non-CSS user agent, then return the same value as the textContent IDL\n // attribute on this element.\n //\n // Note: we’re not supporting stylesheets so we’re acting as if the node\n // is rendered.\n //\n // If you want that behavior use `hast-util-to-string`.\n // Important: we’ll have to account for this later though.\n\n // 2. Let results be a new empty list.\n let index = -1\n\n // 3. For each child node node of this element:\n while (++index < children.length) {\n // 3.1. Let current be the list resulting in running the inner text\n // collection steps with node.\n // Each item in results will either be a JavaScript string or a\n // positive integer (a required line break count).\n // 3.2. For each item item in current, append item to results.\n results.push(\n ...renderedTextCollection(\n children[index],\n // @ts-expect-error: `tree` is a parent if we’re here.\n tree,\n {\n whitespace,\n breakBefore: index ? undefined : block,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : block\n }\n )\n )\n }\n\n // 4. Remove any items from results that are the empty string.\n // 5. Remove any runs of consecutive required line break count items at the\n // start or end of results.\n // 6. Replace each remaining run of consecutive required line break count\n // items with a string consisting of as many U+000A LINE FEED (LF)\n // characters as the maximum of the values in the required line break\n // count items.\n /** @type {Array<string>} */\n const result = []\n /** @type {number | undefined} */\n let count\n\n index = -1\n\n while (++index < results.length) {\n const value = results[index]\n\n if (typeof value === 'number') {\n if (count !== undefined && value > count) count = value\n } else if (value) {\n if (count !== undefined && count > -1) {\n result.push('\\n'.repeat(count) || ' ')\n }\n\n count = -1\n result.push(value)\n }\n }\n\n // 7. Return the concatenation of the string items in results.\n return result.join('')\n}\n\n/**\n * <https://html.spec.whatwg.org/multipage/dom.html#rendered-text-collection-steps>\n *\n * @param {Nodes} node\n * @param {Parents} parent\n * @param {CollectionInfo} info\n * @returns {Array<BreakNumber | string>}\n */\nfunction renderedTextCollection(node, parent, info) {\n if (node.type === 'element') {\n return collectElement(node, parent, info)\n }\n\n if (node.type === 'text') {\n return info.whitespace === 'normal'\n ? collectText(node, info)\n : collectPreText(node)\n }\n\n return []\n}\n\n/**\n * Collect an element.\n *\n * @param {Element} node\n * Element node.\n * @param {Parents} parent\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Array<BreakNumber | string>}\n */\nfunction collectElement(node, parent, info) {\n // First we infer the `white-space` property.\n const whitespace = inferWhitespace(node, info)\n const children = node.children || []\n let index = -1\n /** @type {Array<BreakNumber | string>} */\n let items = []\n\n // We’re ignoring point 3, and exiting without any content here, because we\n // deviated from the spec in `toText` at step 3.\n if (notRendered(node)) {\n return items\n }\n\n /** @type {BreakNumber | undefined} */\n let prefix\n /** @type {BreakForce | BreakNumber | undefined} */\n let suffix\n // Note: we first detect if there is going to be a break before or after the\n // contents, as that changes the white-space handling.\n\n // 2. If node’s computed value of `visibility` is not `visible`, then return\n // items.\n //\n // Note: Ignored, as everything is visible by default user agent styles.\n\n // 3. If node is not being rendered, then return items. [...]\n //\n // Note: We already did this above.\n\n // See `collectText` for step 4.\n\n // 5. If node is a `<br>` element, then append a string containing a single\n // U+000A LINE FEED (LF) character to items.\n if (br(node)) {\n suffix = '\\n'\n }\n\n // 7. If node’s computed value of `display` is `table-row`, and node’s CSS\n // box is not the last `table-row` box of the nearest ancestor `table`\n // box, then append a string containing a single U+000A LINE FEED (LF)\n // character to items.\n //\n // See: <https://html.spec.whatwg.org/multipage/rendering.html#tables-2>\n // Note: needs further investigation as this does not account for implicit\n // rows.\n else if (\n row(node) &&\n // @ts-expect-error: something up with types of parents.\n findAfter(parent, node, row)\n ) {\n suffix = '\\n'\n }\n\n // 8. If node is a `<p>` element, then append 2 (a required line break count)\n // at the beginning and end of items.\n else if (p(node)) {\n prefix = 2\n suffix = 2\n }\n\n // 9. If node’s used value of `display` is block-level or `table-caption`,\n // then append 1 (a required line break count) at the beginning and end of\n // items.\n else if (blockOrCaption(node)) {\n prefix = 1\n suffix = 1\n }\n\n // 1. Let items be the result of running the inner text collection steps with\n // each child node of node in tree order, and then concatenating the\n // results to a single list.\n while (++index < children.length) {\n items = items.concat(\n renderedTextCollection(children[index], node, {\n whitespace,\n breakBefore: index ? undefined : prefix,\n breakAfter:\n index < children.length - 1 ? br(children[index + 1]) : suffix\n })\n )\n }\n\n // 6. If node’s computed value of `display` is `table-cell`, and node’s CSS\n // box is not the last `table-cell` box of its enclosing `table-row` box,\n // then append a string containing a single U+0009 CHARACTER TABULATION\n // (tab) character to items.\n //\n // See: <https://html.spec.whatwg.org/multipage/rendering.html#tables-2>\n if (\n cell(node) &&\n // @ts-expect-error: something up with types of parents.\n findAfter(parent, node, cell)\n ) {\n items.push('\\t')\n }\n\n // Add the pre- and suffix.\n if (prefix) items.unshift(prefix)\n if (suffix) items.push(suffix)\n\n return items\n}\n\n/**\n * 4. If node is a Text node, then for each CSS text box produced by node,\n * in content order, compute the text of the box after application of the\n * CSS `white-space` processing rules and `text-transform` rules, set\n * items to the list of the resulting strings, and return items.\n * The CSS `white-space` processing rules are slightly modified:\n * collapsible spaces at the end of lines are always collapsed, but they\n * are only removed if the line is the last line of the block, or it ends\n * with a br element.\n * Soft hyphens should be preserved.\n *\n * Note: See `collectText` and `collectPreText`.\n * Note: we don’t deal with `text-transform`, no element has that by\n * default.\n *\n * See: <https://drafts.csswg.org/css-text/#white-space-phase-1>\n *\n * @param {Comment | Text} node\n * Text node.\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Array<BreakNumber | string>}\n * Result.\n */\nfunction collectText(node, info) {\n const value = String(node.value)\n /** @type {Array<string>} */\n const lines = []\n /** @type {Array<BreakNumber | string>} */\n const result = []\n let start = 0\n\n while (start <= value.length) {\n searchLineFeeds.lastIndex = start\n\n const match = searchLineFeeds.exec(value)\n const end = match && 'index' in match ? match.index : value.length\n\n lines.push(\n // Any sequence of collapsible spaces and tabs immediately preceding or\n // following a segment break is removed.\n trimAndCollapseSpacesAndTabs(\n // […] ignoring bidi formatting characters (characters with the\n // Bidi_Control property [UAX9]: ALM, LTR, RTL, LRE-RLO, LRI-PDI) as if\n // they were not there.\n value\n .slice(start, end)\n .replace(/[\\u061C\\u200E\\u200F\\u202A-\\u202E\\u2066-\\u2069]/g, ''),\n start === 0 ? info.breakBefore : true,\n end === value.length ? info.breakAfter : true\n )\n )\n\n start = end + 1\n }\n\n // Collapsible segment breaks are transformed for rendering according to the\n // segment break transformation rules.\n // So here we jump to 4.1.2 of [CSSTEXT]:\n // Any collapsible segment break immediately following another collapsible\n // segment break is removed\n let index = -1\n /** @type {BreakNumber | undefined} */\n let join\n\n while (++index < lines.length) {\n // * If the character immediately before or immediately after the segment\n // break is the zero-width space character (U+200B), then the break is\n // removed, leaving behind the zero-width space.\n if (\n lines[index].charCodeAt(lines[index].length - 1) === 0x20_0b /* ZWSP */ ||\n (index < lines.length - 1 &&\n lines[index + 1].charCodeAt(0) === 0x20_0b) /* ZWSP */\n ) {\n result.push(lines[index])\n join = undefined\n }\n\n // * Otherwise, if the East Asian Width property [UAX11] of both the\n // character before and after the segment break is Fullwidth, Wide, or\n // Halfwidth (not Ambiguous), and neither side is Hangul, then the\n // segment break is removed.\n //\n // Note: ignored.\n // * Otherwise, if the writing system of the segment break is Chinese,\n // Japanese, or Yi, and the character before or after the segment break\n // is punctuation or a symbol (Unicode general category P* or S*) and\n // has an East Asian Width property of Ambiguous, and the character on\n // the other side of the segment break is Fullwidth, Wide, or Halfwidth,\n // and not Hangul, then the segment break is removed.\n //\n // Note: ignored.\n\n // * Otherwise, the segment break is converted to a space (U+0020).\n else if (lines[index]) {\n if (typeof join === 'number') result.push(join)\n result.push(lines[index])\n join = 0\n } else if (index === 0 || index === lines.length - 1) {\n // If this line is empty, and it’s the first or last, add a space.\n // Note that this function is only called in normal whitespace, so we\n // don’t worry about `pre`.\n result.push(0)\n }\n }\n\n return result\n}\n\n/**\n * Collect a text node as “pre†whitespace.\n *\n * @param {Text} node\n * Text node.\n * @returns {Array<BreakNumber | string>}\n * Result.\n */\nfunction collectPreText(node) {\n return [String(node.value)]\n}\n\n/**\n * 3. Every collapsible tab is converted to a collapsible space (U+0020).\n * 4. Any collapsible space immediately following another collapsible\n * space—even one outside the boundary of the inline containing that\n * space, provided both spaces are within the same inline formatting\n * context—is collapsed to have zero advance width. (It is invisible,\n * but retains its soft wrap opportunity, if any.)\n *\n * @param {string} value\n * Value to collapse.\n * @param {BreakBefore} breakBefore\n * Whether there was a break before.\n * @param {BreakAfter} breakAfter\n * Whether there was a break after.\n * @returns {string}\n * Result.\n */\nfunction trimAndCollapseSpacesAndTabs(value, breakBefore, breakAfter) {\n /** @type {Array<string>} */\n const result = []\n let start = 0\n /** @type {number | undefined} */\n let end\n\n while (start < value.length) {\n searchTabOrSpaces.lastIndex = start\n const match = searchTabOrSpaces.exec(value)\n end = match ? match.index : value.length\n\n // If we’re not directly after a segment break, but there was white space,\n // add an empty value that will be turned into a space.\n if (!start && !end && match && !breakBefore) {\n result.push('')\n }\n\n if (start !== end) {\n result.push(value.slice(start, end))\n }\n\n start = match ? end + match[0].length : end\n }\n\n // If we reached the end, there was trailing white space, and there’s no\n // segment break after this node, add an empty value that will be turned\n // into a space.\n if (start !== end && !breakAfter) {\n result.push('')\n }\n\n return result.join(' ')\n}\n\n/**\n * Figure out the whitespace of a node.\n *\n * We don’t support void elements here (so `nobr wbr` -> `normal` is ignored).\n *\n * @param {Nodes} node\n * Node (typically `Element`).\n * @param {CollectionInfo} info\n * Info on current collection.\n * @returns {Whitespace}\n * Applied whitespace.\n */\nfunction inferWhitespace(node, info) {\n if (node.type === 'element') {\n const properties = node.properties || {}\n switch (node.tagName) {\n case 'listing':\n case 'plaintext':\n case 'xmp': {\n return 'pre'\n }\n\n case 'nobr': {\n return 'nowrap'\n }\n\n case 'pre': {\n return properties.wrap ? 'pre-wrap' : 'pre'\n }\n\n case 'td':\n case 'th': {\n return properties.noWrap ? 'nowrap' : info.whitespace\n }\n\n case 'textarea': {\n return 'pre-wrap'\n }\n\n default:\n }\n }\n\n return info.whitespace\n}\n\n/**\n * @type {TestFunction}\n * @param {Element} node\n * @returns {node is {properties: {hidden: true}}}\n */\nfunction hidden(node) {\n return Boolean((node.properties || {}).hidden)\n}\n\n/**\n * @type {TestFunction}\n * @param {Element} node\n * @returns {node is {tagName: 'td' | 'th'}}\n */\nfunction isCell(node) {\n return node.tagName === 'td' || node.tagName === 'th'\n}\n\n/**\n * @type {TestFunction}\n */\nfunction closedDialog(node) {\n return node.tagName === 'dialog' && !(node.properties || {}).open\n}\n","/**\n * Lexing or parsing positional information for error reporting.\n * This object is immutable.\n */\nclass SourceLocation {\n // The + prefix indicates that these fields aren't writeable\n // Lexer holding the input string.\n // Start offset, zero-based inclusive.\n // End offset, zero-based exclusive.\n constructor(lexer, start, end) {\n this.lexer = void 0;\n this.start = void 0;\n this.end = void 0;\n this.lexer = lexer;\n this.start = start;\n this.end = end;\n }\n /**\n * Merges two `SourceLocation`s from location providers, given they are\n * provided in order of appearance.\n * - Returns the first one's location if only the first is provided.\n * - Returns a merged range of the first and the last if both are provided\n * and their lexers match.\n * - Otherwise, returns null.\n */\n\n\n static range(first, second) {\n if (!second) {\n return first && first.loc;\n } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) {\n return null;\n } else {\n return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end);\n }\n }\n\n}\n\n/**\n * Interface required to break circular dependency between Token, Lexer, and\n * ParseError.\n */\n\n/**\n * The resulting token returned from `lex`.\n *\n * It consists of the token text plus some position information.\n * The position information is essentially a range in an input string,\n * but instead of referencing the bare input string, we refer to the lexer.\n * That way it is possible to attach extra metadata to the input string,\n * like for example a file name or similar.\n *\n * The position information is optional, so it is OK to construct synthetic\n * tokens if appropriate. Not providing available position information may\n * lead to degraded error reporting, though.\n */\nclass Token {\n // don't expand the token\n // used in \\noexpand\n constructor(text, // the text of this token\n loc) {\n this.text = void 0;\n this.loc = void 0;\n this.noexpand = void 0;\n this.treatAsRelax = void 0;\n this.text = text;\n this.loc = loc;\n }\n /**\n * Given a pair of tokens (this and endToken), compute a `Token` encompassing\n * the whole input range enclosed by these two.\n */\n\n\n range(endToken, // last token of the range, inclusive\n text // the text of the newly constructed token\n ) {\n return new Token(text, SourceLocation.range(this, endToken));\n }\n\n}\n\n/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n *\n * If possible, a caller should provide a Token or ParseNode with information\n * about where in the source string the problem occurred.\n */\nclass ParseError {\n // Error start position based on passed-in Token or ParseNode.\n // Length of affected text based on passed-in Token or ParseNode.\n // The underlying error message without any context added.\n constructor(message, // The error message\n token // An object providing position information\n ) {\n this.name = void 0;\n this.position = void 0;\n this.length = void 0;\n this.rawMessage = void 0;\n var error = \"KaTeX parse error: \" + message;\n var start;\n var end;\n var loc = token && token.loc;\n\n if (loc && loc.start <= loc.end) {\n // If we have the input and a position, make the error a bit fancier\n // Get the input\n var input = loc.lexer.input; // Prepend some information\n\n start = loc.start;\n end = loc.end;\n\n if (start === input.length) {\n error += \" at end of input: \";\n } else {\n error += \" at position \" + (start + 1) + \": \";\n } // Underline token in question using combining underscores\n\n\n var underlined = input.slice(start, end).replace(/[^]/g, \"$&\\u0332\"); // Extract some context from the input and add it to the error\n\n var left;\n\n if (start > 15) {\n left = \"…\" + input.slice(start - 15, start);\n } else {\n left = input.slice(0, start);\n }\n\n var right;\n\n if (end + 15 < input.length) {\n right = input.slice(end, end + 15) + \"…\";\n } else {\n right = input.slice(end);\n }\n\n error += left + underlined + right;\n } // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n // $FlowFixMe\n\n\n var self = new Error(error);\n self.name = \"ParseError\"; // $FlowFixMe\n\n self.__proto__ = ParseError.prototype;\n self.position = start;\n\n if (start != null && end != null) {\n self.length = end - start;\n }\n\n self.rawMessage = message;\n return self;\n }\n\n} // $FlowFixMe More hackery\n\n\nParseError.prototype.__proto__ = Error.prototype;\n\n/**\n * This file contains a list of utility functions which are useful in other\n * files.\n */\n\n/**\n * Return whether an element is contained in a list\n */\nvar contains = function contains(list, elem) {\n return list.indexOf(elem) !== -1;\n};\n/**\n * Provide a default value if a setting is undefined\n * NOTE: Couldn't use `T` as the output type due to facebook/flow#5022.\n */\n\n\nvar deflt = function deflt(setting, defaultIfUndefined) {\n return setting === undefined ? defaultIfUndefined : setting;\n}; // hyphenate and escape adapted from Facebook's React under Apache 2 license\n\n\nvar uppercase = /([A-Z])/g;\n\nvar hyphenate = function hyphenate(str) {\n return str.replace(uppercase, \"-$1\").toLowerCase();\n};\n\nvar ESCAPE_LOOKUP = {\n \"&\": \"&\",\n \">\": \">\",\n \"<\": \"<\",\n \"\\\"\": \""\",\n \"'\": \"'\"\n};\nvar ESCAPE_REGEX = /[&><\"']/g;\n/**\n * Escapes text to prevent scripting attacks.\n */\n\nfunction escape(text) {\n return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\n\n\nvar getBaseElem = function getBaseElem(group) {\n if (group.type === \"ordgroup\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"color\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"font\") {\n return getBaseElem(group.body);\n } else {\n return group;\n }\n};\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\n\n\nvar isCharacterBox = function isCharacterBox(group) {\n var baseElem = getBaseElem(group); // These are all they types of groups which hold single characters\n\n return baseElem.type === \"mathord\" || baseElem.type === \"textord\" || baseElem.type === \"atom\";\n};\n\nvar assert = function assert(value) {\n if (!value) {\n throw new Error('Expected non-null, but got ' + String(value));\n }\n\n return value;\n};\n/**\n * Return the protocol of a URL, or \"_relative\" if the URL does not specify a\n * protocol (and thus is relative), or `null` if URL has invalid protocol\n * (so should be outright rejected).\n */\n\nvar protocolFromUrl = function protocolFromUrl(url) {\n // Check for possible leading protocol.\n // https://url.spec.whatwg.org/#url-parsing strips leading whitespace\n // (U+20) or C0 control (U+00-U+1F) characters.\n // eslint-disable-next-line no-control-regex\n var protocol = /^[\\x00-\\x20]*([^\\\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(url);\n\n if (!protocol) {\n return \"_relative\";\n } // Reject weird colons\n\n\n if (protocol[2] !== \":\") {\n return null;\n } // Reject invalid characters in scheme according to\n // https://datatracker.ietf.org/doc/html/rfc3986#section-3.1\n\n\n if (!/^[a-zA-Z][a-zA-Z0-9+\\-.]*$/.test(protocol[1])) {\n return null;\n } // Lowercase the protocol\n\n\n return protocol[1].toLowerCase();\n};\nvar utils = {\n contains,\n deflt,\n escape,\n hyphenate,\n getBaseElem,\n isCharacterBox,\n protocolFromUrl\n};\n\n/* eslint no-console:0 */\n// TODO: automatically generate documentation\n// TODO: check all properties on Settings exist\n// TODO: check the type of a property on Settings matches\nvar SETTINGS_SCHEMA = {\n displayMode: {\n type: \"boolean\",\n description: \"Render math in display mode, which puts the math in \" + \"display style (so \\\\int and \\\\sum are large, for example), and \" + \"centers the math on the page on its own line.\",\n cli: \"-d, --display-mode\"\n },\n output: {\n type: {\n enum: [\"htmlAndMathml\", \"html\", \"mathml\"]\n },\n description: \"Determines the markup language of the output.\",\n cli: \"-F, --format <type>\"\n },\n leqno: {\n type: \"boolean\",\n description: \"Render display math in leqno style (left-justified tags).\"\n },\n fleqn: {\n type: \"boolean\",\n description: \"Render display math flush left.\"\n },\n throwOnError: {\n type: \"boolean\",\n default: true,\n cli: \"-t, --no-throw-on-error\",\n cliDescription: \"Render errors (in the color given by --error-color) ins\" + \"tead of throwing a ParseError exception when encountering an error.\"\n },\n errorColor: {\n type: \"string\",\n default: \"#cc0000\",\n cli: \"-c, --error-color <color>\",\n cliDescription: \"A color string given in the format 'rgb' or 'rrggbb' \" + \"(no #). This option determines the color of errors rendered by the \" + \"-t option.\",\n cliProcessor: color => \"#\" + color\n },\n macros: {\n type: \"object\",\n cli: \"-m, --macro <def>\",\n cliDescription: \"Define custom macro of the form '\\\\foo:expansion' (use \" + \"multiple -m arguments for multiple macros).\",\n cliDefault: [],\n cliProcessor: (def, defs) => {\n defs.push(def);\n return defs;\n }\n },\n minRuleThickness: {\n type: \"number\",\n description: \"Specifies a minimum thickness, in ems, for fraction lines,\" + \" `\\\\sqrt` top lines, `{array}` vertical lines, `\\\\hline`, \" + \"`\\\\hdashline`, `\\\\underline`, `\\\\overline`, and the borders of \" + \"`\\\\fbox`, `\\\\boxed`, and `\\\\fcolorbox`.\",\n processor: t => Math.max(0, t),\n cli: \"--min-rule-thickness <size>\",\n cliProcessor: parseFloat\n },\n colorIsTextColor: {\n type: \"boolean\",\n description: \"Makes \\\\color behave like LaTeX's 2-argument \\\\textcolor, \" + \"instead of LaTeX's one-argument \\\\color mode change.\",\n cli: \"-b, --color-is-text-color\"\n },\n strict: {\n type: [{\n enum: [\"warn\", \"ignore\", \"error\"]\n }, \"boolean\", \"function\"],\n description: \"Turn on strict / LaTeX faithfulness mode, which throws an \" + \"error if the input uses features that are not supported by LaTeX.\",\n cli: \"-S, --strict\",\n cliDefault: false\n },\n trust: {\n type: [\"boolean\", \"function\"],\n description: \"Trust the input, enabling all HTML features such as \\\\url.\",\n cli: \"-T, --trust\"\n },\n maxSize: {\n type: \"number\",\n default: Infinity,\n description: \"If non-zero, all user-specified sizes, e.g. in \" + \"\\\\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, \" + \"elements and spaces can be arbitrarily large\",\n processor: s => Math.max(0, s),\n cli: \"-s, --max-size <n>\",\n cliProcessor: parseInt\n },\n maxExpand: {\n type: \"number\",\n default: 1000,\n description: \"Limit the number of macro expansions to the specified \" + \"number, to prevent e.g. infinite macro loops. If set to Infinity, \" + \"the macro expander will try to fully expand as in LaTeX.\",\n processor: n => Math.max(0, n),\n cli: \"-e, --max-expand <n>\",\n cliProcessor: n => n === \"Infinity\" ? Infinity : parseInt(n)\n },\n globalGroup: {\n type: \"boolean\",\n cli: false\n }\n};\n\nfunction getDefaultValue(schema) {\n if (schema.default) {\n return schema.default;\n }\n\n var type = schema.type;\n var defaultType = Array.isArray(type) ? type[0] : type;\n\n if (typeof defaultType !== 'string') {\n return defaultType.enum[0];\n }\n\n switch (defaultType) {\n case 'boolean':\n return false;\n\n case 'string':\n return '';\n\n case 'number':\n return 0;\n\n case 'object':\n return {};\n }\n}\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset as inline math\n * (false, the default), meaning that the math starts in\n * \\textstyle and is placed in an inline-block); or as display\n * math (true), meaning that the math starts in \\displaystyle\n * and is placed in a block with vertical margin.\n */\n\n\nclass Settings {\n constructor(options) {\n this.displayMode = void 0;\n this.output = void 0;\n this.leqno = void 0;\n this.fleqn = void 0;\n this.throwOnError = void 0;\n this.errorColor = void 0;\n this.macros = void 0;\n this.minRuleThickness = void 0;\n this.colorIsTextColor = void 0;\n this.strict = void 0;\n this.trust = void 0;\n this.maxSize = void 0;\n this.maxExpand = void 0;\n this.globalGroup = void 0;\n // allow null options\n options = options || {};\n\n for (var prop in SETTINGS_SCHEMA) {\n if (SETTINGS_SCHEMA.hasOwnProperty(prop)) {\n // $FlowFixMe\n var schema = SETTINGS_SCHEMA[prop]; // TODO: validate options\n // $FlowFixMe\n\n this[prop] = options[prop] !== undefined ? schema.processor ? schema.processor(options[prop]) : options[prop] : getDefaultValue(schema);\n }\n }\n }\n /**\n * Report nonstrict (non-LaTeX-compatible) input.\n * Can safely not be called if `this.strict` is false in JavaScript.\n */\n\n\n reportNonstrict(errorCode, errorMsg, token) {\n var strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n strict = strict(errorCode, errorMsg, token);\n }\n\n if (!strict || strict === \"ignore\") {\n return;\n } else if (strict === true || strict === \"error\") {\n throw new ParseError(\"LaTeX-incompatible input and strict mode is set to 'error': \" + (errorMsg + \" [\" + errorCode + \"]\"), token);\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n }\n }\n /**\n * Check whether to apply strict (LaTeX-adhering) behavior for unusual\n * input (like `\\\\`). Unlike `nonstrict`, will not throw an error;\n * instead, \"error\" translates to a return value of `true`, while \"ignore\"\n * translates to a return value of `false`. May still print a warning:\n * \"warn\" prints a warning and returns `false`.\n * This is for the second category of `errorCode`s listed in the README.\n */\n\n\n useStrictBehavior(errorCode, errorMsg, token) {\n var strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n // But catch any exceptions thrown by function, treating them\n // like \"error\".\n try {\n strict = strict(errorCode, errorMsg, token);\n } catch (error) {\n strict = \"error\";\n }\n }\n\n if (!strict || strict === \"ignore\") {\n return false;\n } else if (strict === true || strict === \"error\") {\n return true;\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n }\n }\n /**\n * Check whether to test potentially dangerous input, and return\n * `true` (trusted) or `false` (untrusted). The sole argument `context`\n * should be an object with `command` field specifying the relevant LaTeX\n * command (as a string starting with `\\`), and any other arguments, etc.\n * If `context` has a `url` field, a `protocol` field will automatically\n * get added by this function (changing the specified object).\n */\n\n\n isTrusted(context) {\n if (context.url && !context.protocol) {\n var protocol = utils.protocolFromUrl(context.url);\n\n if (protocol == null) {\n return false;\n }\n\n context.protocol = protocol;\n }\n\n var trust = typeof this.trust === \"function\" ? this.trust(context) : this.trust;\n return Boolean(trust);\n }\n\n}\n\n/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), and a cramped flag.\n */\nclass Style {\n constructor(id, size, cramped) {\n this.id = void 0;\n this.size = void 0;\n this.cramped = void 0;\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n }\n /**\n * Get the style of a superscript given a base in the current style.\n */\n\n\n sup() {\n return styles[sup[this.id]];\n }\n /**\n * Get the style of a subscript given a base in the current style.\n */\n\n\n sub() {\n return styles[sub[this.id]];\n }\n /**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\n\n\n fracNum() {\n return styles[fracNum[this.id]];\n }\n /**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\n\n\n fracDen() {\n return styles[fracDen[this.id]];\n }\n /**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\n\n\n cramp() {\n return styles[cramp[this.id]];\n }\n /**\n * Get a text or display version of this style.\n */\n\n\n text() {\n return styles[text$1[this.id]];\n }\n /**\n * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)\n */\n\n\n isTight() {\n return this.size >= 2;\n }\n\n} // Export an interface for type checking, but don't expose the implementation.\n// This way, no more styles can be generated.\n\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7; // Instances of the different styles\n\nvar styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)]; // Lookup tables for switching from one style to another\n\nvar sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\nvar text$1 = [D, Dc, T, Tc, T, Tc, T, Tc]; // We only export some of the styles.\n\nvar Style$1 = {\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS]\n};\n\n/*\n * This file defines the Unicode scripts and script families that we\n * support. To add new scripts or families, just add a new entry to the\n * scriptData array below. Adding scripts to the scriptData array allows\n * characters from that script to appear in \\text{} environments.\n */\n\n/**\n * Each script or script family has a name and an array of blocks.\n * Each block is an array of two numbers which specify the start and\n * end points (inclusive) of a block of Unicode codepoints.\n */\n\n/**\n * Unicode block data for the families of scripts we support in \\text{}.\n * Scripts only need to appear here if they do not have font metrics.\n */\nvar scriptData = [{\n // Latin characters beyond the Latin-1 characters we have metrics for.\n // Needed for Czech, Hungarian and Turkish text, for example.\n name: 'latin',\n blocks: [[0x0100, 0x024f], // Latin Extended-A and Latin Extended-B\n [0x0300, 0x036f] // Combining Diacritical marks\n ]\n}, {\n // The Cyrillic script used by Russian and related languages.\n // A Cyrillic subset used to be supported as explicitly defined\n // symbols in symbols.js\n name: 'cyrillic',\n blocks: [[0x0400, 0x04ff]]\n}, {\n // Armenian\n name: 'armenian',\n blocks: [[0x0530, 0x058F]]\n}, {\n // The Brahmic scripts of South and Southeast Asia\n // Devanagari (0900–097F)\n // Bengali (0980–09FF)\n // Gurmukhi (0A00–0A7F)\n // Gujarati (0A80–0AFF)\n // Oriya (0B00–0B7F)\n // Tamil (0B80–0BFF)\n // Telugu (0C00–0C7F)\n // Kannada (0C80–0CFF)\n // Malayalam (0D00–0D7F)\n // Sinhala (0D80–0DFF)\n // Thai (0E00–0E7F)\n // Lao (0E80–0EFF)\n // Tibetan (0F00–0FFF)\n // Myanmar (1000–109F)\n name: 'brahmic',\n blocks: [[0x0900, 0x109F]]\n}, {\n name: 'georgian',\n blocks: [[0x10A0, 0x10ff]]\n}, {\n // Chinese and Japanese.\n // The \"k\" in cjk is for Korean, but we've separated Korean out\n name: \"cjk\",\n blocks: [[0x3000, 0x30FF], // CJK symbols and punctuation, Hiragana, Katakana\n [0x4E00, 0x9FAF], // CJK ideograms\n [0xFF00, 0xFF60] // Fullwidth punctuation\n // TODO: add halfwidth Katakana and Romanji glyphs\n ]\n}, {\n // Korean\n name: 'hangul',\n blocks: [[0xAC00, 0xD7AF]]\n}];\n/**\n * Given a codepoint, return the name of the script or script family\n * it is from, or null if it is not part of a known block\n */\n\nfunction scriptFromCodepoint(codepoint) {\n for (var i = 0; i < scriptData.length; i++) {\n var script = scriptData[i];\n\n for (var _i = 0; _i < script.blocks.length; _i++) {\n var block = script.blocks[_i];\n\n if (codepoint >= block[0] && codepoint <= block[1]) {\n return script.name;\n }\n }\n }\n\n return null;\n}\n/**\n * A flattened version of all the supported blocks in a single array.\n * This is an optimization to make supportedCodepoint() fast.\n */\n\nvar allBlocks = [];\nscriptData.forEach(s => s.blocks.forEach(b => allBlocks.push(...b)));\n/**\n * Given a codepoint, return true if it falls within one of the\n * scripts or script families defined above and false otherwise.\n *\n * Micro benchmarks shows that this is faster than\n * /[\\u3000-\\u30FF\\u4E00-\\u9FAF\\uFF00-\\uFF60\\uAC00-\\uD7AF\\u0900-\\u109F]/.test()\n * in Firefox, Chrome and Node.\n */\n\nfunction supportedCodepoint(codepoint) {\n for (var i = 0; i < allBlocks.length; i += 2) {\n if (codepoint >= allBlocks[i] && codepoint <= allBlocks[i + 1]) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * This file provides support to domTree.js and delimiter.js.\n * It's a storehouse of path geometry for SVG images.\n */\n// In all paths below, the viewBox-to-em scale is 1000:1.\nvar hLinePad = 80; // padding above a sqrt vinculum. Prevents image cropping.\n// The vinculum of a \\sqrt can be made thicker by a KaTeX rendering option.\n// Think of variable extraVinculum as two detours in the SVG path.\n// The detour begins at the lower left of the area labeled extraVinculum below.\n// The detour proceeds one extraVinculum distance up and slightly to the right,\n// displacing the radiused corner between surd and vinculum. The radius is\n// traversed as usual, then the detour resumes. It goes right, to the end of\n// the very long vinculum, then down one extraVinculum distance,\n// after which it resumes regular path geometry for the radical.\n\n/* vinculum\n /\n /â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â–’â†extraVinculum\n / █████████████████████â†0.04em (40 unit) std vinculum thickness\n / /\n / /\n / /\\\n / / surd\n*/\n\nvar sqrtMain = function sqrtMain(extraVinculum, hLinePad) {\n // sqrtMain path geometry is from glyph U221A in the font KaTeX Main\n return \"M95,\" + (622 + extraVinculum + hLinePad) + \"\\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\\nc69,-144,104.5,-217.7,106.5,-221\\nl\" + extraVinculum / 2.075 + \" -\" + extraVinculum + \"\\nc5.3,-9.3,12,-14,20,-14\\nH400000v\" + (40 + extraVinculum) + \"H845.2724\\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\\nM\" + (834 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize1 = function sqrtSize1(extraVinculum, hLinePad) {\n // size1 is from glyph U221A in the font KaTeX_Size1-Regular\n return \"M263,\" + (601 + extraVinculum + hLinePad) + \"c0.7,0,18,39.7,52,119\\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\\nc340,-704.7,510.7,-1060.3,512,-1067\\nl\" + extraVinculum / 2.084 + \" -\" + extraVinculum + \"\\nc4.7,-7.3,11,-11,19,-11\\nH40000v\" + (40 + extraVinculum) + \"H1012.3\\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\\nM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize2 = function sqrtSize2(extraVinculum, hLinePad) {\n // size2 is from glyph U221A in the font KaTeX_Size2-Regular\n return \"M983 \" + (10 + extraVinculum + hLinePad) + \"\\nl\" + extraVinculum / 3.13 + \" -\" + extraVinculum + \"\\nc4,-6.7,10,-10,18,-10 H400000v\" + (40 + extraVinculum) + \"\\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\\nM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize3 = function sqrtSize3(extraVinculum, hLinePad) {\n // size3 is from glyph U221A in the font KaTeX_Size3-Regular\n return \"M424,\" + (2398 + extraVinculum + hLinePad) + \"\\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\\nl\" + extraVinculum / 4.223 + \" -\" + extraVinculum + \"c4,-6.7,10,-10,18,-10 H400000\\nv\" + (40 + extraVinculum) + \"H1014.6\\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\\nc-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2z M\" + (1001 + extraVinculum) + \" \" + hLinePad + \"\\nh400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize4 = function sqrtSize4(extraVinculum, hLinePad) {\n // size4 is from glyph U221A in the font KaTeX_Size4-Regular\n return \"M473,\" + (2713 + extraVinculum + hLinePad) + \"\\nc339.3,-1799.3,509.3,-2700,510,-2702 l\" + extraVinculum / 5.298 + \" -\" + extraVinculum + \"\\nc3.3,-7.3,9.3,-11,18,-11 H400000v\" + (40 + extraVinculum) + \"H1017.7\\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\\n606zM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"H1017.7z\";\n};\n\nvar phasePath = function phasePath(y) {\n var x = y / 2; // x coordinate at top of angle\n\n return \"M400000 \" + y + \" H0 L\" + x + \" 0 l65 45 L145 \" + (y - 80) + \" H400000z\";\n};\n\nvar sqrtTall = function sqrtTall(extraVinculum, hLinePad, viewBoxHeight) {\n // sqrtTall is from glyph U23B7 in the font KaTeX_Size4-Regular\n // One path edge has a variable length. It runs vertically from the vinculum\n // to a point near (14 units) the bottom of the surd. The vinculum\n // is normally 40 units thick. So the length of the line in question is:\n var vertSegment = viewBoxHeight - 54 - hLinePad - extraVinculum;\n return \"M702 \" + (extraVinculum + hLinePad) + \"H400000\" + (40 + extraVinculum) + \"\\nH742v\" + vertSegment + \"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\\n219 661 l218 661zM702 \" + hLinePad + \"H400000v\" + (40 + extraVinculum) + \"H742z\";\n};\n\nvar sqrtPath = function sqrtPath(size, extraVinculum, viewBoxHeight) {\n extraVinculum = 1000 * extraVinculum; // Convert from document ems to viewBox.\n\n var path = \"\";\n\n switch (size) {\n case \"sqrtMain\":\n path = sqrtMain(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize1\":\n path = sqrtSize1(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize2\":\n path = sqrtSize2(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize3\":\n path = sqrtSize3(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize4\":\n path = sqrtSize4(extraVinculum, hLinePad);\n break;\n\n case \"sqrtTall\":\n path = sqrtTall(extraVinculum, hLinePad, viewBoxHeight);\n }\n\n return path;\n};\nvar innerPath = function innerPath(name, height) {\n // The inner part of stretchy tall delimiters\n switch (name) {\n case \"\\u239c\":\n return \"M291 0 H417 V\" + height + \" H291z M291 0 H417 V\" + height + \" H291z\";\n\n case \"\\u2223\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\";\n\n case \"\\u2225\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\" + (\"M367 0 H410 V\" + height + \" H367z M367 0 H410 V\" + height + \" H367z\");\n\n case \"\\u239f\":\n return \"M457 0 H583 V\" + height + \" H457z M457 0 H583 V\" + height + \" H457z\";\n\n case \"\\u23a2\":\n return \"M319 0 H403 V\" + height + \" H319z M319 0 H403 V\" + height + \" H319z\";\n\n case \"\\u23a5\":\n return \"M263 0 H347 V\" + height + \" H263z M263 0 H347 V\" + height + \" H263z\";\n\n case \"\\u23aa\":\n return \"M384 0 H504 V\" + height + \" H384z M384 0 H504 V\" + height + \" H384z\";\n\n case \"\\u23d0\":\n return \"M312 0 H355 V\" + height + \" H312z M312 0 H355 V\" + height + \" H312z\";\n\n case \"\\u2016\":\n return \"M257 0 H300 V\" + height + \" H257z M257 0 H300 V\" + height + \" H257z\" + (\"M478 0 H521 V\" + height + \" H478z M478 0 H521 V\" + height + \" H478z\");\n\n default:\n return \"\";\n }\n};\nvar path = {\n // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main\n doubleleftarrow: \"M262 157\\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\\nm8 0v40h399730v-40zm0 194v40h399730v-40z\",\n // doublerightarrow is from glyph U+21D2 in font KaTeX Main\n doublerightarrow: \"M399738 392l\\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z\",\n // leftarrow is from glyph U+2190 in font KaTeX Main\n leftarrow: \"M400000 241H110l3-3c68.7-52.7 113.7-120\\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\\n l-3-3h399890zM100 241v40h399900v-40z\",\n // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular\n leftbrace: \"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z\",\n leftbraceunder: \"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z\",\n // overgroup is from the MnSymbol package (public domain)\n leftgroup: \"M400000 80\\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\\n 435 0h399565z\",\n leftgroupunder: \"M400000 262\\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\\n 435 219h399565z\",\n // Harpoons are from glyph U+21BD in font KaTeX Main\n leftharpoon: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z\",\n leftharpoonplus: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\\nm0 0v40h400000v-40z\",\n leftharpoondown: \"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z\",\n leftharpoondownplus: \"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z\",\n // hook is from glyph U+21A9 in font KaTeX Main\n lefthook: \"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\\n 71.5 23h399859zM103 281v-40h399897v40z\",\n leftlinesegment: \"M40 281 V428 H0 V94 H40 V241 H400000 v40z\\nM40 281 V428 H0 V94 H40 V241 H400000 v40z\",\n leftmapsto: \"M40 281 V448H0V74H40V241H400000v40z\\nM40 281 V448H0V74H40V241H400000v40z\",\n // tofrom is from glyph U+21C4 in font KaTeX AMS Regular\n leftToFrom: \"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z\",\n longequal: \"M0 50 h400000 v40H0z m0 194h40000v40H0z\\nM0 50 h400000 v40H0z m0 194h40000v40H0z\",\n midbrace: \"M200428 334\\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z\",\n midbraceunder: \"M199572 214\\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z\",\n oiintSize1: \"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z\",\n oiintSize2: \"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\\nc0 110 84 276 504 276s502.4-166 502.4-276z\",\n oiiintSize1: \"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z\",\n oiiintSize2: \"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z\",\n rightarrow: \"M0 241v40h399891c-47.3 35.3-84 78-110 128\\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n 151.7 139 205zm0 0v40h399900v-40z\",\n rightbrace: \"M400000 542l\\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z\",\n rightbraceunder: \"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z\",\n rightgroup: \"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\\n 3-1 3-3v-38c-76-158-257-219-435-219H0z\",\n rightgroupunder: \"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z\",\n rightharpoon: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\\n 69.2 92 94.5zm0 0v40h399900v-40z\",\n rightharpoonplus: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z\",\n rightharpoondown: \"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z\",\n rightharpoondownplus: \"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\\nm0-194v40h400000v-40zm0 0v40h400000v-40z\",\n righthook: \"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z\",\n rightlinesegment: \"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z\",\n rightToFrom: \"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z\",\n // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular\n twoheadleftarrow: \"M0 167c68 40\\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z\",\n twoheadrightarrow: \"M400000 167\\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z\",\n // tilde1 is a modified version of a glyph from the MnSymbol package\n tilde1: \"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\\n-68.267.847-113-73.952-191-73.952z\",\n // ditto tilde2, tilde3, & tilde4\n tilde2: \"M344 55.266c-142 0-300.638 81.316-311.5 86.418\\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z\",\n tilde3: \"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\\n -338 0-409-156.573-744-156.573z\",\n tilde4: \"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\\n -175.236-744-175.236z\",\n // vec is from glyph U+20D7 in font KaTeX Main\n vec: \"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\\nc-16-25.333-24-45-24-59z\",\n // widehat1 is a modified version of a glyph from the MnSymbol package\n widehat1: \"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\",\n // ditto widehat2, widehat3, & widehat4\n widehat2: \"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat3: \"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat4: \"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n // widecheck paths are all inverted versions of widehat\n widecheck1: \"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z\",\n widecheck2: \"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck3: \"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck4: \"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n // The next ten paths support reaction arrows from the mhchem package.\n // Arrows for \\ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX\n // baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main\n baraboveleftarrow: \"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z\",\n // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main\n rightarrowabovebar: \"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z\",\n // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.\n // Ref from mhchem.sty: \\rlap{\\raisebox{-.22ex}{$\\kern0.5em\n baraboveshortleftharpoon: \"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z\",\n rightharpoonaboveshortbar: \"M0,241 l0,40c399126,0,399993,0,399993,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z\",\n shortbaraboveleftharpoon: \"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z\",\n shortrightharpoonabovebar: \"M53,241l0,40c398570,0,399437,0,399437,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z\"\n};\nvar tallDelim = function tallDelim(label, midHeight) {\n switch (label) {\n case \"lbrack\":\n return \"M403 1759 V84 H666 V0 H319 V1759 v\" + midHeight + \" v1759 h347 v-84\\nH403z M403 1759 V0 H319 V1759 v\" + midHeight + \" v1759 h84z\";\n\n case \"rbrack\":\n return \"M347 1759 V0 H0 V84 H263 V1759 v\" + midHeight + \" v1759 H0 v84 H347z\\nM347 1759 V0 H263 V1759 v\" + midHeight + \" v1759 h84z\";\n\n case \"vert\":\n return \"M145 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v\" + midHeight + \" v585 h43z\";\n\n case \"doublevert\":\n return \"M145 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v\" + midHeight + \" v585 h43z\\nM367 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v\" + midHeight + \" v585 h43z\";\n\n case \"lfloor\":\n return \"M319 602 V0 H403 V602 v\" + midHeight + \" v1715 h263 v84 H319z\\nMM319 602 V0 H403 V602 v\" + midHeight + \" v1715 H319z\";\n\n case \"rfloor\":\n return \"M319 602 V0 H403 V602 v\" + midHeight + \" v1799 H0 v-84 H319z\\nMM319 602 V0 H403 V602 v\" + midHeight + \" v1715 H319z\";\n\n case \"lceil\":\n return \"M403 1759 V84 H666 V0 H319 V1759 v\" + midHeight + \" v602 h84z\\nM403 1759 V0 H319 V1759 v\" + midHeight + \" v602 h84z\";\n\n case \"rceil\":\n return \"M347 1759 V0 H0 V84 H263 V1759 v\" + midHeight + \" v602 h84z\\nM347 1759 V0 h-84 V1759 v\" + midHeight + \" v602 h84z\";\n\n case \"lparen\":\n return \"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\\n-36,557 l0,\" + (midHeight + 84) + \"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\\nl0,-\" + (midHeight + 92) + \"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z\";\n\n case \"rparen\":\n return \"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,\" + (midHeight + 9) + \"\\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\\nl0,-\" + (midHeight + 144) + \"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z\";\n\n default:\n // We should not ever get here.\n throw new Error(\"Unknown stretchy delimiter.\");\n }\n};\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. It only contains\n * children and doesn't have any DOM node properties.\n */\nclass DocumentFragment {\n // HtmlDomNode\n // Never used; needed for satisfying interface.\n constructor(children) {\n this.children = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.children = children;\n this.classes = [];\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = {};\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /** Convert the fragment into a node. */\n\n\n toNode() {\n var frag = document.createDocumentFragment();\n\n for (var i = 0; i < this.children.length; i++) {\n frag.appendChild(this.children[i].toNode());\n }\n\n return frag;\n }\n /** Convert the fragment into HTML markup. */\n\n\n toMarkup() {\n var markup = \"\"; // Simply concatenate the markup for the children together.\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText. Applies to\n * MathDomNode's only.\n */\n\n\n toText() {\n // To avoid this, we would subclass documentFragment separately for\n // MathML, but polyfills for subclassing is expensive per PR 1469.\n // $FlowFixMe: Only works for ChildType = MathDomNode.\n var toText = child => child.toText();\n\n return this.children.map(toText).join(\"\");\n }\n\n}\n\n// This file is GENERATED by buildMetrics.sh. DO NOT MODIFY.\nvar fontMetricsData = {\n \"AMS-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68889, 0, 0, 0.72222],\n \"66\": [0, 0.68889, 0, 0, 0.66667],\n \"67\": [0, 0.68889, 0, 0, 0.72222],\n \"68\": [0, 0.68889, 0, 0, 0.72222],\n \"69\": [0, 0.68889, 0, 0, 0.66667],\n \"70\": [0, 0.68889, 0, 0, 0.61111],\n \"71\": [0, 0.68889, 0, 0, 0.77778],\n \"72\": [0, 0.68889, 0, 0, 0.77778],\n \"73\": [0, 0.68889, 0, 0, 0.38889],\n \"74\": [0.16667, 0.68889, 0, 0, 0.5],\n \"75\": [0, 0.68889, 0, 0, 0.77778],\n \"76\": [0, 0.68889, 0, 0, 0.66667],\n \"77\": [0, 0.68889, 0, 0, 0.94445],\n \"78\": [0, 0.68889, 0, 0, 0.72222],\n \"79\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"80\": [0, 0.68889, 0, 0, 0.61111],\n \"81\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"82\": [0, 0.68889, 0, 0, 0.72222],\n \"83\": [0, 0.68889, 0, 0, 0.55556],\n \"84\": [0, 0.68889, 0, 0, 0.66667],\n \"85\": [0, 0.68889, 0, 0, 0.72222],\n \"86\": [0, 0.68889, 0, 0, 0.72222],\n \"87\": [0, 0.68889, 0, 0, 1.0],\n \"88\": [0, 0.68889, 0, 0, 0.72222],\n \"89\": [0, 0.68889, 0, 0, 0.72222],\n \"90\": [0, 0.68889, 0, 0, 0.66667],\n \"107\": [0, 0.68889, 0, 0, 0.55556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"165\": [0, 0.675, 0.025, 0, 0.75],\n \"174\": [0.15559, 0.69224, 0, 0, 0.94666],\n \"240\": [0, 0.68889, 0, 0, 0.55556],\n \"295\": [0, 0.68889, 0, 0, 0.54028],\n \"710\": [0, 0.825, 0, 0, 2.33334],\n \"732\": [0, 0.9, 0, 0, 2.33334],\n \"770\": [0, 0.825, 0, 0, 2.33334],\n \"771\": [0, 0.9, 0, 0, 2.33334],\n \"989\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"1008\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"8245\": [0, 0.54986, 0, 0, 0.275],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8487\": [0, 0.68889, 0, 0, 0.72222],\n \"8498\": [0, 0.68889, 0, 0, 0.55556],\n \"8502\": [0, 0.68889, 0, 0, 0.66667],\n \"8503\": [0, 0.68889, 0, 0, 0.44445],\n \"8504\": [0, 0.68889, 0, 0, 0.66667],\n \"8513\": [0, 0.68889, 0, 0, 0.63889],\n \"8592\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8594\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8602\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8603\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8606\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8608\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8610\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8611\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8619\": [0, 0.54986, 0, 0, 1.0],\n \"8620\": [0, 0.54986, 0, 0, 1.0],\n \"8621\": [-0.13313, 0.37788, 0, 0, 1.38889],\n \"8622\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8624\": [0, 0.69224, 0, 0, 0.5],\n \"8625\": [0, 0.69224, 0, 0, 0.5],\n \"8630\": [0, 0.43056, 0, 0, 1.0],\n \"8631\": [0, 0.43056, 0, 0, 1.0],\n \"8634\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8635\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8638\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8639\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8642\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8643\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8644\": [0.1808, 0.675, 0, 0, 1.0],\n \"8646\": [0.1808, 0.675, 0, 0, 1.0],\n \"8647\": [0.1808, 0.675, 0, 0, 1.0],\n \"8648\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8649\": [0.1808, 0.675, 0, 0, 1.0],\n \"8650\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8651\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8652\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8653\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8654\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8655\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8666\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8667\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8669\": [-0.13313, 0.37788, 0, 0, 1.0],\n \"8672\": [-0.064, 0.437, 0, 0, 1.334],\n \"8674\": [-0.064, 0.437, 0, 0, 1.334],\n \"8705\": [0, 0.825, 0, 0, 0.5],\n \"8708\": [0, 0.68889, 0, 0, 0.55556],\n \"8709\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8717\": [0, 0.43056, 0, 0, 0.42917],\n \"8722\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8724\": [0.08198, 0.69224, 0, 0, 0.77778],\n \"8726\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8733\": [0, 0.69224, 0, 0, 0.77778],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8737\": [0, 0.69224, 0, 0, 0.72222],\n \"8738\": [0.03517, 0.52239, 0, 0, 0.72222],\n \"8739\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"8740\": [0.25142, 0.74111, 0, 0, 0.27778],\n \"8741\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"8742\": [0.25142, 0.74111, 0, 0, 0.5],\n \"8756\": [0, 0.69224, 0, 0, 0.66667],\n \"8757\": [0, 0.69224, 0, 0, 0.66667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8765\": [-0.13313, 0.37788, 0, 0, 0.77778],\n \"8769\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8770\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8774\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8778\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8782\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8783\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8785\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8786\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8787\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8790\": [0, 0.69224, 0, 0, 0.77778],\n \"8791\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8796\": [0.08198, 0.91667, 0, 0, 0.77778],\n \"8806\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8807\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8808\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8809\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8812\": [0.25583, 0.75583, 0, 0, 0.5],\n \"8814\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8815\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8816\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8817\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8818\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8819\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8822\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8823\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8828\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8829\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8830\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8831\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8832\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8833\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8840\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8841\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8842\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8843\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8847\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8848\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8858\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8859\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8861\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8862\": [0, 0.675, 0, 0, 0.77778],\n \"8863\": [0, 0.675, 0, 0, 0.77778],\n \"8864\": [0, 0.675, 0, 0, 0.77778],\n \"8865\": [0, 0.675, 0, 0, 0.77778],\n \"8872\": [0, 0.69224, 0, 0, 0.61111],\n \"8873\": [0, 0.69224, 0, 0, 0.72222],\n \"8874\": [0, 0.69224, 0, 0, 0.88889],\n \"8876\": [0, 0.68889, 0, 0, 0.61111],\n \"8877\": [0, 0.68889, 0, 0, 0.61111],\n \"8878\": [0, 0.68889, 0, 0, 0.72222],\n \"8879\": [0, 0.68889, 0, 0, 0.72222],\n \"8882\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8883\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8884\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8885\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8888\": [0, 0.54986, 0, 0, 1.11111],\n \"8890\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"8891\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8892\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8901\": [0, 0.54986, 0, 0, 0.27778],\n \"8903\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8905\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8906\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8907\": [0, 0.69224, 0, 0, 0.77778],\n \"8908\": [0, 0.69224, 0, 0, 0.77778],\n \"8909\": [-0.03598, 0.46402, 0, 0, 0.77778],\n \"8910\": [0, 0.54986, 0, 0, 0.76042],\n \"8911\": [0, 0.54986, 0, 0, 0.76042],\n \"8912\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8913\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8914\": [0, 0.54986, 0, 0, 0.66667],\n \"8915\": [0, 0.54986, 0, 0, 0.66667],\n \"8916\": [0, 0.69224, 0, 0, 0.66667],\n \"8918\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8919\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8920\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8921\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8922\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8923\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8926\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8927\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8928\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8929\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8934\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8935\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8936\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8937\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8938\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8939\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8940\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8941\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8994\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"8995\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"9416\": [0.15559, 0.69224, 0, 0, 0.90222],\n \"9484\": [0, 0.69224, 0, 0, 0.5],\n \"9488\": [0, 0.69224, 0, 0, 0.5],\n \"9492\": [0, 0.37788, 0, 0, 0.5],\n \"9496\": [0, 0.37788, 0, 0, 0.5],\n \"9585\": [0.19444, 0.68889, 0, 0, 0.88889],\n \"9586\": [0.19444, 0.74111, 0, 0, 0.88889],\n \"9632\": [0, 0.675, 0, 0, 0.77778],\n \"9633\": [0, 0.675, 0, 0, 0.77778],\n \"9650\": [0, 0.54986, 0, 0, 0.72222],\n \"9651\": [0, 0.54986, 0, 0, 0.72222],\n \"9654\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9660\": [0, 0.54986, 0, 0, 0.72222],\n \"9661\": [0, 0.54986, 0, 0, 0.72222],\n \"9664\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9674\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"9733\": [0.19444, 0.69224, 0, 0, 0.94445],\n \"10003\": [0, 0.69224, 0, 0, 0.83334],\n \"10016\": [0, 0.69224, 0, 0, 0.83334],\n \"10731\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"10846\": [0.19444, 0.75583, 0, 0, 0.61111],\n \"10877\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10878\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10885\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10886\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10887\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10888\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10889\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10890\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10891\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10892\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10901\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10902\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10933\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10934\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10935\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10936\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10937\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10938\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10949\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10950\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10955\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"10956\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"57350\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"57351\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"57352\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"57353\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"57356\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57357\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57358\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57359\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57360\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57361\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57366\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57367\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57368\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57369\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57370\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57371\": [0.13597, 0.63597, 0, 0, 0.77778]\n },\n \"Caligraphic-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68333, 0, 0.19445, 0.79847],\n \"66\": [0, 0.68333, 0.03041, 0.13889, 0.65681],\n \"67\": [0, 0.68333, 0.05834, 0.13889, 0.52653],\n \"68\": [0, 0.68333, 0.02778, 0.08334, 0.77139],\n \"69\": [0, 0.68333, 0.08944, 0.11111, 0.52778],\n \"70\": [0, 0.68333, 0.09931, 0.11111, 0.71875],\n \"71\": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],\n \"72\": [0, 0.68333, 0.00965, 0.11111, 0.84452],\n \"73\": [0, 0.68333, 0.07382, 0, 0.54452],\n \"74\": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],\n \"75\": [0, 0.68333, 0.01445, 0.05556, 0.76195],\n \"76\": [0, 0.68333, 0, 0.13889, 0.68972],\n \"77\": [0, 0.68333, 0, 0.13889, 1.2009],\n \"78\": [0, 0.68333, 0.14736, 0.08334, 0.82049],\n \"79\": [0, 0.68333, 0.02778, 0.11111, 0.79611],\n \"80\": [0, 0.68333, 0.08222, 0.08334, 0.69556],\n \"81\": [0.09722, 0.68333, 0, 0.11111, 0.81667],\n \"82\": [0, 0.68333, 0, 0.08334, 0.8475],\n \"83\": [0, 0.68333, 0.075, 0.13889, 0.60556],\n \"84\": [0, 0.68333, 0.25417, 0, 0.54464],\n \"85\": [0, 0.68333, 0.09931, 0.08334, 0.62583],\n \"86\": [0, 0.68333, 0.08222, 0, 0.61278],\n \"87\": [0, 0.68333, 0.08222, 0.08334, 0.98778],\n \"88\": [0, 0.68333, 0.14643, 0.13889, 0.7133],\n \"89\": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],\n \"90\": [0, 0.68333, 0.07944, 0.13889, 0.72473],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Fraktur-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69141, 0, 0, 0.29574],\n \"34\": [0, 0.69141, 0, 0, 0.21471],\n \"38\": [0, 0.69141, 0, 0, 0.73786],\n \"39\": [0, 0.69141, 0, 0, 0.21201],\n \"40\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"41\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"42\": [0, 0.62119, 0, 0, 0.27764],\n \"43\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"44\": [0, 0.10803, 0, 0, 0.27764],\n \"45\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"46\": [0, 0.10803, 0, 0, 0.27764],\n \"47\": [0.24982, 0.74947, 0, 0, 0.50181],\n \"48\": [0, 0.47534, 0, 0, 0.50181],\n \"49\": [0, 0.47534, 0, 0, 0.50181],\n \"50\": [0, 0.47534, 0, 0, 0.50181],\n \"51\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"52\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"53\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"54\": [0, 0.69141, 0, 0, 0.50181],\n \"55\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"56\": [0, 0.69141, 0, 0, 0.50181],\n \"57\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"58\": [0, 0.47534, 0, 0, 0.21606],\n \"59\": [0.12604, 0.47534, 0, 0, 0.21606],\n \"61\": [-0.13099, 0.36866, 0, 0, 0.75623],\n \"63\": [0, 0.69141, 0, 0, 0.36245],\n \"65\": [0, 0.69141, 0, 0, 0.7176],\n \"66\": [0, 0.69141, 0, 0, 0.88397],\n \"67\": [0, 0.69141, 0, 0, 0.61254],\n \"68\": [0, 0.69141, 0, 0, 0.83158],\n \"69\": [0, 0.69141, 0, 0, 0.66278],\n \"70\": [0.12604, 0.69141, 0, 0, 0.61119],\n \"71\": [0, 0.69141, 0, 0, 0.78539],\n \"72\": [0.06302, 0.69141, 0, 0, 0.7203],\n \"73\": [0, 0.69141, 0, 0, 0.55448],\n \"74\": [0.12604, 0.69141, 0, 0, 0.55231],\n \"75\": [0, 0.69141, 0, 0, 0.66845],\n \"76\": [0, 0.69141, 0, 0, 0.66602],\n \"77\": [0, 0.69141, 0, 0, 1.04953],\n \"78\": [0, 0.69141, 0, 0, 0.83212],\n \"79\": [0, 0.69141, 0, 0, 0.82699],\n \"80\": [0.18906, 0.69141, 0, 0, 0.82753],\n \"81\": [0.03781, 0.69141, 0, 0, 0.82699],\n \"82\": [0, 0.69141, 0, 0, 0.82807],\n \"83\": [0, 0.69141, 0, 0, 0.82861],\n \"84\": [0, 0.69141, 0, 0, 0.66899],\n \"85\": [0, 0.69141, 0, 0, 0.64576],\n \"86\": [0, 0.69141, 0, 0, 0.83131],\n \"87\": [0, 0.69141, 0, 0, 1.04602],\n \"88\": [0, 0.69141, 0, 0, 0.71922],\n \"89\": [0.18906, 0.69141, 0, 0, 0.83293],\n \"90\": [0.12604, 0.69141, 0, 0, 0.60201],\n \"91\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"93\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"94\": [0, 0.69141, 0, 0, 0.49965],\n \"97\": [0, 0.47534, 0, 0, 0.50046],\n \"98\": [0, 0.69141, 0, 0, 0.51315],\n \"99\": [0, 0.47534, 0, 0, 0.38946],\n \"100\": [0, 0.62119, 0, 0, 0.49857],\n \"101\": [0, 0.47534, 0, 0, 0.40053],\n \"102\": [0.18906, 0.69141, 0, 0, 0.32626],\n \"103\": [0.18906, 0.47534, 0, 0, 0.5037],\n \"104\": [0.18906, 0.69141, 0, 0, 0.52126],\n \"105\": [0, 0.69141, 0, 0, 0.27899],\n \"106\": [0, 0.69141, 0, 0, 0.28088],\n \"107\": [0, 0.69141, 0, 0, 0.38946],\n \"108\": [0, 0.69141, 0, 0, 0.27953],\n \"109\": [0, 0.47534, 0, 0, 0.76676],\n \"110\": [0, 0.47534, 0, 0, 0.52666],\n \"111\": [0, 0.47534, 0, 0, 0.48885],\n \"112\": [0.18906, 0.52396, 0, 0, 0.50046],\n \"113\": [0.18906, 0.47534, 0, 0, 0.48912],\n \"114\": [0, 0.47534, 0, 0, 0.38919],\n \"115\": [0, 0.47534, 0, 0, 0.44266],\n \"116\": [0, 0.62119, 0, 0, 0.33301],\n \"117\": [0, 0.47534, 0, 0, 0.5172],\n \"118\": [0, 0.52396, 0, 0, 0.5118],\n \"119\": [0, 0.52396, 0, 0, 0.77351],\n \"120\": [0.18906, 0.47534, 0, 0, 0.38865],\n \"121\": [0.18906, 0.47534, 0, 0, 0.49884],\n \"122\": [0.18906, 0.47534, 0, 0, 0.39054],\n \"160\": [0, 0, 0, 0, 0.25],\n \"8216\": [0, 0.69141, 0, 0, 0.21471],\n \"8217\": [0, 0.69141, 0, 0, 0.21471],\n \"58112\": [0, 0.62119, 0, 0, 0.49749],\n \"58113\": [0, 0.62119, 0, 0, 0.4983],\n \"58114\": [0.18906, 0.69141, 0, 0, 0.33328],\n \"58115\": [0.18906, 0.69141, 0, 0, 0.32923],\n \"58116\": [0.18906, 0.47534, 0, 0, 0.50343],\n \"58117\": [0, 0.69141, 0, 0, 0.33301],\n \"58118\": [0, 0.62119, 0, 0, 0.33409],\n \"58119\": [0, 0.47534, 0, 0, 0.50073]\n },\n \"Main-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.35],\n \"34\": [0, 0.69444, 0, 0, 0.60278],\n \"35\": [0.19444, 0.69444, 0, 0, 0.95833],\n \"36\": [0.05556, 0.75, 0, 0, 0.575],\n \"37\": [0.05556, 0.75, 0, 0, 0.95833],\n \"38\": [0, 0.69444, 0, 0, 0.89444],\n \"39\": [0, 0.69444, 0, 0, 0.31944],\n \"40\": [0.25, 0.75, 0, 0, 0.44722],\n \"41\": [0.25, 0.75, 0, 0, 0.44722],\n \"42\": [0, 0.75, 0, 0, 0.575],\n \"43\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"44\": [0.19444, 0.15556, 0, 0, 0.31944],\n \"45\": [0, 0.44444, 0, 0, 0.38333],\n \"46\": [0, 0.15556, 0, 0, 0.31944],\n \"47\": [0.25, 0.75, 0, 0, 0.575],\n \"48\": [0, 0.64444, 0, 0, 0.575],\n \"49\": [0, 0.64444, 0, 0, 0.575],\n \"50\": [0, 0.64444, 0, 0, 0.575],\n \"51\": [0, 0.64444, 0, 0, 0.575],\n \"52\": [0, 0.64444, 0, 0, 0.575],\n \"53\": [0, 0.64444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0, 0.64444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0, 0.64444, 0, 0, 0.575],\n \"58\": [0, 0.44444, 0, 0, 0.31944],\n \"59\": [0.19444, 0.44444, 0, 0, 0.31944],\n \"60\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"61\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"62\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"63\": [0, 0.69444, 0, 0, 0.54305],\n \"64\": [0, 0.69444, 0, 0, 0.89444],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0, 0, 0.81805],\n \"67\": [0, 0.68611, 0, 0, 0.83055],\n \"68\": [0, 0.68611, 0, 0, 0.88194],\n \"69\": [0, 0.68611, 0, 0, 0.75555],\n \"70\": [0, 0.68611, 0, 0, 0.72361],\n \"71\": [0, 0.68611, 0, 0, 0.90416],\n \"72\": [0, 0.68611, 0, 0, 0.9],\n \"73\": [0, 0.68611, 0, 0, 0.43611],\n \"74\": [0, 0.68611, 0, 0, 0.59444],\n \"75\": [0, 0.68611, 0, 0, 0.90138],\n \"76\": [0, 0.68611, 0, 0, 0.69166],\n \"77\": [0, 0.68611, 0, 0, 1.09166],\n \"78\": [0, 0.68611, 0, 0, 0.9],\n \"79\": [0, 0.68611, 0, 0, 0.86388],\n \"80\": [0, 0.68611, 0, 0, 0.78611],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86388],\n \"82\": [0, 0.68611, 0, 0, 0.8625],\n \"83\": [0, 0.68611, 0, 0, 0.63889],\n \"84\": [0, 0.68611, 0, 0, 0.8],\n \"85\": [0, 0.68611, 0, 0, 0.88472],\n \"86\": [0, 0.68611, 0.01597, 0, 0.86944],\n \"87\": [0, 0.68611, 0.01597, 0, 1.18888],\n \"88\": [0, 0.68611, 0, 0, 0.86944],\n \"89\": [0, 0.68611, 0.02875, 0, 0.86944],\n \"90\": [0, 0.68611, 0, 0, 0.70277],\n \"91\": [0.25, 0.75, 0, 0, 0.31944],\n \"92\": [0.25, 0.75, 0, 0, 0.575],\n \"93\": [0.25, 0.75, 0, 0, 0.31944],\n \"94\": [0, 0.69444, 0, 0, 0.575],\n \"95\": [0.31, 0.13444, 0.03194, 0, 0.575],\n \"97\": [0, 0.44444, 0, 0, 0.55902],\n \"98\": [0, 0.69444, 0, 0, 0.63889],\n \"99\": [0, 0.44444, 0, 0, 0.51111],\n \"100\": [0, 0.69444, 0, 0, 0.63889],\n \"101\": [0, 0.44444, 0, 0, 0.52708],\n \"102\": [0, 0.69444, 0.10903, 0, 0.35139],\n \"103\": [0.19444, 0.44444, 0.01597, 0, 0.575],\n \"104\": [0, 0.69444, 0, 0, 0.63889],\n \"105\": [0, 0.69444, 0, 0, 0.31944],\n \"106\": [0.19444, 0.69444, 0, 0, 0.35139],\n \"107\": [0, 0.69444, 0, 0, 0.60694],\n \"108\": [0, 0.69444, 0, 0, 0.31944],\n \"109\": [0, 0.44444, 0, 0, 0.95833],\n \"110\": [0, 0.44444, 0, 0, 0.63889],\n \"111\": [0, 0.44444, 0, 0, 0.575],\n \"112\": [0.19444, 0.44444, 0, 0, 0.63889],\n \"113\": [0.19444, 0.44444, 0, 0, 0.60694],\n \"114\": [0, 0.44444, 0, 0, 0.47361],\n \"115\": [0, 0.44444, 0, 0, 0.45361],\n \"116\": [0, 0.63492, 0, 0, 0.44722],\n \"117\": [0, 0.44444, 0, 0, 0.63889],\n \"118\": [0, 0.44444, 0.01597, 0, 0.60694],\n \"119\": [0, 0.44444, 0.01597, 0, 0.83055],\n \"120\": [0, 0.44444, 0, 0, 0.60694],\n \"121\": [0.19444, 0.44444, 0.01597, 0, 0.60694],\n \"122\": [0, 0.44444, 0, 0, 0.51111],\n \"123\": [0.25, 0.75, 0, 0, 0.575],\n \"124\": [0.25, 0.75, 0, 0, 0.31944],\n \"125\": [0.25, 0.75, 0, 0, 0.575],\n \"126\": [0.35, 0.34444, 0, 0, 0.575],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.86853],\n \"168\": [0, 0.69444, 0, 0, 0.575],\n \"172\": [0, 0.44444, 0, 0, 0.76666],\n \"176\": [0, 0.69444, 0, 0, 0.86944],\n \"177\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"184\": [0.17014, 0, 0, 0, 0.51111],\n \"198\": [0, 0.68611, 0, 0, 1.04166],\n \"215\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"216\": [0.04861, 0.73472, 0, 0, 0.89444],\n \"223\": [0, 0.69444, 0, 0, 0.59722],\n \"230\": [0, 0.44444, 0, 0, 0.83055],\n \"247\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"248\": [0.09722, 0.54167, 0, 0, 0.575],\n \"305\": [0, 0.44444, 0, 0, 0.31944],\n \"338\": [0, 0.68611, 0, 0, 1.16944],\n \"339\": [0, 0.44444, 0, 0, 0.89444],\n \"567\": [0.19444, 0.44444, 0, 0, 0.35139],\n \"710\": [0, 0.69444, 0, 0, 0.575],\n \"711\": [0, 0.63194, 0, 0, 0.575],\n \"713\": [0, 0.59611, 0, 0, 0.575],\n \"714\": [0, 0.69444, 0, 0, 0.575],\n \"715\": [0, 0.69444, 0, 0, 0.575],\n \"728\": [0, 0.69444, 0, 0, 0.575],\n \"729\": [0, 0.69444, 0, 0, 0.31944],\n \"730\": [0, 0.69444, 0, 0, 0.86944],\n \"732\": [0, 0.69444, 0, 0, 0.575],\n \"733\": [0, 0.69444, 0, 0, 0.575],\n \"915\": [0, 0.68611, 0, 0, 0.69166],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0, 0, 0.89444],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0, 0, 0.76666],\n \"928\": [0, 0.68611, 0, 0, 0.9],\n \"931\": [0, 0.68611, 0, 0, 0.83055],\n \"933\": [0, 0.68611, 0, 0, 0.89444],\n \"934\": [0, 0.68611, 0, 0, 0.83055],\n \"936\": [0, 0.68611, 0, 0, 0.89444],\n \"937\": [0, 0.68611, 0, 0, 0.83055],\n \"8211\": [0, 0.44444, 0.03194, 0, 0.575],\n \"8212\": [0, 0.44444, 0.03194, 0, 1.14999],\n \"8216\": [0, 0.69444, 0, 0, 0.31944],\n \"8217\": [0, 0.69444, 0, 0, 0.31944],\n \"8220\": [0, 0.69444, 0, 0, 0.60278],\n \"8221\": [0, 0.69444, 0, 0, 0.60278],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8242\": [0, 0.55556, 0, 0, 0.34444],\n \"8407\": [0, 0.72444, 0.15486, 0, 0.575],\n \"8463\": [0, 0.69444, 0, 0, 0.66759],\n \"8465\": [0, 0.69444, 0, 0, 0.83055],\n \"8467\": [0, 0.69444, 0, 0, 0.47361],\n \"8472\": [0.19444, 0.44444, 0, 0, 0.74027],\n \"8476\": [0, 0.69444, 0, 0, 0.83055],\n \"8501\": [0, 0.69444, 0, 0, 0.70277],\n \"8592\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8594\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8596\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8597\": [0.25, 0.75, 0, 0, 0.575],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8636\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8637\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8640\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8641\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8656\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8658\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8660\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8661\": [0.25, 0.75, 0, 0, 0.70277],\n \"8704\": [0, 0.69444, 0, 0, 0.63889],\n \"8706\": [0, 0.69444, 0.06389, 0, 0.62847],\n \"8707\": [0, 0.69444, 0, 0, 0.63889],\n \"8709\": [0.05556, 0.75, 0, 0, 0.575],\n \"8711\": [0, 0.68611, 0, 0, 0.95833],\n \"8712\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8715\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8722\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8723\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8725\": [0.25, 0.75, 0, 0, 0.575],\n \"8726\": [0.25, 0.75, 0, 0, 0.575],\n \"8727\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8728\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8729\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8730\": [0.18, 0.82, 0, 0, 0.95833],\n \"8733\": [0, 0.44444, 0, 0, 0.89444],\n \"8734\": [0, 0.44444, 0, 0, 1.14999],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.31944],\n \"8741\": [0.25, 0.75, 0, 0, 0.575],\n \"8743\": [0, 0.55556, 0, 0, 0.76666],\n \"8744\": [0, 0.55556, 0, 0, 0.76666],\n \"8745\": [0, 0.55556, 0, 0, 0.76666],\n \"8746\": [0, 0.55556, 0, 0, 0.76666],\n \"8747\": [0.19444, 0.69444, 0.12778, 0, 0.56875],\n \"8764\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.31944],\n \"8771\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8773\": [0.027, 0.638, 0, 0, 0.894],\n \"8776\": [0.02444, 0.52444, 0, 0, 0.89444],\n \"8781\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8801\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8804\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8805\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8810\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8811\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8826\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8827\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8834\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8835\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8838\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8839\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8846\": [0, 0.55556, 0, 0, 0.76666],\n \"8849\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8850\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8851\": [0, 0.55556, 0, 0, 0.76666],\n \"8852\": [0, 0.55556, 0, 0, 0.76666],\n \"8853\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8854\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8855\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8856\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8857\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8866\": [0, 0.69444, 0, 0, 0.70277],\n \"8867\": [0, 0.69444, 0, 0, 0.70277],\n \"8868\": [0, 0.69444, 0, 0, 0.89444],\n \"8869\": [0, 0.69444, 0, 0, 0.89444],\n \"8900\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8901\": [-0.02639, 0.47361, 0, 0, 0.31944],\n \"8902\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8968\": [0.25, 0.75, 0, 0, 0.51111],\n \"8969\": [0.25, 0.75, 0, 0, 0.51111],\n \"8970\": [0.25, 0.75, 0, 0, 0.51111],\n \"8971\": [0.25, 0.75, 0, 0, 0.51111],\n \"8994\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"8995\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"9651\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9657\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9661\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9667\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9837\": [0, 0.75, 0, 0, 0.44722],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"10216\": [0.25, 0.75, 0, 0, 0.44722],\n \"10217\": [0.25, 0.75, 0, 0, 0.44722],\n \"10815\": [0, 0.68611, 0, 0, 0.9],\n \"10927\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"10928\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Main-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.11417, 0, 0.38611],\n \"34\": [0, 0.69444, 0.07939, 0, 0.62055],\n \"35\": [0.19444, 0.69444, 0.06833, 0, 0.94444],\n \"37\": [0.05556, 0.75, 0.12861, 0, 0.94444],\n \"38\": [0, 0.69444, 0.08528, 0, 0.88555],\n \"39\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"40\": [0.25, 0.75, 0.15806, 0, 0.47333],\n \"41\": [0.25, 0.75, 0.03306, 0, 0.47333],\n \"42\": [0, 0.75, 0.14333, 0, 0.59111],\n \"43\": [0.10333, 0.60333, 0.03306, 0, 0.88555],\n \"44\": [0.19444, 0.14722, 0, 0, 0.35555],\n \"45\": [0, 0.44444, 0.02611, 0, 0.41444],\n \"46\": [0, 0.14722, 0, 0, 0.35555],\n \"47\": [0.25, 0.75, 0.15806, 0, 0.59111],\n \"48\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"49\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"50\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"51\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"52\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"53\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"54\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"55\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"56\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"57\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"58\": [0, 0.44444, 0.06695, 0, 0.35555],\n \"59\": [0.19444, 0.44444, 0.06695, 0, 0.35555],\n \"61\": [-0.10889, 0.39111, 0.06833, 0, 0.88555],\n \"63\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"64\": [0, 0.69444, 0.09208, 0, 0.88555],\n \"65\": [0, 0.68611, 0, 0, 0.86555],\n \"66\": [0, 0.68611, 0.0992, 0, 0.81666],\n \"67\": [0, 0.68611, 0.14208, 0, 0.82666],\n \"68\": [0, 0.68611, 0.09062, 0, 0.87555],\n \"69\": [0, 0.68611, 0.11431, 0, 0.75666],\n \"70\": [0, 0.68611, 0.12903, 0, 0.72722],\n \"71\": [0, 0.68611, 0.07347, 0, 0.89527],\n \"72\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"73\": [0, 0.68611, 0.15681, 0, 0.47166],\n \"74\": [0, 0.68611, 0.145, 0, 0.61055],\n \"75\": [0, 0.68611, 0.14208, 0, 0.89499],\n \"76\": [0, 0.68611, 0, 0, 0.69777],\n \"77\": [0, 0.68611, 0.17208, 0, 1.07277],\n \"78\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"79\": [0, 0.68611, 0.09062, 0, 0.85499],\n \"80\": [0, 0.68611, 0.0992, 0, 0.78721],\n \"81\": [0.19444, 0.68611, 0.09062, 0, 0.85499],\n \"82\": [0, 0.68611, 0.02559, 0, 0.85944],\n \"83\": [0, 0.68611, 0.11264, 0, 0.64999],\n \"84\": [0, 0.68611, 0.12903, 0, 0.7961],\n \"85\": [0, 0.68611, 0.17208, 0, 0.88083],\n \"86\": [0, 0.68611, 0.18625, 0, 0.86555],\n \"87\": [0, 0.68611, 0.18625, 0, 1.15999],\n \"88\": [0, 0.68611, 0.15681, 0, 0.86555],\n \"89\": [0, 0.68611, 0.19803, 0, 0.86555],\n \"90\": [0, 0.68611, 0.14208, 0, 0.70888],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.35611],\n \"93\": [0.25, 0.75, 0.09972, 0, 0.35611],\n \"94\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"95\": [0.31, 0.13444, 0.09811, 0, 0.59111],\n \"97\": [0, 0.44444, 0.09426, 0, 0.59111],\n \"98\": [0, 0.69444, 0.07861, 0, 0.53222],\n \"99\": [0, 0.44444, 0.05222, 0, 0.53222],\n \"100\": [0, 0.69444, 0.10861, 0, 0.59111],\n \"101\": [0, 0.44444, 0.085, 0, 0.53222],\n \"102\": [0.19444, 0.69444, 0.21778, 0, 0.4],\n \"103\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"104\": [0, 0.69444, 0.09426, 0, 0.59111],\n \"105\": [0, 0.69326, 0.11387, 0, 0.35555],\n \"106\": [0.19444, 0.69326, 0.1672, 0, 0.35555],\n \"107\": [0, 0.69444, 0.11111, 0, 0.53222],\n \"108\": [0, 0.69444, 0.10861, 0, 0.29666],\n \"109\": [0, 0.44444, 0.09426, 0, 0.94444],\n \"110\": [0, 0.44444, 0.09426, 0, 0.64999],\n \"111\": [0, 0.44444, 0.07861, 0, 0.59111],\n \"112\": [0.19444, 0.44444, 0.07861, 0, 0.59111],\n \"113\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"114\": [0, 0.44444, 0.11111, 0, 0.50167],\n \"115\": [0, 0.44444, 0.08167, 0, 0.48694],\n \"116\": [0, 0.63492, 0.09639, 0, 0.385],\n \"117\": [0, 0.44444, 0.09426, 0, 0.62055],\n \"118\": [0, 0.44444, 0.11111, 0, 0.53222],\n \"119\": [0, 0.44444, 0.11111, 0, 0.76777],\n \"120\": [0, 0.44444, 0.12583, 0, 0.56055],\n \"121\": [0.19444, 0.44444, 0.105, 0, 0.56166],\n \"122\": [0, 0.44444, 0.13889, 0, 0.49055],\n \"126\": [0.35, 0.34444, 0.11472, 0, 0.59111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0.11473, 0, 0.59111],\n \"176\": [0, 0.69444, 0, 0, 0.94888],\n \"184\": [0.17014, 0, 0, 0, 0.53222],\n \"198\": [0, 0.68611, 0.11431, 0, 1.02277],\n \"216\": [0.04861, 0.73472, 0.09062, 0, 0.88555],\n \"223\": [0.19444, 0.69444, 0.09736, 0, 0.665],\n \"230\": [0, 0.44444, 0.085, 0, 0.82666],\n \"248\": [0.09722, 0.54167, 0.09458, 0, 0.59111],\n \"305\": [0, 0.44444, 0.09426, 0, 0.35555],\n \"338\": [0, 0.68611, 0.11431, 0, 1.14054],\n \"339\": [0, 0.44444, 0.085, 0, 0.82666],\n \"567\": [0.19444, 0.44444, 0.04611, 0, 0.385],\n \"710\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"711\": [0, 0.63194, 0.08271, 0, 0.59111],\n \"713\": [0, 0.59444, 0.10444, 0, 0.59111],\n \"714\": [0, 0.69444, 0.08528, 0, 0.59111],\n \"715\": [0, 0.69444, 0, 0, 0.59111],\n \"728\": [0, 0.69444, 0.10333, 0, 0.59111],\n \"729\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"730\": [0, 0.69444, 0, 0, 0.94888],\n \"732\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"733\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"915\": [0, 0.68611, 0.12903, 0, 0.69777],\n \"916\": [0, 0.68611, 0, 0, 0.94444],\n \"920\": [0, 0.68611, 0.09062, 0, 0.88555],\n \"923\": [0, 0.68611, 0, 0, 0.80666],\n \"926\": [0, 0.68611, 0.15092, 0, 0.76777],\n \"928\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"931\": [0, 0.68611, 0.11431, 0, 0.82666],\n \"933\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"934\": [0, 0.68611, 0.05632, 0, 0.82666],\n \"936\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"937\": [0, 0.68611, 0.0992, 0, 0.82666],\n \"8211\": [0, 0.44444, 0.09811, 0, 0.59111],\n \"8212\": [0, 0.44444, 0.09811, 0, 1.18221],\n \"8216\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8217\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8220\": [0, 0.69444, 0.16772, 0, 0.62055],\n \"8221\": [0, 0.69444, 0.07939, 0, 0.62055]\n },\n \"Main-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"34\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"35\": [0.19444, 0.69444, 0.06616, 0, 0.81777],\n \"37\": [0.05556, 0.75, 0.13639, 0, 0.81777],\n \"38\": [0, 0.69444, 0.09694, 0, 0.76666],\n \"39\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"40\": [0.25, 0.75, 0.16194, 0, 0.40889],\n \"41\": [0.25, 0.75, 0.03694, 0, 0.40889],\n \"42\": [0, 0.75, 0.14917, 0, 0.51111],\n \"43\": [0.05667, 0.56167, 0.03694, 0, 0.76666],\n \"44\": [0.19444, 0.10556, 0, 0, 0.30667],\n \"45\": [0, 0.43056, 0.02826, 0, 0.35778],\n \"46\": [0, 0.10556, 0, 0, 0.30667],\n \"47\": [0.25, 0.75, 0.16194, 0, 0.51111],\n \"48\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"49\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"50\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"51\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"52\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"53\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"54\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"55\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"56\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"57\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"58\": [0, 0.43056, 0.0582, 0, 0.30667],\n \"59\": [0.19444, 0.43056, 0.0582, 0, 0.30667],\n \"61\": [-0.13313, 0.36687, 0.06616, 0, 0.76666],\n \"63\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"64\": [0, 0.69444, 0.09597, 0, 0.76666],\n \"65\": [0, 0.68333, 0, 0, 0.74333],\n \"66\": [0, 0.68333, 0.10257, 0, 0.70389],\n \"67\": [0, 0.68333, 0.14528, 0, 0.71555],\n \"68\": [0, 0.68333, 0.09403, 0, 0.755],\n \"69\": [0, 0.68333, 0.12028, 0, 0.67833],\n \"70\": [0, 0.68333, 0.13305, 0, 0.65277],\n \"71\": [0, 0.68333, 0.08722, 0, 0.77361],\n \"72\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"73\": [0, 0.68333, 0.15806, 0, 0.38555],\n \"74\": [0, 0.68333, 0.14028, 0, 0.525],\n \"75\": [0, 0.68333, 0.14528, 0, 0.76888],\n \"76\": [0, 0.68333, 0, 0, 0.62722],\n \"77\": [0, 0.68333, 0.16389, 0, 0.89666],\n \"78\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"79\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"80\": [0, 0.68333, 0.10257, 0, 0.67833],\n \"81\": [0.19444, 0.68333, 0.09403, 0, 0.76666],\n \"82\": [0, 0.68333, 0.03868, 0, 0.72944],\n \"83\": [0, 0.68333, 0.11972, 0, 0.56222],\n \"84\": [0, 0.68333, 0.13305, 0, 0.71555],\n \"85\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"86\": [0, 0.68333, 0.18361, 0, 0.74333],\n \"87\": [0, 0.68333, 0.18361, 0, 0.99888],\n \"88\": [0, 0.68333, 0.15806, 0, 0.74333],\n \"89\": [0, 0.68333, 0.19383, 0, 0.74333],\n \"90\": [0, 0.68333, 0.14528, 0, 0.61333],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.30667],\n \"93\": [0.25, 0.75, 0.10528, 0, 0.30667],\n \"94\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"95\": [0.31, 0.12056, 0.09208, 0, 0.51111],\n \"97\": [0, 0.43056, 0.07671, 0, 0.51111],\n \"98\": [0, 0.69444, 0.06312, 0, 0.46],\n \"99\": [0, 0.43056, 0.05653, 0, 0.46],\n \"100\": [0, 0.69444, 0.10333, 0, 0.51111],\n \"101\": [0, 0.43056, 0.07514, 0, 0.46],\n \"102\": [0.19444, 0.69444, 0.21194, 0, 0.30667],\n \"103\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"104\": [0, 0.69444, 0.07671, 0, 0.51111],\n \"105\": [0, 0.65536, 0.1019, 0, 0.30667],\n \"106\": [0.19444, 0.65536, 0.14467, 0, 0.30667],\n \"107\": [0, 0.69444, 0.10764, 0, 0.46],\n \"108\": [0, 0.69444, 0.10333, 0, 0.25555],\n \"109\": [0, 0.43056, 0.07671, 0, 0.81777],\n \"110\": [0, 0.43056, 0.07671, 0, 0.56222],\n \"111\": [0, 0.43056, 0.06312, 0, 0.51111],\n \"112\": [0.19444, 0.43056, 0.06312, 0, 0.51111],\n \"113\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"114\": [0, 0.43056, 0.10764, 0, 0.42166],\n \"115\": [0, 0.43056, 0.08208, 0, 0.40889],\n \"116\": [0, 0.61508, 0.09486, 0, 0.33222],\n \"117\": [0, 0.43056, 0.07671, 0, 0.53666],\n \"118\": [0, 0.43056, 0.10764, 0, 0.46],\n \"119\": [0, 0.43056, 0.10764, 0, 0.66444],\n \"120\": [0, 0.43056, 0.12042, 0, 0.46389],\n \"121\": [0.19444, 0.43056, 0.08847, 0, 0.48555],\n \"122\": [0, 0.43056, 0.12292, 0, 0.40889],\n \"126\": [0.35, 0.31786, 0.11585, 0, 0.51111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.66786, 0.10474, 0, 0.51111],\n \"176\": [0, 0.69444, 0, 0, 0.83129],\n \"184\": [0.17014, 0, 0, 0, 0.46],\n \"198\": [0, 0.68333, 0.12028, 0, 0.88277],\n \"216\": [0.04861, 0.73194, 0.09403, 0, 0.76666],\n \"223\": [0.19444, 0.69444, 0.10514, 0, 0.53666],\n \"230\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"248\": [0.09722, 0.52778, 0.09194, 0, 0.51111],\n \"338\": [0, 0.68333, 0.12028, 0, 0.98499],\n \"339\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"710\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"711\": [0, 0.62847, 0.08295, 0, 0.51111],\n \"713\": [0, 0.56167, 0.10333, 0, 0.51111],\n \"714\": [0, 0.69444, 0.09694, 0, 0.51111],\n \"715\": [0, 0.69444, 0, 0, 0.51111],\n \"728\": [0, 0.69444, 0.10806, 0, 0.51111],\n \"729\": [0, 0.66786, 0.11752, 0, 0.30667],\n \"730\": [0, 0.69444, 0, 0, 0.83129],\n \"732\": [0, 0.66786, 0.11585, 0, 0.51111],\n \"733\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"915\": [0, 0.68333, 0.13305, 0, 0.62722],\n \"916\": [0, 0.68333, 0, 0, 0.81777],\n \"920\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"923\": [0, 0.68333, 0, 0, 0.69222],\n \"926\": [0, 0.68333, 0.15294, 0, 0.66444],\n \"928\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"931\": [0, 0.68333, 0.12028, 0, 0.71555],\n \"933\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"934\": [0, 0.68333, 0.05986, 0, 0.71555],\n \"936\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"937\": [0, 0.68333, 0.10257, 0, 0.71555],\n \"8211\": [0, 0.43056, 0.09208, 0, 0.51111],\n \"8212\": [0, 0.43056, 0.09208, 0, 1.02222],\n \"8216\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8217\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8220\": [0, 0.69444, 0.1685, 0, 0.51444],\n \"8221\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"8463\": [0, 0.68889, 0, 0, 0.54028]\n },\n \"Main-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.27778],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.77778],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.19444, 0.10556, 0, 0, 0.27778],\n \"45\": [0, 0.43056, 0, 0, 0.33333],\n \"46\": [0, 0.10556, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.64444, 0, 0, 0.5],\n \"49\": [0, 0.64444, 0, 0, 0.5],\n \"50\": [0, 0.64444, 0, 0, 0.5],\n \"51\": [0, 0.64444, 0, 0, 0.5],\n \"52\": [0, 0.64444, 0, 0, 0.5],\n \"53\": [0, 0.64444, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0, 0.64444, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0, 0.64444, 0, 0, 0.5],\n \"58\": [0, 0.43056, 0, 0, 0.27778],\n \"59\": [0.19444, 0.43056, 0, 0, 0.27778],\n \"60\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"61\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"62\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.77778],\n \"65\": [0, 0.68333, 0, 0, 0.75],\n \"66\": [0, 0.68333, 0, 0, 0.70834],\n \"67\": [0, 0.68333, 0, 0, 0.72222],\n \"68\": [0, 0.68333, 0, 0, 0.76389],\n \"69\": [0, 0.68333, 0, 0, 0.68056],\n \"70\": [0, 0.68333, 0, 0, 0.65278],\n \"71\": [0, 0.68333, 0, 0, 0.78472],\n \"72\": [0, 0.68333, 0, 0, 0.75],\n \"73\": [0, 0.68333, 0, 0, 0.36111],\n \"74\": [0, 0.68333, 0, 0, 0.51389],\n \"75\": [0, 0.68333, 0, 0, 0.77778],\n \"76\": [0, 0.68333, 0, 0, 0.625],\n \"77\": [0, 0.68333, 0, 0, 0.91667],\n \"78\": [0, 0.68333, 0, 0, 0.75],\n \"79\": [0, 0.68333, 0, 0, 0.77778],\n \"80\": [0, 0.68333, 0, 0, 0.68056],\n \"81\": [0.19444, 0.68333, 0, 0, 0.77778],\n \"82\": [0, 0.68333, 0, 0, 0.73611],\n \"83\": [0, 0.68333, 0, 0, 0.55556],\n \"84\": [0, 0.68333, 0, 0, 0.72222],\n \"85\": [0, 0.68333, 0, 0, 0.75],\n \"86\": [0, 0.68333, 0.01389, 0, 0.75],\n \"87\": [0, 0.68333, 0.01389, 0, 1.02778],\n \"88\": [0, 0.68333, 0, 0, 0.75],\n \"89\": [0, 0.68333, 0.025, 0, 0.75],\n \"90\": [0, 0.68333, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.27778],\n \"92\": [0.25, 0.75, 0, 0, 0.5],\n \"93\": [0.25, 0.75, 0, 0, 0.27778],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.31, 0.12056, 0.02778, 0, 0.5],\n \"97\": [0, 0.43056, 0, 0, 0.5],\n \"98\": [0, 0.69444, 0, 0, 0.55556],\n \"99\": [0, 0.43056, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.55556],\n \"101\": [0, 0.43056, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.07778, 0, 0.30556],\n \"103\": [0.19444, 0.43056, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.55556],\n \"105\": [0, 0.66786, 0, 0, 0.27778],\n \"106\": [0.19444, 0.66786, 0, 0, 0.30556],\n \"107\": [0, 0.69444, 0, 0, 0.52778],\n \"108\": [0, 0.69444, 0, 0, 0.27778],\n \"109\": [0, 0.43056, 0, 0, 0.83334],\n \"110\": [0, 0.43056, 0, 0, 0.55556],\n \"111\": [0, 0.43056, 0, 0, 0.5],\n \"112\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"113\": [0.19444, 0.43056, 0, 0, 0.52778],\n \"114\": [0, 0.43056, 0, 0, 0.39167],\n \"115\": [0, 0.43056, 0, 0, 0.39445],\n \"116\": [0, 0.61508, 0, 0, 0.38889],\n \"117\": [0, 0.43056, 0, 0, 0.55556],\n \"118\": [0, 0.43056, 0.01389, 0, 0.52778],\n \"119\": [0, 0.43056, 0.01389, 0, 0.72222],\n \"120\": [0, 0.43056, 0, 0, 0.52778],\n \"121\": [0.19444, 0.43056, 0.01389, 0, 0.52778],\n \"122\": [0, 0.43056, 0, 0, 0.44445],\n \"123\": [0.25, 0.75, 0, 0, 0.5],\n \"124\": [0.25, 0.75, 0, 0, 0.27778],\n \"125\": [0.25, 0.75, 0, 0, 0.5],\n \"126\": [0.35, 0.31786, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.76909],\n \"167\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"168\": [0, 0.66786, 0, 0, 0.5],\n \"172\": [0, 0.43056, 0, 0, 0.66667],\n \"176\": [0, 0.69444, 0, 0, 0.75],\n \"177\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"182\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"198\": [0, 0.68333, 0, 0, 0.90278],\n \"215\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"216\": [0.04861, 0.73194, 0, 0, 0.77778],\n \"223\": [0, 0.69444, 0, 0, 0.5],\n \"230\": [0, 0.43056, 0, 0, 0.72222],\n \"247\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"248\": [0.09722, 0.52778, 0, 0, 0.5],\n \"305\": [0, 0.43056, 0, 0, 0.27778],\n \"338\": [0, 0.68333, 0, 0, 1.01389],\n \"339\": [0, 0.43056, 0, 0, 0.77778],\n \"567\": [0.19444, 0.43056, 0, 0, 0.30556],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.62847, 0, 0, 0.5],\n \"713\": [0, 0.56778, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.66786, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.75],\n \"732\": [0, 0.66786, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.68333, 0, 0, 0.625],\n \"916\": [0, 0.68333, 0, 0, 0.83334],\n \"920\": [0, 0.68333, 0, 0, 0.77778],\n \"923\": [0, 0.68333, 0, 0, 0.69445],\n \"926\": [0, 0.68333, 0, 0, 0.66667],\n \"928\": [0, 0.68333, 0, 0, 0.75],\n \"931\": [0, 0.68333, 0, 0, 0.72222],\n \"933\": [0, 0.68333, 0, 0, 0.77778],\n \"934\": [0, 0.68333, 0, 0, 0.72222],\n \"936\": [0, 0.68333, 0, 0, 0.77778],\n \"937\": [0, 0.68333, 0, 0, 0.72222],\n \"8211\": [0, 0.43056, 0.02778, 0, 0.5],\n \"8212\": [0, 0.43056, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8230\": [0, 0.123, 0, 0, 1.172],\n \"8242\": [0, 0.55556, 0, 0, 0.275],\n \"8407\": [0, 0.71444, 0.15382, 0, 0.5],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8465\": [0, 0.69444, 0, 0, 0.72222],\n \"8467\": [0, 0.69444, 0, 0.11111, 0.41667],\n \"8472\": [0.19444, 0.43056, 0, 0.11111, 0.63646],\n \"8476\": [0, 0.69444, 0, 0, 0.72222],\n \"8501\": [0, 0.69444, 0, 0, 0.61111],\n \"8592\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8594\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8596\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8597\": [0.25, 0.75, 0, 0, 0.5],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8614\": [0.011, 0.511, 0, 0, 1.0],\n \"8617\": [0.011, 0.511, 0, 0, 1.126],\n \"8618\": [0.011, 0.511, 0, 0, 1.126],\n \"8636\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8637\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8640\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8641\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8652\": [0.011, 0.671, 0, 0, 1.0],\n \"8656\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8658\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8660\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8661\": [0.25, 0.75, 0, 0, 0.61111],\n \"8704\": [0, 0.69444, 0, 0, 0.55556],\n \"8706\": [0, 0.69444, 0.05556, 0.08334, 0.5309],\n \"8707\": [0, 0.69444, 0, 0, 0.55556],\n \"8709\": [0.05556, 0.75, 0, 0, 0.5],\n \"8711\": [0, 0.68333, 0, 0, 0.83334],\n \"8712\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8715\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8722\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8723\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8725\": [0.25, 0.75, 0, 0, 0.5],\n \"8726\": [0.25, 0.75, 0, 0, 0.5],\n \"8727\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8728\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8729\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8730\": [0.2, 0.8, 0, 0, 0.83334],\n \"8733\": [0, 0.43056, 0, 0, 0.77778],\n \"8734\": [0, 0.43056, 0, 0, 1.0],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.27778],\n \"8741\": [0.25, 0.75, 0, 0, 0.5],\n \"8743\": [0, 0.55556, 0, 0, 0.66667],\n \"8744\": [0, 0.55556, 0, 0, 0.66667],\n \"8745\": [0, 0.55556, 0, 0, 0.66667],\n \"8746\": [0, 0.55556, 0, 0, 0.66667],\n \"8747\": [0.19444, 0.69444, 0.11111, 0, 0.41667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.27778],\n \"8771\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8773\": [-0.022, 0.589, 0, 0, 0.778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8781\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8784\": [-0.133, 0.673, 0, 0, 0.778],\n \"8801\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8804\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8805\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8810\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8811\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8826\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8827\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8834\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8835\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8838\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8839\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8846\": [0, 0.55556, 0, 0, 0.66667],\n \"8849\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8850\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8851\": [0, 0.55556, 0, 0, 0.66667],\n \"8852\": [0, 0.55556, 0, 0, 0.66667],\n \"8853\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8854\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8855\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8856\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8857\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8866\": [0, 0.69444, 0, 0, 0.61111],\n \"8867\": [0, 0.69444, 0, 0, 0.61111],\n \"8868\": [0, 0.69444, 0, 0, 0.77778],\n \"8869\": [0, 0.69444, 0, 0, 0.77778],\n \"8872\": [0.249, 0.75, 0, 0, 0.867],\n \"8900\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8901\": [-0.05555, 0.44445, 0, 0, 0.27778],\n \"8902\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8904\": [0.005, 0.505, 0, 0, 0.9],\n \"8942\": [0.03, 0.903, 0, 0, 0.278],\n \"8943\": [-0.19, 0.313, 0, 0, 1.172],\n \"8945\": [-0.1, 0.823, 0, 0, 1.282],\n \"8968\": [0.25, 0.75, 0, 0, 0.44445],\n \"8969\": [0.25, 0.75, 0, 0, 0.44445],\n \"8970\": [0.25, 0.75, 0, 0, 0.44445],\n \"8971\": [0.25, 0.75, 0, 0, 0.44445],\n \"8994\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"8995\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"9136\": [0.244, 0.744, 0, 0, 0.412],\n \"9137\": [0.244, 0.745, 0, 0, 0.412],\n \"9651\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9657\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9661\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9667\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.0],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9837\": [0, 0.75, 0, 0, 0.38889],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"10216\": [0.25, 0.75, 0, 0, 0.38889],\n \"10217\": [0.25, 0.75, 0, 0, 0.38889],\n \"10222\": [0.244, 0.744, 0, 0, 0.412],\n \"10223\": [0.244, 0.745, 0, 0, 0.412],\n \"10229\": [0.011, 0.511, 0, 0, 1.609],\n \"10230\": [0.011, 0.511, 0, 0, 1.638],\n \"10231\": [0.011, 0.511, 0, 0, 1.859],\n \"10232\": [0.024, 0.525, 0, 0, 1.609],\n \"10233\": [0.024, 0.525, 0, 0, 1.638],\n \"10234\": [0.024, 0.525, 0, 0, 1.858],\n \"10236\": [0.011, 0.511, 0, 0, 1.638],\n \"10815\": [0, 0.68333, 0, 0, 0.75],\n \"10927\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10928\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Math-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.44444, 0, 0, 0.575],\n \"49\": [0, 0.44444, 0, 0, 0.575],\n \"50\": [0, 0.44444, 0, 0, 0.575],\n \"51\": [0.19444, 0.44444, 0, 0, 0.575],\n \"52\": [0.19444, 0.44444, 0, 0, 0.575],\n \"53\": [0.19444, 0.44444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0.19444, 0.44444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0.19444, 0.44444, 0, 0, 0.575],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0.04835, 0, 0.8664],\n \"67\": [0, 0.68611, 0.06979, 0, 0.81694],\n \"68\": [0, 0.68611, 0.03194, 0, 0.93812],\n \"69\": [0, 0.68611, 0.05451, 0, 0.81007],\n \"70\": [0, 0.68611, 0.15972, 0, 0.68889],\n \"71\": [0, 0.68611, 0, 0, 0.88673],\n \"72\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"73\": [0, 0.68611, 0.07778, 0, 0.51111],\n \"74\": [0, 0.68611, 0.10069, 0, 0.63125],\n \"75\": [0, 0.68611, 0.06979, 0, 0.97118],\n \"76\": [0, 0.68611, 0, 0, 0.75555],\n \"77\": [0, 0.68611, 0.11424, 0, 1.14201],\n \"78\": [0, 0.68611, 0.11424, 0, 0.95034],\n \"79\": [0, 0.68611, 0.03194, 0, 0.83666],\n \"80\": [0, 0.68611, 0.15972, 0, 0.72309],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86861],\n \"82\": [0, 0.68611, 0.00421, 0, 0.87235],\n \"83\": [0, 0.68611, 0.05382, 0, 0.69271],\n \"84\": [0, 0.68611, 0.15972, 0, 0.63663],\n \"85\": [0, 0.68611, 0.11424, 0, 0.80027],\n \"86\": [0, 0.68611, 0.25555, 0, 0.67778],\n \"87\": [0, 0.68611, 0.15972, 0, 1.09305],\n \"88\": [0, 0.68611, 0.07778, 0, 0.94722],\n \"89\": [0, 0.68611, 0.25555, 0, 0.67458],\n \"90\": [0, 0.68611, 0.06979, 0, 0.77257],\n \"97\": [0, 0.44444, 0, 0, 0.63287],\n \"98\": [0, 0.69444, 0, 0, 0.52083],\n \"99\": [0, 0.44444, 0, 0, 0.51342],\n \"100\": [0, 0.69444, 0, 0, 0.60972],\n \"101\": [0, 0.44444, 0, 0, 0.55361],\n \"102\": [0.19444, 0.69444, 0.11042, 0, 0.56806],\n \"103\": [0.19444, 0.44444, 0.03704, 0, 0.5449],\n \"104\": [0, 0.69444, 0, 0, 0.66759],\n \"105\": [0, 0.69326, 0, 0, 0.4048],\n \"106\": [0.19444, 0.69326, 0.0622, 0, 0.47083],\n \"107\": [0, 0.69444, 0.01852, 0, 0.6037],\n \"108\": [0, 0.69444, 0.0088, 0, 0.34815],\n \"109\": [0, 0.44444, 0, 0, 1.0324],\n \"110\": [0, 0.44444, 0, 0, 0.71296],\n \"111\": [0, 0.44444, 0, 0, 0.58472],\n \"112\": [0.19444, 0.44444, 0, 0, 0.60092],\n \"113\": [0.19444, 0.44444, 0.03704, 0, 0.54213],\n \"114\": [0, 0.44444, 0.03194, 0, 0.5287],\n \"115\": [0, 0.44444, 0, 0, 0.53125],\n \"116\": [0, 0.63492, 0, 0, 0.41528],\n \"117\": [0, 0.44444, 0, 0, 0.68102],\n \"118\": [0, 0.44444, 0.03704, 0, 0.56666],\n \"119\": [0, 0.44444, 0.02778, 0, 0.83148],\n \"120\": [0, 0.44444, 0, 0, 0.65903],\n \"121\": [0.19444, 0.44444, 0.03704, 0, 0.59028],\n \"122\": [0, 0.44444, 0.04213, 0, 0.55509],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68611, 0.15972, 0, 0.65694],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0.03194, 0, 0.86722],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0.07458, 0, 0.84125],\n \"928\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"931\": [0, 0.68611, 0.05451, 0, 0.88507],\n \"933\": [0, 0.68611, 0.15972, 0, 0.67083],\n \"934\": [0, 0.68611, 0, 0, 0.76666],\n \"936\": [0, 0.68611, 0.11653, 0, 0.71402],\n \"937\": [0, 0.68611, 0.04835, 0, 0.8789],\n \"945\": [0, 0.44444, 0, 0, 0.76064],\n \"946\": [0.19444, 0.69444, 0.03403, 0, 0.65972],\n \"947\": [0.19444, 0.44444, 0.06389, 0, 0.59003],\n \"948\": [0, 0.69444, 0.03819, 0, 0.52222],\n \"949\": [0, 0.44444, 0, 0, 0.52882],\n \"950\": [0.19444, 0.69444, 0.06215, 0, 0.50833],\n \"951\": [0.19444, 0.44444, 0.03704, 0, 0.6],\n \"952\": [0, 0.69444, 0.03194, 0, 0.5618],\n \"953\": [0, 0.44444, 0, 0, 0.41204],\n \"954\": [0, 0.44444, 0, 0, 0.66759],\n \"955\": [0, 0.69444, 0, 0, 0.67083],\n \"956\": [0.19444, 0.44444, 0, 0, 0.70787],\n \"957\": [0, 0.44444, 0.06898, 0, 0.57685],\n \"958\": [0.19444, 0.69444, 0.03021, 0, 0.50833],\n \"959\": [0, 0.44444, 0, 0, 0.58472],\n \"960\": [0, 0.44444, 0.03704, 0, 0.68241],\n \"961\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"962\": [0.09722, 0.44444, 0.07917, 0, 0.42361],\n \"963\": [0, 0.44444, 0.03704, 0, 0.68588],\n \"964\": [0, 0.44444, 0.13472, 0, 0.52083],\n \"965\": [0, 0.44444, 0.03704, 0, 0.63055],\n \"966\": [0.19444, 0.44444, 0, 0, 0.74722],\n \"967\": [0.19444, 0.44444, 0, 0, 0.71805],\n \"968\": [0.19444, 0.69444, 0.03704, 0, 0.75833],\n \"969\": [0, 0.44444, 0.03704, 0, 0.71782],\n \"977\": [0, 0.69444, 0, 0, 0.69155],\n \"981\": [0.19444, 0.69444, 0, 0, 0.7125],\n \"982\": [0, 0.44444, 0.03194, 0, 0.975],\n \"1009\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"1013\": [0, 0.44444, 0, 0, 0.48333],\n \"57649\": [0, 0.44444, 0, 0, 0.39352],\n \"57911\": [0.19444, 0.44444, 0, 0, 0.43889]\n },\n \"Math-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.43056, 0, 0, 0.5],\n \"49\": [0, 0.43056, 0, 0, 0.5],\n \"50\": [0, 0.43056, 0, 0, 0.5],\n \"51\": [0.19444, 0.43056, 0, 0, 0.5],\n \"52\": [0.19444, 0.43056, 0, 0, 0.5],\n \"53\": [0.19444, 0.43056, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0.19444, 0.43056, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0.19444, 0.43056, 0, 0, 0.5],\n \"65\": [0, 0.68333, 0, 0.13889, 0.75],\n \"66\": [0, 0.68333, 0.05017, 0.08334, 0.75851],\n \"67\": [0, 0.68333, 0.07153, 0.08334, 0.71472],\n \"68\": [0, 0.68333, 0.02778, 0.05556, 0.82792],\n \"69\": [0, 0.68333, 0.05764, 0.08334, 0.7382],\n \"70\": [0, 0.68333, 0.13889, 0.08334, 0.64306],\n \"71\": [0, 0.68333, 0, 0.08334, 0.78625],\n \"72\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"73\": [0, 0.68333, 0.07847, 0.11111, 0.43958],\n \"74\": [0, 0.68333, 0.09618, 0.16667, 0.55451],\n \"75\": [0, 0.68333, 0.07153, 0.05556, 0.84931],\n \"76\": [0, 0.68333, 0, 0.02778, 0.68056],\n \"77\": [0, 0.68333, 0.10903, 0.08334, 0.97014],\n \"78\": [0, 0.68333, 0.10903, 0.08334, 0.80347],\n \"79\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"80\": [0, 0.68333, 0.13889, 0.08334, 0.64201],\n \"81\": [0.19444, 0.68333, 0, 0.08334, 0.79056],\n \"82\": [0, 0.68333, 0.00773, 0.08334, 0.75929],\n \"83\": [0, 0.68333, 0.05764, 0.08334, 0.6132],\n \"84\": [0, 0.68333, 0.13889, 0.08334, 0.58438],\n \"85\": [0, 0.68333, 0.10903, 0.02778, 0.68278],\n \"86\": [0, 0.68333, 0.22222, 0, 0.58333],\n \"87\": [0, 0.68333, 0.13889, 0, 0.94445],\n \"88\": [0, 0.68333, 0.07847, 0.08334, 0.82847],\n \"89\": [0, 0.68333, 0.22222, 0, 0.58056],\n \"90\": [0, 0.68333, 0.07153, 0.08334, 0.68264],\n \"97\": [0, 0.43056, 0, 0, 0.52859],\n \"98\": [0, 0.69444, 0, 0, 0.42917],\n \"99\": [0, 0.43056, 0, 0.05556, 0.43276],\n \"100\": [0, 0.69444, 0, 0.16667, 0.52049],\n \"101\": [0, 0.43056, 0, 0.05556, 0.46563],\n \"102\": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],\n \"103\": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],\n \"104\": [0, 0.69444, 0, 0, 0.57616],\n \"105\": [0, 0.65952, 0, 0, 0.34451],\n \"106\": [0.19444, 0.65952, 0.05724, 0, 0.41181],\n \"107\": [0, 0.69444, 0.03148, 0, 0.5206],\n \"108\": [0, 0.69444, 0.01968, 0.08334, 0.29838],\n \"109\": [0, 0.43056, 0, 0, 0.87801],\n \"110\": [0, 0.43056, 0, 0, 0.60023],\n \"111\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"112\": [0.19444, 0.43056, 0, 0.08334, 0.50313],\n \"113\": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],\n \"114\": [0, 0.43056, 0.02778, 0.05556, 0.45116],\n \"115\": [0, 0.43056, 0, 0.05556, 0.46875],\n \"116\": [0, 0.61508, 0, 0.08334, 0.36111],\n \"117\": [0, 0.43056, 0, 0.02778, 0.57246],\n \"118\": [0, 0.43056, 0.03588, 0.02778, 0.48472],\n \"119\": [0, 0.43056, 0.02691, 0.08334, 0.71592],\n \"120\": [0, 0.43056, 0, 0.02778, 0.57153],\n \"121\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],\n \"122\": [0, 0.43056, 0.04398, 0.05556, 0.46505],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68333, 0.13889, 0.08334, 0.61528],\n \"916\": [0, 0.68333, 0, 0.16667, 0.83334],\n \"920\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"923\": [0, 0.68333, 0, 0.16667, 0.69445],\n \"926\": [0, 0.68333, 0.07569, 0.08334, 0.74236],\n \"928\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"931\": [0, 0.68333, 0.05764, 0.08334, 0.77986],\n \"933\": [0, 0.68333, 0.13889, 0.05556, 0.58333],\n \"934\": [0, 0.68333, 0, 0.08334, 0.66667],\n \"936\": [0, 0.68333, 0.11, 0.05556, 0.61222],\n \"937\": [0, 0.68333, 0.05017, 0.08334, 0.7724],\n \"945\": [0, 0.43056, 0.0037, 0.02778, 0.6397],\n \"946\": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],\n \"947\": [0.19444, 0.43056, 0.05556, 0, 0.51773],\n \"948\": [0, 0.69444, 0.03785, 0.05556, 0.44444],\n \"949\": [0, 0.43056, 0, 0.08334, 0.46632],\n \"950\": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],\n \"951\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],\n \"952\": [0, 0.69444, 0.02778, 0.08334, 0.46944],\n \"953\": [0, 0.43056, 0, 0.05556, 0.35394],\n \"954\": [0, 0.43056, 0, 0, 0.57616],\n \"955\": [0, 0.69444, 0, 0, 0.58334],\n \"956\": [0.19444, 0.43056, 0, 0.02778, 0.60255],\n \"957\": [0, 0.43056, 0.06366, 0.02778, 0.49398],\n \"958\": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],\n \"959\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"960\": [0, 0.43056, 0.03588, 0, 0.57003],\n \"961\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"962\": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],\n \"963\": [0, 0.43056, 0.03588, 0, 0.57141],\n \"964\": [0, 0.43056, 0.1132, 0.02778, 0.43715],\n \"965\": [0, 0.43056, 0.03588, 0.02778, 0.54028],\n \"966\": [0.19444, 0.43056, 0, 0.08334, 0.65417],\n \"967\": [0.19444, 0.43056, 0, 0.05556, 0.62569],\n \"968\": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],\n \"969\": [0, 0.43056, 0.03588, 0, 0.62245],\n \"977\": [0, 0.69444, 0, 0.08334, 0.59144],\n \"981\": [0.19444, 0.69444, 0, 0.08334, 0.59583],\n \"982\": [0, 0.43056, 0.02778, 0, 0.82813],\n \"1009\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"1013\": [0, 0.43056, 0, 0.05556, 0.4059],\n \"57649\": [0, 0.43056, 0, 0.02778, 0.32246],\n \"57911\": [0.19444, 0.43056, 0, 0.08334, 0.38403]\n },\n \"SansSerif-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.36667],\n \"34\": [0, 0.69444, 0, 0, 0.55834],\n \"35\": [0.19444, 0.69444, 0, 0, 0.91667],\n \"36\": [0.05556, 0.75, 0, 0, 0.55],\n \"37\": [0.05556, 0.75, 0, 0, 1.02912],\n \"38\": [0, 0.69444, 0, 0, 0.83056],\n \"39\": [0, 0.69444, 0, 0, 0.30556],\n \"40\": [0.25, 0.75, 0, 0, 0.42778],\n \"41\": [0.25, 0.75, 0, 0, 0.42778],\n \"42\": [0, 0.75, 0, 0, 0.55],\n \"43\": [0.11667, 0.61667, 0, 0, 0.85556],\n \"44\": [0.10556, 0.13056, 0, 0, 0.30556],\n \"45\": [0, 0.45833, 0, 0, 0.36667],\n \"46\": [0, 0.13056, 0, 0, 0.30556],\n \"47\": [0.25, 0.75, 0, 0, 0.55],\n \"48\": [0, 0.69444, 0, 0, 0.55],\n \"49\": [0, 0.69444, 0, 0, 0.55],\n \"50\": [0, 0.69444, 0, 0, 0.55],\n \"51\": [0, 0.69444, 0, 0, 0.55],\n \"52\": [0, 0.69444, 0, 0, 0.55],\n \"53\": [0, 0.69444, 0, 0, 0.55],\n \"54\": [0, 0.69444, 0, 0, 0.55],\n \"55\": [0, 0.69444, 0, 0, 0.55],\n \"56\": [0, 0.69444, 0, 0, 0.55],\n \"57\": [0, 0.69444, 0, 0, 0.55],\n \"58\": [0, 0.45833, 0, 0, 0.30556],\n \"59\": [0.10556, 0.45833, 0, 0, 0.30556],\n \"61\": [-0.09375, 0.40625, 0, 0, 0.85556],\n \"63\": [0, 0.69444, 0, 0, 0.51945],\n \"64\": [0, 0.69444, 0, 0, 0.73334],\n \"65\": [0, 0.69444, 0, 0, 0.73334],\n \"66\": [0, 0.69444, 0, 0, 0.73334],\n \"67\": [0, 0.69444, 0, 0, 0.70278],\n \"68\": [0, 0.69444, 0, 0, 0.79445],\n \"69\": [0, 0.69444, 0, 0, 0.64167],\n \"70\": [0, 0.69444, 0, 0, 0.61111],\n \"71\": [0, 0.69444, 0, 0, 0.73334],\n \"72\": [0, 0.69444, 0, 0, 0.79445],\n \"73\": [0, 0.69444, 0, 0, 0.33056],\n \"74\": [0, 0.69444, 0, 0, 0.51945],\n \"75\": [0, 0.69444, 0, 0, 0.76389],\n \"76\": [0, 0.69444, 0, 0, 0.58056],\n \"77\": [0, 0.69444, 0, 0, 0.97778],\n \"78\": [0, 0.69444, 0, 0, 0.79445],\n \"79\": [0, 0.69444, 0, 0, 0.79445],\n \"80\": [0, 0.69444, 0, 0, 0.70278],\n \"81\": [0.10556, 0.69444, 0, 0, 0.79445],\n \"82\": [0, 0.69444, 0, 0, 0.70278],\n \"83\": [0, 0.69444, 0, 0, 0.61111],\n \"84\": [0, 0.69444, 0, 0, 0.73334],\n \"85\": [0, 0.69444, 0, 0, 0.76389],\n \"86\": [0, 0.69444, 0.01528, 0, 0.73334],\n \"87\": [0, 0.69444, 0.01528, 0, 1.03889],\n \"88\": [0, 0.69444, 0, 0, 0.73334],\n \"89\": [0, 0.69444, 0.0275, 0, 0.73334],\n \"90\": [0, 0.69444, 0, 0, 0.67223],\n \"91\": [0.25, 0.75, 0, 0, 0.34306],\n \"93\": [0.25, 0.75, 0, 0, 0.34306],\n \"94\": [0, 0.69444, 0, 0, 0.55],\n \"95\": [0.35, 0.10833, 0.03056, 0, 0.55],\n \"97\": [0, 0.45833, 0, 0, 0.525],\n \"98\": [0, 0.69444, 0, 0, 0.56111],\n \"99\": [0, 0.45833, 0, 0, 0.48889],\n \"100\": [0, 0.69444, 0, 0, 0.56111],\n \"101\": [0, 0.45833, 0, 0, 0.51111],\n \"102\": [0, 0.69444, 0.07639, 0, 0.33611],\n \"103\": [0.19444, 0.45833, 0.01528, 0, 0.55],\n \"104\": [0, 0.69444, 0, 0, 0.56111],\n \"105\": [0, 0.69444, 0, 0, 0.25556],\n \"106\": [0.19444, 0.69444, 0, 0, 0.28611],\n \"107\": [0, 0.69444, 0, 0, 0.53056],\n \"108\": [0, 0.69444, 0, 0, 0.25556],\n \"109\": [0, 0.45833, 0, 0, 0.86667],\n \"110\": [0, 0.45833, 0, 0, 0.56111],\n \"111\": [0, 0.45833, 0, 0, 0.55],\n \"112\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"113\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"114\": [0, 0.45833, 0.01528, 0, 0.37222],\n \"115\": [0, 0.45833, 0, 0, 0.42167],\n \"116\": [0, 0.58929, 0, 0, 0.40417],\n \"117\": [0, 0.45833, 0, 0, 0.56111],\n \"118\": [0, 0.45833, 0.01528, 0, 0.5],\n \"119\": [0, 0.45833, 0.01528, 0, 0.74445],\n \"120\": [0, 0.45833, 0, 0, 0.5],\n \"121\": [0.19444, 0.45833, 0.01528, 0, 0.5],\n \"122\": [0, 0.45833, 0, 0, 0.47639],\n \"126\": [0.35, 0.34444, 0, 0, 0.55],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0, 0, 0.55],\n \"176\": [0, 0.69444, 0, 0, 0.73334],\n \"180\": [0, 0.69444, 0, 0, 0.55],\n \"184\": [0.17014, 0, 0, 0, 0.48889],\n \"305\": [0, 0.45833, 0, 0, 0.25556],\n \"567\": [0.19444, 0.45833, 0, 0, 0.28611],\n \"710\": [0, 0.69444, 0, 0, 0.55],\n \"711\": [0, 0.63542, 0, 0, 0.55],\n \"713\": [0, 0.63778, 0, 0, 0.55],\n \"728\": [0, 0.69444, 0, 0, 0.55],\n \"729\": [0, 0.69444, 0, 0, 0.30556],\n \"730\": [0, 0.69444, 0, 0, 0.73334],\n \"732\": [0, 0.69444, 0, 0, 0.55],\n \"733\": [0, 0.69444, 0, 0, 0.55],\n \"915\": [0, 0.69444, 0, 0, 0.58056],\n \"916\": [0, 0.69444, 0, 0, 0.91667],\n \"920\": [0, 0.69444, 0, 0, 0.85556],\n \"923\": [0, 0.69444, 0, 0, 0.67223],\n \"926\": [0, 0.69444, 0, 0, 0.73334],\n \"928\": [0, 0.69444, 0, 0, 0.79445],\n \"931\": [0, 0.69444, 0, 0, 0.79445],\n \"933\": [0, 0.69444, 0, 0, 0.85556],\n \"934\": [0, 0.69444, 0, 0, 0.79445],\n \"936\": [0, 0.69444, 0, 0, 0.85556],\n \"937\": [0, 0.69444, 0, 0, 0.79445],\n \"8211\": [0, 0.45833, 0.03056, 0, 0.55],\n \"8212\": [0, 0.45833, 0.03056, 0, 1.10001],\n \"8216\": [0, 0.69444, 0, 0, 0.30556],\n \"8217\": [0, 0.69444, 0, 0, 0.30556],\n \"8220\": [0, 0.69444, 0, 0, 0.55834],\n \"8221\": [0, 0.69444, 0, 0, 0.55834]\n },\n \"SansSerif-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.05733, 0, 0.31945],\n \"34\": [0, 0.69444, 0.00316, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0.05087, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0.11156, 0, 0.5],\n \"37\": [0.05556, 0.75, 0.03126, 0, 0.83334],\n \"38\": [0, 0.69444, 0.03058, 0, 0.75834],\n \"39\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"40\": [0.25, 0.75, 0.13164, 0, 0.38889],\n \"41\": [0.25, 0.75, 0.02536, 0, 0.38889],\n \"42\": [0, 0.75, 0.11775, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0.02536, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0.01946, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0.13164, 0, 0.5],\n \"48\": [0, 0.65556, 0.11156, 0, 0.5],\n \"49\": [0, 0.65556, 0.11156, 0, 0.5],\n \"50\": [0, 0.65556, 0.11156, 0, 0.5],\n \"51\": [0, 0.65556, 0.11156, 0, 0.5],\n \"52\": [0, 0.65556, 0.11156, 0, 0.5],\n \"53\": [0, 0.65556, 0.11156, 0, 0.5],\n \"54\": [0, 0.65556, 0.11156, 0, 0.5],\n \"55\": [0, 0.65556, 0.11156, 0, 0.5],\n \"56\": [0, 0.65556, 0.11156, 0, 0.5],\n \"57\": [0, 0.65556, 0.11156, 0, 0.5],\n \"58\": [0, 0.44444, 0.02502, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0.02502, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0.05087, 0, 0.77778],\n \"63\": [0, 0.69444, 0.11809, 0, 0.47222],\n \"64\": [0, 0.69444, 0.07555, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0.08293, 0, 0.66667],\n \"67\": [0, 0.69444, 0.11983, 0, 0.63889],\n \"68\": [0, 0.69444, 0.07555, 0, 0.72223],\n \"69\": [0, 0.69444, 0.11983, 0, 0.59722],\n \"70\": [0, 0.69444, 0.13372, 0, 0.56945],\n \"71\": [0, 0.69444, 0.11983, 0, 0.66667],\n \"72\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"73\": [0, 0.69444, 0.13372, 0, 0.27778],\n \"74\": [0, 0.69444, 0.08094, 0, 0.47222],\n \"75\": [0, 0.69444, 0.11983, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0.08094, 0, 0.875],\n \"78\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"79\": [0, 0.69444, 0.07555, 0, 0.73611],\n \"80\": [0, 0.69444, 0.08293, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0.07555, 0, 0.73611],\n \"82\": [0, 0.69444, 0.08293, 0, 0.64584],\n \"83\": [0, 0.69444, 0.09205, 0, 0.55556],\n \"84\": [0, 0.69444, 0.13372, 0, 0.68056],\n \"85\": [0, 0.69444, 0.08094, 0, 0.6875],\n \"86\": [0, 0.69444, 0.1615, 0, 0.66667],\n \"87\": [0, 0.69444, 0.1615, 0, 0.94445],\n \"88\": [0, 0.69444, 0.13372, 0, 0.66667],\n \"89\": [0, 0.69444, 0.17261, 0, 0.66667],\n \"90\": [0, 0.69444, 0.11983, 0, 0.61111],\n \"91\": [0.25, 0.75, 0.15942, 0, 0.28889],\n \"93\": [0.25, 0.75, 0.08719, 0, 0.28889],\n \"94\": [0, 0.69444, 0.0799, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.08616, 0, 0.5],\n \"97\": [0, 0.44444, 0.00981, 0, 0.48056],\n \"98\": [0, 0.69444, 0.03057, 0, 0.51667],\n \"99\": [0, 0.44444, 0.08336, 0, 0.44445],\n \"100\": [0, 0.69444, 0.09483, 0, 0.51667],\n \"101\": [0, 0.44444, 0.06778, 0, 0.44445],\n \"102\": [0, 0.69444, 0.21705, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.10836, 0, 0.5],\n \"104\": [0, 0.69444, 0.01778, 0, 0.51667],\n \"105\": [0, 0.67937, 0.09718, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0.09162, 0, 0.26667],\n \"107\": [0, 0.69444, 0.08336, 0, 0.48889],\n \"108\": [0, 0.69444, 0.09483, 0, 0.23889],\n \"109\": [0, 0.44444, 0.01778, 0, 0.79445],\n \"110\": [0, 0.44444, 0.01778, 0, 0.51667],\n \"111\": [0, 0.44444, 0.06613, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0.0389, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0.04169, 0, 0.51667],\n \"114\": [0, 0.44444, 0.10836, 0, 0.34167],\n \"115\": [0, 0.44444, 0.0778, 0, 0.38333],\n \"116\": [0, 0.57143, 0.07225, 0, 0.36111],\n \"117\": [0, 0.44444, 0.04169, 0, 0.51667],\n \"118\": [0, 0.44444, 0.10836, 0, 0.46111],\n \"119\": [0, 0.44444, 0.10836, 0, 0.68334],\n \"120\": [0, 0.44444, 0.09169, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.10836, 0, 0.46111],\n \"122\": [0, 0.44444, 0.08752, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0.08826, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0.06385, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.73752],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0.04169, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0.04169, 0, 0.26667],\n \"710\": [0, 0.69444, 0.0799, 0, 0.5],\n \"711\": [0, 0.63194, 0.08432, 0, 0.5],\n \"713\": [0, 0.60889, 0.08776, 0, 0.5],\n \"714\": [0, 0.69444, 0.09205, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0.09483, 0, 0.5],\n \"729\": [0, 0.67937, 0.07774, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.73752],\n \"732\": [0, 0.67659, 0.08826, 0, 0.5],\n \"733\": [0, 0.69444, 0.09205, 0, 0.5],\n \"915\": [0, 0.69444, 0.13372, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0.07555, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0.12816, 0, 0.66667],\n \"928\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"931\": [0, 0.69444, 0.11983, 0, 0.72222],\n \"933\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"934\": [0, 0.69444, 0.04603, 0, 0.72222],\n \"936\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"937\": [0, 0.69444, 0.08293, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.08616, 0, 0.5],\n \"8212\": [0, 0.44444, 0.08616, 0, 1.0],\n \"8216\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8217\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8220\": [0, 0.69444, 0.14205, 0, 0.5],\n \"8221\": [0, 0.69444, 0.00316, 0, 0.5]\n },\n \"SansSerif-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.31945],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.75834],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.65556, 0, 0, 0.5],\n \"49\": [0, 0.65556, 0, 0, 0.5],\n \"50\": [0, 0.65556, 0, 0, 0.5],\n \"51\": [0, 0.65556, 0, 0, 0.5],\n \"52\": [0, 0.65556, 0, 0, 0.5],\n \"53\": [0, 0.65556, 0, 0, 0.5],\n \"54\": [0, 0.65556, 0, 0, 0.5],\n \"55\": [0, 0.65556, 0, 0, 0.5],\n \"56\": [0, 0.65556, 0, 0, 0.5],\n \"57\": [0, 0.65556, 0, 0, 0.5],\n \"58\": [0, 0.44444, 0, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0, 0, 0.66667],\n \"67\": [0, 0.69444, 0, 0, 0.63889],\n \"68\": [0, 0.69444, 0, 0, 0.72223],\n \"69\": [0, 0.69444, 0, 0, 0.59722],\n \"70\": [0, 0.69444, 0, 0, 0.56945],\n \"71\": [0, 0.69444, 0, 0, 0.66667],\n \"72\": [0, 0.69444, 0, 0, 0.70834],\n \"73\": [0, 0.69444, 0, 0, 0.27778],\n \"74\": [0, 0.69444, 0, 0, 0.47222],\n \"75\": [0, 0.69444, 0, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0, 0, 0.875],\n \"78\": [0, 0.69444, 0, 0, 0.70834],\n \"79\": [0, 0.69444, 0, 0, 0.73611],\n \"80\": [0, 0.69444, 0, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0, 0, 0.73611],\n \"82\": [0, 0.69444, 0, 0, 0.64584],\n \"83\": [0, 0.69444, 0, 0, 0.55556],\n \"84\": [0, 0.69444, 0, 0, 0.68056],\n \"85\": [0, 0.69444, 0, 0, 0.6875],\n \"86\": [0, 0.69444, 0.01389, 0, 0.66667],\n \"87\": [0, 0.69444, 0.01389, 0, 0.94445],\n \"88\": [0, 0.69444, 0, 0, 0.66667],\n \"89\": [0, 0.69444, 0.025, 0, 0.66667],\n \"90\": [0, 0.69444, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.28889],\n \"93\": [0.25, 0.75, 0, 0, 0.28889],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.02778, 0, 0.5],\n \"97\": [0, 0.44444, 0, 0, 0.48056],\n \"98\": [0, 0.69444, 0, 0, 0.51667],\n \"99\": [0, 0.44444, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.51667],\n \"101\": [0, 0.44444, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.06944, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.51667],\n \"105\": [0, 0.67937, 0, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0, 0, 0.26667],\n \"107\": [0, 0.69444, 0, 0, 0.48889],\n \"108\": [0, 0.69444, 0, 0, 0.23889],\n \"109\": [0, 0.44444, 0, 0, 0.79445],\n \"110\": [0, 0.44444, 0, 0, 0.51667],\n \"111\": [0, 0.44444, 0, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"114\": [0, 0.44444, 0.01389, 0, 0.34167],\n \"115\": [0, 0.44444, 0, 0, 0.38333],\n \"116\": [0, 0.57143, 0, 0, 0.36111],\n \"117\": [0, 0.44444, 0, 0, 0.51667],\n \"118\": [0, 0.44444, 0.01389, 0, 0.46111],\n \"119\": [0, 0.44444, 0.01389, 0, 0.68334],\n \"120\": [0, 0.44444, 0, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.01389, 0, 0.46111],\n \"122\": [0, 0.44444, 0, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.66667],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0, 0, 0.26667],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.63194, 0, 0, 0.5],\n \"713\": [0, 0.60889, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.67937, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.66667],\n \"732\": [0, 0.67659, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.69444, 0, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0, 0, 0.66667],\n \"928\": [0, 0.69444, 0, 0, 0.70834],\n \"931\": [0, 0.69444, 0, 0, 0.72222],\n \"933\": [0, 0.69444, 0, 0, 0.77778],\n \"934\": [0, 0.69444, 0, 0, 0.72222],\n \"936\": [0, 0.69444, 0, 0, 0.77778],\n \"937\": [0, 0.69444, 0, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.02778, 0, 0.5],\n \"8212\": [0, 0.44444, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5]\n },\n \"Script-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.7, 0.22925, 0, 0.80253],\n \"66\": [0, 0.7, 0.04087, 0, 0.90757],\n \"67\": [0, 0.7, 0.1689, 0, 0.66619],\n \"68\": [0, 0.7, 0.09371, 0, 0.77443],\n \"69\": [0, 0.7, 0.18583, 0, 0.56162],\n \"70\": [0, 0.7, 0.13634, 0, 0.89544],\n \"71\": [0, 0.7, 0.17322, 0, 0.60961],\n \"72\": [0, 0.7, 0.29694, 0, 0.96919],\n \"73\": [0, 0.7, 0.19189, 0, 0.80907],\n \"74\": [0.27778, 0.7, 0.19189, 0, 1.05159],\n \"75\": [0, 0.7, 0.31259, 0, 0.91364],\n \"76\": [0, 0.7, 0.19189, 0, 0.87373],\n \"77\": [0, 0.7, 0.15981, 0, 1.08031],\n \"78\": [0, 0.7, 0.3525, 0, 0.9015],\n \"79\": [0, 0.7, 0.08078, 0, 0.73787],\n \"80\": [0, 0.7, 0.08078, 0, 1.01262],\n \"81\": [0, 0.7, 0.03305, 0, 0.88282],\n \"82\": [0, 0.7, 0.06259, 0, 0.85],\n \"83\": [0, 0.7, 0.19189, 0, 0.86767],\n \"84\": [0, 0.7, 0.29087, 0, 0.74697],\n \"85\": [0, 0.7, 0.25815, 0, 0.79996],\n \"86\": [0, 0.7, 0.27523, 0, 0.62204],\n \"87\": [0, 0.7, 0.27523, 0, 0.80532],\n \"88\": [0, 0.7, 0.26006, 0, 0.94445],\n \"89\": [0, 0.7, 0.2939, 0, 0.70961],\n \"90\": [0, 0.7, 0.24037, 0, 0.8212],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Size1-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.35001, 0.85, 0, 0, 0.45834],\n \"41\": [0.35001, 0.85, 0, 0, 0.45834],\n \"47\": [0.35001, 0.85, 0, 0, 0.57778],\n \"91\": [0.35001, 0.85, 0, 0, 0.41667],\n \"92\": [0.35001, 0.85, 0, 0, 0.57778],\n \"93\": [0.35001, 0.85, 0, 0, 0.41667],\n \"123\": [0.35001, 0.85, 0, 0, 0.58334],\n \"125\": [0.35001, 0.85, 0, 0, 0.58334],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.72222, 0, 0, 0.55556],\n \"732\": [0, 0.72222, 0, 0, 0.55556],\n \"770\": [0, 0.72222, 0, 0, 0.55556],\n \"771\": [0, 0.72222, 0, 0, 0.55556],\n \"8214\": [-0.00099, 0.601, 0, 0, 0.77778],\n \"8593\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8595\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8657\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8659\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8719\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8720\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8721\": [0.25001, 0.75, 0, 0, 1.05556],\n \"8730\": [0.35001, 0.85, 0, 0, 1.0],\n \"8739\": [-0.00599, 0.606, 0, 0, 0.33333],\n \"8741\": [-0.00599, 0.606, 0, 0, 0.55556],\n \"8747\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8748\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8749\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8750\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8896\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8897\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8898\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8899\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8968\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8969\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8970\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8971\": [0.35001, 0.85, 0, 0, 0.47222],\n \"9168\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"10216\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10217\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10752\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10753\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10754\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10756\": [0.25001, 0.75, 0, 0, 0.83334],\n \"10758\": [0.25001, 0.75, 0, 0, 0.83334]\n },\n \"Size2-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.65002, 1.15, 0, 0, 0.59722],\n \"41\": [0.65002, 1.15, 0, 0, 0.59722],\n \"47\": [0.65002, 1.15, 0, 0, 0.81111],\n \"91\": [0.65002, 1.15, 0, 0, 0.47222],\n \"92\": [0.65002, 1.15, 0, 0, 0.81111],\n \"93\": [0.65002, 1.15, 0, 0, 0.47222],\n \"123\": [0.65002, 1.15, 0, 0, 0.66667],\n \"125\": [0.65002, 1.15, 0, 0, 0.66667],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.0],\n \"732\": [0, 0.75, 0, 0, 1.0],\n \"770\": [0, 0.75, 0, 0, 1.0],\n \"771\": [0, 0.75, 0, 0, 1.0],\n \"8719\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8720\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8721\": [0.55001, 1.05, 0, 0, 1.44445],\n \"8730\": [0.65002, 1.15, 0, 0, 1.0],\n \"8747\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8748\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8749\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8750\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8896\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8897\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8898\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8899\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8968\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8969\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8970\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8971\": [0.65002, 1.15, 0, 0, 0.52778],\n \"10216\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10217\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10752\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10753\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10754\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10756\": [0.55001, 1.05, 0, 0, 1.11111],\n \"10758\": [0.55001, 1.05, 0, 0, 1.11111]\n },\n \"Size3-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.95003, 1.45, 0, 0, 0.73611],\n \"41\": [0.95003, 1.45, 0, 0, 0.73611],\n \"47\": [0.95003, 1.45, 0, 0, 1.04445],\n \"91\": [0.95003, 1.45, 0, 0, 0.52778],\n \"92\": [0.95003, 1.45, 0, 0, 1.04445],\n \"93\": [0.95003, 1.45, 0, 0, 0.52778],\n \"123\": [0.95003, 1.45, 0, 0, 0.75],\n \"125\": [0.95003, 1.45, 0, 0, 0.75],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.44445],\n \"732\": [0, 0.75, 0, 0, 1.44445],\n \"770\": [0, 0.75, 0, 0, 1.44445],\n \"771\": [0, 0.75, 0, 0, 1.44445],\n \"8730\": [0.95003, 1.45, 0, 0, 1.0],\n \"8968\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8969\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8970\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8971\": [0.95003, 1.45, 0, 0, 0.58334],\n \"10216\": [0.95003, 1.45, 0, 0, 0.75],\n \"10217\": [0.95003, 1.45, 0, 0, 0.75]\n },\n \"Size4-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [1.25003, 1.75, 0, 0, 0.79167],\n \"41\": [1.25003, 1.75, 0, 0, 0.79167],\n \"47\": [1.25003, 1.75, 0, 0, 1.27778],\n \"91\": [1.25003, 1.75, 0, 0, 0.58334],\n \"92\": [1.25003, 1.75, 0, 0, 1.27778],\n \"93\": [1.25003, 1.75, 0, 0, 0.58334],\n \"123\": [1.25003, 1.75, 0, 0, 0.80556],\n \"125\": [1.25003, 1.75, 0, 0, 0.80556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.825, 0, 0, 1.8889],\n \"732\": [0, 0.825, 0, 0, 1.8889],\n \"770\": [0, 0.825, 0, 0, 1.8889],\n \"771\": [0, 0.825, 0, 0, 1.8889],\n \"8730\": [1.25003, 1.75, 0, 0, 1.0],\n \"8968\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8969\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8970\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8971\": [1.25003, 1.75, 0, 0, 0.63889],\n \"9115\": [0.64502, 1.155, 0, 0, 0.875],\n \"9116\": [1e-05, 0.6, 0, 0, 0.875],\n \"9117\": [0.64502, 1.155, 0, 0, 0.875],\n \"9118\": [0.64502, 1.155, 0, 0, 0.875],\n \"9119\": [1e-05, 0.6, 0, 0, 0.875],\n \"9120\": [0.64502, 1.155, 0, 0, 0.875],\n \"9121\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9122\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9123\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9124\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9125\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9126\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9127\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9128\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9129\": [0.90001, 0, 0, 0, 0.88889],\n \"9130\": [0, 0.3, 0, 0, 0.88889],\n \"9131\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9132\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9133\": [0.90001, 0, 0, 0, 0.88889],\n \"9143\": [0.88502, 0.915, 0, 0, 1.05556],\n \"10216\": [1.25003, 1.75, 0, 0, 0.80556],\n \"10217\": [1.25003, 1.75, 0, 0, 0.80556],\n \"57344\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57345\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57680\": [0, 0.12, 0, 0, 0.45],\n \"57681\": [0, 0.12, 0, 0, 0.45],\n \"57682\": [0, 0.12, 0, 0, 0.45],\n \"57683\": [0, 0.12, 0, 0, 0.45]\n },\n \"Typewriter-Regular\": {\n \"32\": [0, 0, 0, 0, 0.525],\n \"33\": [0, 0.61111, 0, 0, 0.525],\n \"34\": [0, 0.61111, 0, 0, 0.525],\n \"35\": [0, 0.61111, 0, 0, 0.525],\n \"36\": [0.08333, 0.69444, 0, 0, 0.525],\n \"37\": [0.08333, 0.69444, 0, 0, 0.525],\n \"38\": [0, 0.61111, 0, 0, 0.525],\n \"39\": [0, 0.61111, 0, 0, 0.525],\n \"40\": [0.08333, 0.69444, 0, 0, 0.525],\n \"41\": [0.08333, 0.69444, 0, 0, 0.525],\n \"42\": [0, 0.52083, 0, 0, 0.525],\n \"43\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"44\": [0.13889, 0.125, 0, 0, 0.525],\n \"45\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"46\": [0, 0.125, 0, 0, 0.525],\n \"47\": [0.08333, 0.69444, 0, 0, 0.525],\n \"48\": [0, 0.61111, 0, 0, 0.525],\n \"49\": [0, 0.61111, 0, 0, 0.525],\n \"50\": [0, 0.61111, 0, 0, 0.525],\n \"51\": [0, 0.61111, 0, 0, 0.525],\n \"52\": [0, 0.61111, 0, 0, 0.525],\n \"53\": [0, 0.61111, 0, 0, 0.525],\n \"54\": [0, 0.61111, 0, 0, 0.525],\n \"55\": [0, 0.61111, 0, 0, 0.525],\n \"56\": [0, 0.61111, 0, 0, 0.525],\n \"57\": [0, 0.61111, 0, 0, 0.525],\n \"58\": [0, 0.43056, 0, 0, 0.525],\n \"59\": [0.13889, 0.43056, 0, 0, 0.525],\n \"60\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"61\": [-0.19549, 0.41562, 0, 0, 0.525],\n \"62\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"63\": [0, 0.61111, 0, 0, 0.525],\n \"64\": [0, 0.61111, 0, 0, 0.525],\n \"65\": [0, 0.61111, 0, 0, 0.525],\n \"66\": [0, 0.61111, 0, 0, 0.525],\n \"67\": [0, 0.61111, 0, 0, 0.525],\n \"68\": [0, 0.61111, 0, 0, 0.525],\n \"69\": [0, 0.61111, 0, 0, 0.525],\n \"70\": [0, 0.61111, 0, 0, 0.525],\n \"71\": [0, 0.61111, 0, 0, 0.525],\n \"72\": [0, 0.61111, 0, 0, 0.525],\n \"73\": [0, 0.61111, 0, 0, 0.525],\n \"74\": [0, 0.61111, 0, 0, 0.525],\n \"75\": [0, 0.61111, 0, 0, 0.525],\n \"76\": [0, 0.61111, 0, 0, 0.525],\n \"77\": [0, 0.61111, 0, 0, 0.525],\n \"78\": [0, 0.61111, 0, 0, 0.525],\n \"79\": [0, 0.61111, 0, 0, 0.525],\n \"80\": [0, 0.61111, 0, 0, 0.525],\n \"81\": [0.13889, 0.61111, 0, 0, 0.525],\n \"82\": [0, 0.61111, 0, 0, 0.525],\n \"83\": [0, 0.61111, 0, 0, 0.525],\n \"84\": [0, 0.61111, 0, 0, 0.525],\n \"85\": [0, 0.61111, 0, 0, 0.525],\n \"86\": [0, 0.61111, 0, 0, 0.525],\n \"87\": [0, 0.61111, 0, 0, 0.525],\n \"88\": [0, 0.61111, 0, 0, 0.525],\n \"89\": [0, 0.61111, 0, 0, 0.525],\n \"90\": [0, 0.61111, 0, 0, 0.525],\n \"91\": [0.08333, 0.69444, 0, 0, 0.525],\n \"92\": [0.08333, 0.69444, 0, 0, 0.525],\n \"93\": [0.08333, 0.69444, 0, 0, 0.525],\n \"94\": [0, 0.61111, 0, 0, 0.525],\n \"95\": [0.09514, 0, 0, 0, 0.525],\n \"96\": [0, 0.61111, 0, 0, 0.525],\n \"97\": [0, 0.43056, 0, 0, 0.525],\n \"98\": [0, 0.61111, 0, 0, 0.525],\n \"99\": [0, 0.43056, 0, 0, 0.525],\n \"100\": [0, 0.61111, 0, 0, 0.525],\n \"101\": [0, 0.43056, 0, 0, 0.525],\n \"102\": [0, 0.61111, 0, 0, 0.525],\n \"103\": [0.22222, 0.43056, 0, 0, 0.525],\n \"104\": [0, 0.61111, 0, 0, 0.525],\n \"105\": [0, 0.61111, 0, 0, 0.525],\n \"106\": [0.22222, 0.61111, 0, 0, 0.525],\n \"107\": [0, 0.61111, 0, 0, 0.525],\n \"108\": [0, 0.61111, 0, 0, 0.525],\n \"109\": [0, 0.43056, 0, 0, 0.525],\n \"110\": [0, 0.43056, 0, 0, 0.525],\n \"111\": [0, 0.43056, 0, 0, 0.525],\n \"112\": [0.22222, 0.43056, 0, 0, 0.525],\n \"113\": [0.22222, 0.43056, 0, 0, 0.525],\n \"114\": [0, 0.43056, 0, 0, 0.525],\n \"115\": [0, 0.43056, 0, 0, 0.525],\n \"116\": [0, 0.55358, 0, 0, 0.525],\n \"117\": [0, 0.43056, 0, 0, 0.525],\n \"118\": [0, 0.43056, 0, 0, 0.525],\n \"119\": [0, 0.43056, 0, 0, 0.525],\n \"120\": [0, 0.43056, 0, 0, 0.525],\n \"121\": [0.22222, 0.43056, 0, 0, 0.525],\n \"122\": [0, 0.43056, 0, 0, 0.525],\n \"123\": [0.08333, 0.69444, 0, 0, 0.525],\n \"124\": [0.08333, 0.69444, 0, 0, 0.525],\n \"125\": [0.08333, 0.69444, 0, 0, 0.525],\n \"126\": [0, 0.61111, 0, 0, 0.525],\n \"127\": [0, 0.61111, 0, 0, 0.525],\n \"160\": [0, 0, 0, 0, 0.525],\n \"176\": [0, 0.61111, 0, 0, 0.525],\n \"184\": [0.19445, 0, 0, 0, 0.525],\n \"305\": [0, 0.43056, 0, 0, 0.525],\n \"567\": [0.22222, 0.43056, 0, 0, 0.525],\n \"711\": [0, 0.56597, 0, 0, 0.525],\n \"713\": [0, 0.56555, 0, 0, 0.525],\n \"714\": [0, 0.61111, 0, 0, 0.525],\n \"715\": [0, 0.61111, 0, 0, 0.525],\n \"728\": [0, 0.61111, 0, 0, 0.525],\n \"730\": [0, 0.61111, 0, 0, 0.525],\n \"770\": [0, 0.61111, 0, 0, 0.525],\n \"771\": [0, 0.61111, 0, 0, 0.525],\n \"776\": [0, 0.61111, 0, 0, 0.525],\n \"915\": [0, 0.61111, 0, 0, 0.525],\n \"916\": [0, 0.61111, 0, 0, 0.525],\n \"920\": [0, 0.61111, 0, 0, 0.525],\n \"923\": [0, 0.61111, 0, 0, 0.525],\n \"926\": [0, 0.61111, 0, 0, 0.525],\n \"928\": [0, 0.61111, 0, 0, 0.525],\n \"931\": [0, 0.61111, 0, 0, 0.525],\n \"933\": [0, 0.61111, 0, 0, 0.525],\n \"934\": [0, 0.61111, 0, 0, 0.525],\n \"936\": [0, 0.61111, 0, 0, 0.525],\n \"937\": [0, 0.61111, 0, 0, 0.525],\n \"8216\": [0, 0.61111, 0, 0, 0.525],\n \"8217\": [0, 0.61111, 0, 0, 0.525],\n \"8242\": [0, 0.61111, 0, 0, 0.525],\n \"9251\": [0.11111, 0.21944, 0, 0, 0.525]\n }\n};\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n// In TeX, there are actually three sets of dimensions, one for each of\n// textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4:\n// 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt). These are\n// provided in the arrays below, in that order.\n//\n// The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respectively.\n// This was determined by running the following script:\n//\n// latex -interaction=nonstopmode \\\n// '\\documentclass{article}\\usepackage{amsmath}\\begin{document}' \\\n// '$a$ \\expandafter\\show\\the\\textfont2' \\\n// '\\expandafter\\show\\the\\scriptfont2' \\\n// '\\expandafter\\show\\the\\scriptscriptfont2' \\\n// '\\stop'\n//\n// The metrics themselves were retrieved using the following commands:\n//\n// tftopl cmsy10\n// tftopl cmsy7\n// tftopl cmsy5\n//\n// The output of each of these commands is quite lengthy. The only part we\n// care about is the FONTDIMEN section. Each value is measured in EMs.\nvar sigmasAndXis = {\n slant: [0.250, 0.250, 0.250],\n // sigma1\n space: [0.000, 0.000, 0.000],\n // sigma2\n stretch: [0.000, 0.000, 0.000],\n // sigma3\n shrink: [0.000, 0.000, 0.000],\n // sigma4\n xHeight: [0.431, 0.431, 0.431],\n // sigma5\n quad: [1.000, 1.171, 1.472],\n // sigma6\n extraSpace: [0.000, 0.000, 0.000],\n // sigma7\n num1: [0.677, 0.732, 0.925],\n // sigma8\n num2: [0.394, 0.384, 0.387],\n // sigma9\n num3: [0.444, 0.471, 0.504],\n // sigma10\n denom1: [0.686, 0.752, 1.025],\n // sigma11\n denom2: [0.345, 0.344, 0.532],\n // sigma12\n sup1: [0.413, 0.503, 0.504],\n // sigma13\n sup2: [0.363, 0.431, 0.404],\n // sigma14\n sup3: [0.289, 0.286, 0.294],\n // sigma15\n sub1: [0.150, 0.143, 0.200],\n // sigma16\n sub2: [0.247, 0.286, 0.400],\n // sigma17\n supDrop: [0.386, 0.353, 0.494],\n // sigma18\n subDrop: [0.050, 0.071, 0.100],\n // sigma19\n delim1: [2.390, 1.700, 1.980],\n // sigma20\n delim2: [1.010, 1.157, 1.420],\n // sigma21\n axisHeight: [0.250, 0.250, 0.250],\n // sigma22\n // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;\n // they correspond to the font parameters of the extension fonts (family 3).\n // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to\n // match cmex7, we'd use cmex7.tfm values for script and scriptscript\n // values.\n defaultRuleThickness: [0.04, 0.049, 0.049],\n // xi8; cmex7: 0.049\n bigOpSpacing1: [0.111, 0.111, 0.111],\n // xi9\n bigOpSpacing2: [0.166, 0.166, 0.166],\n // xi10\n bigOpSpacing3: [0.2, 0.2, 0.2],\n // xi11\n bigOpSpacing4: [0.6, 0.611, 0.611],\n // xi12; cmex7: 0.611\n bigOpSpacing5: [0.1, 0.143, 0.143],\n // xi13; cmex7: 0.143\n // The \\sqrt rule width is taken from the height of the surd character.\n // Since we use the same font at all sizes, this thickness doesn't scale.\n sqrtRuleThickness: [0.04, 0.04, 0.04],\n // This value determines how large a pt is, for metrics which are defined\n // in terms of pts.\n // This value is also used in katex.less; if you change it make sure the\n // values match.\n ptPerEm: [10.0, 10.0, 10.0],\n // The space between adjacent `|` columns in an array definition. From\n // `\\showthe\\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.\n doubleRuleSep: [0.2, 0.2, 0.2],\n // The width of separator lines in {array} environments. From\n // `\\showthe\\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm.\n arrayRuleWidth: [0.04, 0.04, 0.04],\n // Two values from LaTeX source2e:\n fboxsep: [0.3, 0.3, 0.3],\n // 3 pt / ptPerEm\n fboxrule: [0.04, 0.04, 0.04] // 0.4 pt / ptPerEm\n\n}; // This map contains a mapping from font name and character code to character\n// should have Latin-1 and Cyrillic characters, but may not depending on the\n// operating system. The metrics do not account for extra height from the\n// accents. In the case of Cyrillic characters which have both ascenders and\n// descenders we prefer approximations with ascenders, primarily to prevent\n// the fraction bar or root line from intersecting the glyph.\n// TODO(kevinb) allow union of multiple glyph metrics for better accuracy.\n\nvar extraCharacterMap = {\n // Latin-1\n 'Ã…': 'A',\n 'Ã': 'D',\n 'Þ': 'o',\n 'Ã¥': 'a',\n 'ð': 'd',\n 'þ': 'o',\n // Cyrillic\n 'Ð': 'A',\n 'Б': 'B',\n 'Ð’': 'B',\n 'Г': 'F',\n 'Д': 'A',\n 'Е': 'E',\n 'Ж': 'K',\n 'З': '3',\n 'И': 'N',\n 'Й': 'N',\n 'К': 'K',\n 'Л': 'N',\n 'Ðœ': 'M',\n 'Ð': 'H',\n 'О': 'O',\n 'П': 'N',\n 'Ð ': 'P',\n 'С': 'C',\n 'Т': 'T',\n 'У': 'y',\n 'Ф': 'O',\n 'Ð¥': 'X',\n 'Ц': 'U',\n 'Ч': 'h',\n 'Ш': 'W',\n 'Щ': 'W',\n 'Ъ': 'B',\n 'Ы': 'X',\n 'Ь': 'B',\n 'Ð': '3',\n 'Ю': 'X',\n 'Я': 'R',\n 'а': 'a',\n 'б': 'b',\n 'в': 'a',\n 'г': 'r',\n 'д': 'y',\n 'е': 'e',\n 'ж': 'm',\n 'з': 'e',\n 'и': 'n',\n 'й': 'n',\n 'к': 'n',\n 'л': 'n',\n 'м': 'm',\n 'н': 'n',\n 'о': 'o',\n 'п': 'n',\n 'Ñ€': 'p',\n 'Ñ': 'c',\n 'Ñ‚': 'o',\n 'у': 'y',\n 'Ñ„': 'b',\n 'Ñ…': 'x',\n 'ц': 'n',\n 'ч': 'n',\n 'ш': 'w',\n 'щ': 'w',\n 'ÑŠ': 'a',\n 'Ñ‹': 'm',\n 'ÑŒ': 'a',\n 'Ñ': 'e',\n 'ÑŽ': 'm',\n 'Ñ': 'r'\n};\n\n/**\n * This function adds new font metrics to default metricMap\n * It can also override existing metrics\n */\nfunction setFontMetrics(fontName, metrics) {\n fontMetricsData[fontName] = metrics;\n}\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a font.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\n\nfunction getCharacterMetrics(character, font, mode) {\n if (!fontMetricsData[font]) {\n throw new Error(\"Font metrics not found for font: \" + font + \".\");\n }\n\n var ch = character.charCodeAt(0);\n var metrics = fontMetricsData[font][ch];\n\n if (!metrics && character[0] in extraCharacterMap) {\n ch = extraCharacterMap[character[0]].charCodeAt(0);\n metrics = fontMetricsData[font][ch];\n }\n\n if (!metrics && mode === 'text') {\n // We don't typically have font metrics for Asian scripts.\n // But since we support them in text mode, we need to return\n // some sort of metrics.\n // So if the character is in a script we support but we\n // don't have metrics for it, just use the metrics for\n // the Latin capital letter M. This is close enough because\n // we (currently) only care about the height of the glyph\n // not its width.\n if (supportedCodepoint(ch)) {\n metrics = fontMetricsData[font][77]; // 77 is the charcode for 'M'\n }\n }\n\n if (metrics) {\n return {\n depth: metrics[0],\n height: metrics[1],\n italic: metrics[2],\n skew: metrics[3],\n width: metrics[4]\n };\n }\n}\nvar fontMetricsBySizeIndex = {};\n/**\n * Get the font metrics for a given size.\n */\n\nfunction getGlobalMetrics(size) {\n var sizeIndex;\n\n if (size >= 5) {\n sizeIndex = 0;\n } else if (size >= 3) {\n sizeIndex = 1;\n } else {\n sizeIndex = 2;\n }\n\n if (!fontMetricsBySizeIndex[sizeIndex]) {\n var metrics = fontMetricsBySizeIndex[sizeIndex] = {\n cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18\n };\n\n for (var key in sigmasAndXis) {\n if (sigmasAndXis.hasOwnProperty(key)) {\n metrics[key] = sigmasAndXis[key][sizeIndex];\n }\n }\n }\n\n return fontMetricsBySizeIndex[sizeIndex];\n}\n\n/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\nvar sizeStyleMap = [// Each element contains [textsize, scriptsize, scriptscriptsize].\n// The size mappings are taken from TeX with \\normalsize=10pt.\n[1, 1, 1], // size1: [5, 5, 5] \\tiny\n[2, 1, 1], // size2: [6, 5, 5]\n[3, 1, 1], // size3: [7, 5, 5] \\scriptsize\n[4, 2, 1], // size4: [8, 6, 5] \\footnotesize\n[5, 2, 1], // size5: [9, 6, 5] \\small\n[6, 3, 1], // size6: [10, 7, 5] \\normalsize\n[7, 4, 2], // size7: [12, 8, 6] \\large\n[8, 6, 3], // size8: [14.4, 10, 7] \\Large\n[9, 7, 6], // size9: [17.28, 12, 10] \\LARGE\n[10, 8, 7], // size10: [20.74, 14.4, 12] \\huge\n[11, 10, 9] // size11: [24.88, 20.74, 17.28] \\HUGE\n];\nvar sizeMultipliers = [// fontMetrics.js:getGlobalMetrics also uses size indexes, so if\n// you change size indexes, change that function.\n0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488];\n\nvar sizeAtStyle = function sizeAtStyle(size, style) {\n return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1];\n}; // In these types, \"\" (empty string) means \"no change\".\n\n\n/**\n * This is the main options class. It contains the current style, size, color,\n * and font.\n *\n * Options objects should not be modified. To create a new Options with\n * different properties, call a `.having*` method.\n */\nclass Options {\n // A font family applies to a group of fonts (i.e. SansSerif), while a font\n // represents a specific font (i.e. SansSerif Bold).\n // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm\n\n /**\n * The base size index.\n */\n constructor(data) {\n this.style = void 0;\n this.color = void 0;\n this.size = void 0;\n this.textSize = void 0;\n this.phantom = void 0;\n this.font = void 0;\n this.fontFamily = void 0;\n this.fontWeight = void 0;\n this.fontShape = void 0;\n this.sizeMultiplier = void 0;\n this.maxSize = void 0;\n this.minRuleThickness = void 0;\n this._fontMetrics = void 0;\n this.style = data.style;\n this.color = data.color;\n this.size = data.size || Options.BASESIZE;\n this.textSize = data.textSize || this.size;\n this.phantom = !!data.phantom;\n this.font = data.font || \"\";\n this.fontFamily = data.fontFamily || \"\";\n this.fontWeight = data.fontWeight || '';\n this.fontShape = data.fontShape || '';\n this.sizeMultiplier = sizeMultipliers[this.size - 1];\n this.maxSize = data.maxSize;\n this.minRuleThickness = data.minRuleThickness;\n this._fontMetrics = undefined;\n }\n /**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\n\n\n extend(extension) {\n var data = {\n style: this.style,\n size: this.size,\n textSize: this.textSize,\n color: this.color,\n phantom: this.phantom,\n font: this.font,\n fontFamily: this.fontFamily,\n fontWeight: this.fontWeight,\n fontShape: this.fontShape,\n maxSize: this.maxSize,\n minRuleThickness: this.minRuleThickness\n };\n\n for (var key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n }\n /**\n * Return an options object with the given style. If `this.style === style`,\n * returns `this`.\n */\n\n\n havingStyle(style) {\n if (this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: sizeAtStyle(this.textSize, style)\n });\n }\n }\n /**\n * Return an options object with a cramped version of the current style. If\n * the current style is cramped, returns `this`.\n */\n\n\n havingCrampedStyle() {\n return this.havingStyle(this.style.cramp());\n }\n /**\n * Return an options object with the given size and in at least `\\textstyle`.\n * Returns `this` if appropriate.\n */\n\n\n havingSize(size) {\n if (this.size === size && this.textSize === size) {\n return this;\n } else {\n return this.extend({\n style: this.style.text(),\n size: size,\n textSize: size,\n sizeMultiplier: sizeMultipliers[size - 1]\n });\n }\n }\n /**\n * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,\n * changes to at least `\\textstyle`.\n */\n\n\n havingBaseStyle(style) {\n style = style || this.style.text();\n var wantSize = sizeAtStyle(Options.BASESIZE, style);\n\n if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: wantSize\n });\n }\n }\n /**\n * Remove the effect of sizing changes such as \\Huge.\n * Keep the effect of the current style, such as \\scriptstyle.\n */\n\n\n havingBaseSizing() {\n var size;\n\n switch (this.style.id) {\n case 4:\n case 5:\n size = 3; // normalsize in scriptstyle\n\n break;\n\n case 6:\n case 7:\n size = 1; // normalsize in scriptscriptstyle\n\n break;\n\n default:\n size = 6;\n // normalsize in textstyle or displaystyle\n }\n\n return this.extend({\n style: this.style.text(),\n size: size\n });\n }\n /**\n * Create a new options object with the given color.\n */\n\n\n withColor(color) {\n return this.extend({\n color: color\n });\n }\n /**\n * Create a new options object with \"phantom\" set to true.\n */\n\n\n withPhantom() {\n return this.extend({\n phantom: true\n });\n }\n /**\n * Creates a new options object with the given math font or old text font.\n * @type {[type]}\n */\n\n\n withFont(font) {\n return this.extend({\n font\n });\n }\n /**\n * Create a new options objects with the given fontFamily.\n */\n\n\n withTextFontFamily(fontFamily) {\n return this.extend({\n fontFamily,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n\n\n withTextFontWeight(fontWeight) {\n return this.extend({\n fontWeight,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n\n\n withTextFontShape(fontShape) {\n return this.extend({\n fontShape,\n font: \"\"\n });\n }\n /**\n * Return the CSS sizing classes required to switch from enclosing options\n * `oldOptions` to `this`. Returns an array of classes.\n */\n\n\n sizingClasses(oldOptions) {\n if (oldOptions.size !== this.size) {\n return [\"sizing\", \"reset-size\" + oldOptions.size, \"size\" + this.size];\n } else {\n return [];\n }\n }\n /**\n * Return the CSS sizing classes required to switch to the base size. Like\n * `this.havingSize(BASESIZE).sizingClasses(this)`.\n */\n\n\n baseSizingClasses() {\n if (this.size !== Options.BASESIZE) {\n return [\"sizing\", \"reset-size\" + this.size, \"size\" + Options.BASESIZE];\n } else {\n return [];\n }\n }\n /**\n * Return the font metrics for this size.\n */\n\n\n fontMetrics() {\n if (!this._fontMetrics) {\n this._fontMetrics = getGlobalMetrics(this.size);\n }\n\n return this._fontMetrics;\n }\n /**\n * Gets the CSS color of the current options object\n */\n\n\n getColor() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return this.color;\n }\n }\n\n}\n\nOptions.BASESIZE = 6;\n\n/**\n * This file does conversion between units. In particular, it provides\n * calculateSize to convert other units into ems.\n */\n// Thus, multiplying a length by this number converts the length from units\n// into pts. Dividing the result by ptPerEm gives the number of ems\n// *assuming* a font size of ptPerEm (normal size, normal style).\n\nvar ptPerUnit = {\n // https://en.wikibooks.org/wiki/LaTeX/Lengths and\n // https://tex.stackexchange.com/a/8263\n \"pt\": 1,\n // TeX point\n \"mm\": 7227 / 2540,\n // millimeter\n \"cm\": 7227 / 254,\n // centimeter\n \"in\": 72.27,\n // inch\n \"bp\": 803 / 800,\n // big (PostScript) points\n \"pc\": 12,\n // pica\n \"dd\": 1238 / 1157,\n // didot\n \"cc\": 14856 / 1157,\n // cicero (12 didot)\n \"nd\": 685 / 642,\n // new didot\n \"nc\": 1370 / 107,\n // new cicero (12 new didot)\n \"sp\": 1 / 65536,\n // scaled point (TeX's internal smallest unit)\n // https://tex.stackexchange.com/a/41371\n \"px\": 803 / 800 // \\pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX\n\n}; // Dictionary of relative units, for fast validity testing.\n\nvar relativeUnit = {\n \"ex\": true,\n \"em\": true,\n \"mu\": true\n};\n\n/**\n * Determine whether the specified unit (either a string defining the unit\n * or a \"size\" parse node containing a unit field) is valid.\n */\nvar validUnit = function validUnit(unit) {\n if (typeof unit !== \"string\") {\n unit = unit.unit;\n }\n\n return unit in ptPerUnit || unit in relativeUnit || unit === \"ex\";\n};\n/*\n * Convert a \"size\" parse node (with numeric \"number\" and string \"unit\" fields,\n * as parsed by functions.js argType \"size\") into a CSS em value for the\n * current style/scale. `options` gives the current options.\n */\n\nvar calculateSize = function calculateSize(sizeValue, options) {\n var scale;\n\n if (sizeValue.unit in ptPerUnit) {\n // Absolute units\n scale = ptPerUnit[sizeValue.unit] // Convert unit to pt\n / options.fontMetrics().ptPerEm // Convert pt to CSS em\n / options.sizeMultiplier; // Unscale to make absolute units\n } else if (sizeValue.unit === \"mu\") {\n // `mu` units scale with scriptstyle/scriptscriptstyle.\n scale = options.fontMetrics().cssEmPerMu;\n } else {\n // Other relative units always refer to the *textstyle* font\n // in the current size.\n var unitOptions;\n\n if (options.style.isTight()) {\n // isTight() means current style is script/scriptscript.\n unitOptions = options.havingStyle(options.style.text());\n } else {\n unitOptions = options;\n } // TODO: In TeX these units are relative to the quad of the current\n // *text* font, e.g. cmr10. KaTeX instead uses values from the\n // comparably-sized *Computer Modern symbol* font. At 10pt, these\n // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641;\n // cmr5=1.361133, cmsy5=1.472241. Consider $\\scriptsize a\\kern1emb$.\n // TeX \\showlists shows a kern of 1.13889 * fontsize;\n // KaTeX shows a kern of 1.171 * fontsize.\n\n\n if (sizeValue.unit === \"ex\") {\n scale = unitOptions.fontMetrics().xHeight;\n } else if (sizeValue.unit === \"em\") {\n scale = unitOptions.fontMetrics().quad;\n } else {\n throw new ParseError(\"Invalid unit: '\" + sizeValue.unit + \"'\");\n }\n\n if (unitOptions !== options) {\n scale *= unitOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n return Math.min(sizeValue.number * scale, options.maxSize);\n};\n/**\n * Round `n` to 4 decimal places, or to the nearest 1/10,000th em. See\n * https://github.com/KaTeX/KaTeX/pull/2460.\n */\n\nvar makeEm = function makeEm(n) {\n return +n.toFixed(4) + \"em\";\n};\n\n/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n *\n * TODO: refactor `span` and `anchor` into common superclass when\n * target environments support class inheritance\n */\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove empty classes.\n */\nvar createClass = function createClass(classes) {\n return classes.filter(cls => cls).join(\" \");\n};\n\nvar initNode = function initNode(classes, options, style) {\n this.classes = classes || [];\n this.attributes = {};\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = style || {};\n\n if (options) {\n if (options.style.isTight()) {\n this.classes.push(\"mtight\");\n }\n\n var color = options.getColor();\n\n if (color) {\n this.style.color = color;\n }\n }\n};\n/**\n * Convert into an HTML node\n */\n\n\nvar toNode = function toNode(tagName) {\n var node = document.createElement(tagName); // Apply the class\n\n node.className = createClass(this.classes); // Apply inline styles\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe Flow doesn't seem to understand span.style's type.\n node.style[style] = this.style[style];\n }\n } // Apply attributes\n\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n } // Append the children, also as HTML nodes\n\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n};\n/**\n * Convert into an HTML markup string\n */\n\n\nvar toMarkup = function toMarkup(tagName) {\n var markup = \"<\" + tagName; // Add the class\n\n if (this.classes.length) {\n markup += \" class=\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n var styles = \"\"; // Add the styles, after hyphenation\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n } // Add the attributes\n\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n markup += \" \" + attr + \"=\\\"\" + utils.escape(this.attributes[attr]) + \"\\\"\";\n }\n }\n\n markup += \">\"; // Add the markup of the children, also as markup\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</\" + tagName + \">\";\n return markup;\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n// This type does not include all CSS properties. Additional properties should\n// be added as needed.\n\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n *\n * Represents two types with different uses: SvgSpan to wrap an SVG and DomSpan\n * otherwise. This typesafety is important when HTML builders access a span's\n * children.\n */\nclass Span {\n constructor(classes, children, options, style) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options, style);\n this.children = children || [];\n }\n /**\n * Sets an arbitrary attribute on the span. Warning: use this wisely. Not\n * all browsers support attributes the same, and having too many custom\n * attributes is probably bad.\n */\n\n\n setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n return toNode.call(this, \"span\");\n }\n\n toMarkup() {\n return toMarkup.call(this, \"span\");\n }\n\n}\n/**\n * This node represents an anchor (<a>) element with a hyperlink. See `span`\n * for further details.\n */\n\nclass Anchor {\n constructor(href, classes, children, options) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options);\n this.children = children || [];\n this.setAttribute('href', href);\n }\n\n setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n return toNode.call(this, \"a\");\n }\n\n toMarkup() {\n return toMarkup.call(this, \"a\");\n }\n\n}\n/**\n * This node represents an image embed (<img>) element.\n */\n\nclass Img {\n constructor(src, alt, style) {\n this.src = void 0;\n this.alt = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.alt = alt;\n this.src = src;\n this.classes = [\"mord\"];\n this.style = style;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n var node = document.createElement(\"img\");\n node.src = this.src;\n node.alt = this.alt;\n node.className = \"mord\"; // Apply inline styles\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe\n node.style[style] = this.style[style];\n }\n }\n\n return node;\n }\n\n toMarkup() {\n var markup = \"<img src=\\\"\" + utils.escape(this.src) + \"\\\"\" + (\" alt=\\\"\" + utils.escape(this.alt) + \"\\\"\"); // Add the styles, after hyphenation\n\n var styles = \"\";\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n markup += \"'/>\";\n return markup;\n }\n\n}\nvar iCombinations = {\n 'î': '\\u0131\\u0302',\n 'ï': '\\u0131\\u0308',\n 'Ã': '\\u0131\\u0301',\n // 'Ä«': '\\u0131\\u0304', // enable when we add Extended Latin\n 'ì': '\\u0131\\u0300'\n};\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\n\nclass SymbolNode {\n constructor(text, height, depth, italic, skew, width, classes, style) {\n this.text = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.italic = void 0;\n this.skew = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.classes = void 0;\n this.style = void 0;\n this.text = text;\n this.height = height || 0;\n this.depth = depth || 0;\n this.italic = italic || 0;\n this.skew = skew || 0;\n this.width = width || 0;\n this.classes = classes || [];\n this.style = style || {};\n this.maxFontSize = 0; // Mark text from non-Latin scripts with specific classes so that we\n // can specify which fonts to use. This allows us to render these\n // characters with a serif font in situations where the browser would\n // either default to a sans serif or render a placeholder character.\n // We use CSS class names like cjk_fallback, hangul_fallback and\n // brahmic_fallback. See ./unicodeScripts.js for the set of possible\n // script names\n\n var script = scriptFromCodepoint(this.text.charCodeAt(0));\n\n if (script) {\n this.classes.push(script + \"_fallback\");\n }\n\n if (/[îïÃì]/.test(this.text)) {\n // add Ä« when we add Extended Latin\n this.text = iCombinations[this.text];\n }\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /**\n * Creates a text node or span from a symbol node. Note that a span is only\n * created if it is needed.\n */\n\n\n toNode() {\n var node = document.createTextNode(this.text);\n var span = null;\n\n if (this.italic > 0) {\n span = document.createElement(\"span\");\n span.style.marginRight = makeEm(this.italic);\n }\n\n if (this.classes.length > 0) {\n span = span || document.createElement(\"span\");\n span.className = createClass(this.classes);\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n span = span || document.createElement(\"span\"); // $FlowFixMe Flow doesn't seem to understand span.style's type.\n\n span.style[style] = this.style[style];\n }\n }\n\n if (span) {\n span.appendChild(node);\n return span;\n } else {\n return node;\n }\n }\n /**\n * Creates markup for a symbol node.\n */\n\n\n toMarkup() {\n // TODO(alpert): More duplication than I'd like from\n // span.prototype.toMarkup and symbolNode.prototype.toNode...\n var needsSpan = false;\n var markup = \"<span\";\n\n if (this.classes.length) {\n needsSpan = true;\n markup += \" class=\\\"\";\n markup += utils.escape(createClass(this.classes));\n markup += \"\\\"\";\n }\n\n var styles = \"\";\n\n if (this.italic > 0) {\n styles += \"margin-right:\" + this.italic + \"em;\";\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n needsSpan = true;\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n var escaped = utils.escape(this.text);\n\n if (needsSpan) {\n markup += \">\";\n markup += escaped;\n markup += \"</span>\";\n return markup;\n } else {\n return escaped;\n }\n }\n\n}\n/**\n * SVG nodes are used to render stretchy wide elements.\n */\n\nclass SvgNode {\n constructor(children, attributes) {\n this.children = void 0;\n this.attributes = void 0;\n this.children = children || [];\n this.attributes = attributes || {};\n }\n\n toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"svg\"); // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n }\n\n toMarkup() {\n var markup = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\"\"; // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\" + utils.escape(this.attributes[attr]) + \"\\\"\";\n }\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</svg>\";\n return markup;\n }\n\n}\nclass PathNode {\n constructor(pathName, alternate) {\n this.pathName = void 0;\n this.alternate = void 0;\n this.pathName = pathName;\n this.alternate = alternate; // Used only for \\sqrt, \\phase, & tall delims\n }\n\n toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"path\");\n\n if (this.alternate) {\n node.setAttribute(\"d\", this.alternate);\n } else {\n node.setAttribute(\"d\", path[this.pathName]);\n }\n\n return node;\n }\n\n toMarkup() {\n if (this.alternate) {\n return \"<path d=\\\"\" + utils.escape(this.alternate) + \"\\\"/>\";\n } else {\n return \"<path d=\\\"\" + utils.escape(path[this.pathName]) + \"\\\"/>\";\n }\n }\n\n}\nclass LineNode {\n constructor(attributes) {\n this.attributes = void 0;\n this.attributes = attributes || {};\n }\n\n toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"line\"); // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n return node;\n }\n\n toMarkup() {\n var markup = \"<line\";\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\" + utils.escape(this.attributes[attr]) + \"\\\"\";\n }\n }\n\n markup += \"/>\";\n return markup;\n }\n\n}\nfunction assertSymbolDomNode(group) {\n if (group instanceof SymbolNode) {\n return group;\n } else {\n throw new Error(\"Expected symbolNode but got \" + String(group) + \".\");\n }\n}\nfunction assertSpan(group) {\n if (group instanceof Span) {\n return group;\n } else {\n throw new Error(\"Expected span<HtmlDomNode> but got \" + String(group) + \".\");\n }\n}\n\n/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n \"textord\", \"mathord\", etc).\n See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n * replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n * character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n// Some of these have a \"-token\" suffix since these are also used as `ParseNode`\n// types for raw text tokens, and we want to avoid conflicts with higher-level\n// `ParseNode` types. These `ParseNode`s are constructed within `Parser` by\n// looking up the `symbols` map.\nvar ATOMS = {\n \"bin\": 1,\n \"close\": 1,\n \"inner\": 1,\n \"open\": 1,\n \"punct\": 1,\n \"rel\": 1\n};\nvar NON_ATOMS = {\n \"accent-token\": 1,\n \"mathord\": 1,\n \"op-token\": 1,\n \"spacing\": 1,\n \"textord\": 1\n};\nvar symbols = {\n \"math\": {},\n \"text\": {}\n};\n/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */\n\nfunction defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) {\n symbols[mode][name] = {\n font,\n group,\n replace\n };\n\n if (acceptUnicodeChar && replace) {\n symbols[mode][replace] = symbols[mode][name];\n }\n} // Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n// modes:\n\nvar math = \"math\";\nvar text = \"text\"; // fonts:\n\nvar main = \"main\";\nvar ams = \"ams\"; // groups:\n\nvar accent = \"accent-token\";\nvar bin = \"bin\";\nvar close = \"close\";\nvar inner = \"inner\";\nvar mathord = \"mathord\";\nvar op = \"op-token\";\nvar open = \"open\";\nvar punct = \"punct\";\nvar rel = \"rel\";\nvar spacing = \"spacing\";\nvar textord = \"textord\"; // Now comes the symbol table\n// Relation Symbols\n\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\", true);\ndefineSymbol(math, main, rel, \"\\u227a\", \"\\\\prec\", true);\ndefineSymbol(math, main, rel, \"\\u227b\", \"\\\\succ\", true);\ndefineSymbol(math, main, rel, \"\\u223c\", \"\\\\sim\", true);\ndefineSymbol(math, main, rel, \"\\u22a5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2aaf\", \"\\\\preceq\", true);\ndefineSymbol(math, main, rel, \"\\u2ab0\", \"\\\\succeq\", true);\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\", true);\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\", true);\ndefineSymbol(math, main, rel, \"\\u226a\", \"\\\\ll\", true);\ndefineSymbol(math, main, rel, \"\\u226b\", \"\\\\gg\", true);\ndefineSymbol(math, main, rel, \"\\u224d\", \"\\\\asymp\", true);\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\bowtie\", true);\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\", true);\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\", true);\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\", true);\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\ni\", true);\ndefineSymbol(math, main, rel, \"\\u221d\", \"\\\\propto\", true);\ndefineSymbol(math, main, rel, \"\\u22a2\", \"\\\\vdash\", true);\ndefineSymbol(math, main, rel, \"\\u22a3\", \"\\\\dashv\", true);\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\owns\"); // Punctuation\n\ndefineSymbol(math, main, punct, \"\\u002e\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22c5\", \"\\\\cdotp\"); // Misc Symbols\n\ndefineSymbol(math, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(text, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(text, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\", true);\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\", true);\ndefineSymbol(math, main, textord, \"\\u210f\", \"\\\\hbar\", true);\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\", true);\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\", true);\ndefineSymbol(math, main, textord, \"\\u266d\", \"\\\\flat\", true);\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\", true);\ndefineSymbol(math, main, textord, \"\\u266e\", \"\\\\natural\", true);\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\", true);\ndefineSymbol(math, main, textord, \"\\u266f\", \"\\\\sharp\", true);\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\", true);\ndefineSymbol(math, main, textord, \"\\u211c\", \"\\\\Re\", true);\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\", true);\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\", true);\ndefineSymbol(math, main, textord, \"\\u00a7\", \"\\\\S\", true);\ndefineSymbol(text, main, textord, \"\\u00a7\", \"\\\\S\");\ndefineSymbol(math, main, textord, \"\\u00b6\", \"\\\\P\", true);\ndefineSymbol(text, main, textord, \"\\u00b6\", \"\\\\P\"); // Math and Text\n\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\textdagger\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(text, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(text, main, textord, \"\\u2021\", \"\\\\textdaggerdbl\"); // Large Delimiters\n\ndefineSymbol(math, main, close, \"\\u23b1\", \"\\\\rmoustache\", true);\ndefineSymbol(math, main, open, \"\\u23b0\", \"\\\\lmoustache\", true);\ndefineSymbol(math, main, close, \"\\u27ef\", \"\\\\rgroup\", true);\ndefineSymbol(math, main, open, \"\\u27ee\", \"\\\\lgroup\", true); // Binary Operators\n\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\", true);\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\", true);\ndefineSymbol(math, main, bin, \"\\u228e\", \"\\\\uplus\", true);\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\", true);\ndefineSymbol(math, main, bin, \"\\u25ef\", \"\\\\bigcirc\", true);\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\", true);\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\", true);\ndefineSymbol(math, main, bin, \"\\u2a3f\", \"\\\\amalg\");\ndefineSymbol(math, main, bin, \"\\u0026\", \"\\\\And\"); // from amsmath\n// Arrow Symbols\n\ndefineSymbol(math, main, rel, \"\\u27f5\", \"\\\\longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d0\", \"\\\\Leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f8\", \"\\\\Longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f6\", \"\\\\longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d2\", \"\\\\Rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f9\", \"\\\\Longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f7\", \"\\\\longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d4\", \"\\\\Leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27fa\", \"\\\\Longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21a6\", \"\\\\mapsto\", true);\ndefineSymbol(math, main, rel, \"\\u27fc\", \"\\\\longmapsto\", true);\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\", true);\ndefineSymbol(math, main, rel, \"\\u21a9\", \"\\\\hookleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21aa\", \"\\\\hookrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\", true);\ndefineSymbol(math, main, rel, \"\\u21bc\", \"\\\\leftharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u21c0\", \"\\\\rightharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21bd\", \"\\\\leftharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u21c1\", \"\\\\rightharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21cc\", \"\\\\rightleftharpoons\", true); // AMS Negated Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u226e\", \"\\\\nless\", true); // Symbol names preceded by \"@\" each have a corresponding macro.\n\ndefineSymbol(math, ams, rel, \"\\ue010\", \"\\\\@nleqslant\");\ndefineSymbol(math, ams, rel, \"\\ue011\", \"\\\\@nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2a87\", \"\\\\lneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue00c\", \"\\\\@lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e6\", \"\\\\lnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a89\", \"\\\\lnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\", true); // unicode-math maps \\u22e0 to \\npreccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22e0\", \"\\\\npreceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22e8\", \"\\\\precnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab9\", \"\\\\precnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\", true);\ndefineSymbol(math, ams, rel, \"\\ue006\", \"\\\\@nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\", true);\ndefineSymbol(math, ams, rel, \"\\u22ac\", \"\\\\nvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u22ad\", \"\\\\nvDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22ea\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22ec\", \"\\\\ntrianglelefteq\", true);\ndefineSymbol(math, ams, rel, \"\\u228a\", \"\\\\subsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\ue01a\", \"\\\\@varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acb\", \"\\\\subsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue017\", \"\\\\@varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226f\", \"\\\\ngtr\", true);\ndefineSymbol(math, ams, rel, \"\\ue00f\", \"\\\\@ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\ue00e\", \"\\\\@ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2a88\", \"\\\\gneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue00d\", \"\\\\@gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e7\", \"\\\\gnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8a\", \"\\\\gnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\", true); // unicode-math maps \\u22e1 to \\nsucccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22e1\", \"\\\\nsucceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22e9\", \"\\\\succnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2aba\", \"\\\\succnapprox\", true); // unicode-math maps \\u2246 to \\simneqq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\", true);\ndefineSymbol(math, ams, rel, \"\\ue007\", \"\\\\@nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\", true);\ndefineSymbol(math, ams, rel, \"\\u22af\", \"\\\\nVDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22eb\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ed\", \"\\\\ntrianglerighteq\", true);\ndefineSymbol(math, ams, rel, \"\\ue018\", \"\\\\@nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228b\", \"\\\\supsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\ue01b\", \"\\\\@varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acc\", \"\\\\supsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue019\", \"\\\\@varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22ae\", \"\\\\nVdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab5\", \"\\\\precneqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab6\", \"\\\\succneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue016\", \"\\\\@nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22b4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22b5\", \"\\\\unrhd\"); // AMS Negated Arrows\n\ndefineSymbol(math, ams, rel, \"\\u219a\", \"\\\\nleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219b\", \"\\\\nrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21cd\", \"\\\\nLeftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21cf\", \"\\\\nRightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21ae\", \"\\\\nleftrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21ce\", \"\\\\nLeftrightarrow\", true); // AMS Misc\n\ndefineSymbol(math, ams, rel, \"\\u25b3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210f\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25bd\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24c8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(text, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\", true);\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\", true);\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25b2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25bc\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25a0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29eb\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\", true); // unicode-math maps U+F0 to \\matheth. We map to AMS function \\eth\n\ndefineSymbol(math, ams, textord, \"\\u00f0\", \"\\\\eth\", true);\ndefineSymbol(text, main, textord, \"\\u00f0\", \"\\u00f0\");\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\Diamond\"); // unicode-math maps U+A5 to \\mathyen. We map to AMS function \\yen\n\ndefineSymbol(math, ams, textord, \"\\u00a5\", \"\\\\yen\", true);\ndefineSymbol(text, ams, textord, \"\\u00a5\", \"\\\\yen\", true);\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\", true);\ndefineSymbol(text, ams, textord, \"\\u2713\", \"\\\\checkmark\"); // AMS Hebrew\n\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\", true);\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\", true);\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\", true); // AMS Greek\n\ndefineSymbol(math, ams, textord, \"\\u03dd\", \"\\\\digamma\", true);\ndefineSymbol(math, ams, textord, \"\\u03f0\", \"\\\\varkappa\"); // AMS Delimiters\n\ndefineSymbol(math, ams, open, \"\\u250c\", \"\\\\@ulcorner\", true);\ndefineSymbol(math, ams, close, \"\\u2510\", \"\\\\@urcorner\", true);\ndefineSymbol(math, ams, open, \"\\u2514\", \"\\\\@llcorner\", true);\ndefineSymbol(math, ams, close, \"\\u2518\", \"\\\\@lrcorner\", true); // AMS Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2a7d\", \"\\\\leqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2a95\", \"\\\\eqslantless\", true);\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a85\", \"\\\\lessapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u224a\", \"\\\\approxeq\", true);\ndefineSymbol(math, ams, bin, \"\\u22d6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\lll\", true);\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u22da\", \"\\\\lesseqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8b\", \"\\\\lesseqqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u223d\", \"\\\\backsim\", true);\ndefineSymbol(math, ams, rel, \"\\u22cd\", \"\\\\backsimeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2ac5\", \"\\\\subseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22d0\", \"\\\\Subset\", true);\ndefineSymbol(math, ams, rel, \"\\u228f\", \"\\\\sqsubset\", true);\ndefineSymbol(math, ams, rel, \"\\u227c\", \"\\\\preccurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22de\", \"\\\\curlyeqprec\", true);\ndefineSymbol(math, ams, rel, \"\\u227e\", \"\\\\precsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab7\", \"\\\\precapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22b2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22b4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22a8\", \"\\\\vDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22aa\", \"\\\\Vvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224f\", \"\\\\bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u224e\", \"\\\\Bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2a7e\", \"\\\\geqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2a96\", \"\\\\eqslantgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a86\", \"\\\\gtrapprox\", true);\ndefineSymbol(math, ams, bin, \"\\u22d7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\ggg\", true);\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\", true);\ndefineSymbol(math, ams, rel, \"\\u22db\", \"\\\\gtreqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8c\", \"\\\\gtreqqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\", true);\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\", true);\ndefineSymbol(math, ams, rel, \"\\u225c\", \"\\\\triangleq\", true);\ndefineSymbol(math, ams, rel, \"\\u223c\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2ac6\", \"\\\\supseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22d1\", \"\\\\Supset\", true);\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\", true);\ndefineSymbol(math, ams, rel, \"\\u227d\", \"\\\\succcurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22df\", \"\\\\curlyeqsucc\", true);\ndefineSymbol(math, ams, rel, \"\\u227f\", \"\\\\succsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab8\", \"\\\\succapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22b3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22b5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22a9\", \"\\\\Vdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226c\", \"\\\\between\", true);\ndefineSymbol(math, ams, rel, \"\\u22d4\", \"\\\\pitchfork\", true);\ndefineSymbol(math, ams, rel, \"\\u221d\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25c0\", \"\\\\blacktriangleleft\"); // unicode-math says that \\therefore is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\", true);\ndefineSymbol(math, ams, rel, \"\\u220d\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25b6\", \"\\\\blacktriangleright\"); // unicode-math says that \\because is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\", true);\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22b2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22b3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\", true);\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\", true); // AMS Binary Operators\n\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\", true);\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\Cap\", true);\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\Cup\", true);\ndefineSymbol(math, ams, bin, \"\\u2a5e\", \"\\\\doublebarwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u229f\", \"\\\\boxminus\", true);\ndefineSymbol(math, ams, bin, \"\\u229e\", \"\\\\boxplus\", true);\ndefineSymbol(math, ams, bin, \"\\u22c7\", \"\\\\divideontimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22c9\", \"\\\\ltimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22ca\", \"\\\\rtimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cb\", \"\\\\leftthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cc\", \"\\\\rightthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cf\", \"\\\\curlywedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22ce\", \"\\\\curlyvee\", true);\ndefineSymbol(math, ams, bin, \"\\u229d\", \"\\\\circleddash\", true);\ndefineSymbol(math, ams, bin, \"\\u229b\", \"\\\\circledast\", true);\ndefineSymbol(math, ams, bin, \"\\u22c5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22ba\", \"\\\\intercal\", true);\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22a0\", \"\\\\boxtimes\", true); // AMS Arrows\n// Note: unicode-math maps \\u21e2 to their own function \\rightdasharrow.\n// We'll map it to AMS function \\dashrightarrow. It produces the same atom.\n\ndefineSymbol(math, ams, rel, \"\\u21e2\", \"\\\\dashrightarrow\", true); // unicode-math maps \\u21e0 to \\leftdasharrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21e0\", \"\\\\dashleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21c7\", \"\\\\leftleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21c6\", \"\\\\leftrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21da\", \"\\\\Lleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219e\", \"\\\\twoheadleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21a2\", \"\\\\leftarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21ab\", \"\\\\looparrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21cb\", \"\\\\leftrightharpoons\", true);\ndefineSymbol(math, ams, rel, \"\\u21b6\", \"\\\\curvearrowleft\", true); // unicode-math maps \\u21ba to \\acwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21ba\", \"\\\\circlearrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21b0\", \"\\\\Lsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21c8\", \"\\\\upuparrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21bf\", \"\\\\upharpoonleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21c3\", \"\\\\downharpoonleft\", true);\ndefineSymbol(math, main, rel, \"\\u22b6\", \"\\\\origof\", true); // not in font\n\ndefineSymbol(math, main, rel, \"\\u22b7\", \"\\\\imageof\", true); // not in font\n\ndefineSymbol(math, ams, rel, \"\\u22b8\", \"\\\\multimap\", true);\ndefineSymbol(math, ams, rel, \"\\u21ad\", \"\\\\leftrightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21c9\", \"\\\\rightrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21c4\", \"\\\\rightleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21a0\", \"\\\\twoheadrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21a3\", \"\\\\rightarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21ac\", \"\\\\looparrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21b7\", \"\\\\curvearrowright\", true); // unicode-math maps \\u21bb to \\cwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21bb\", \"\\\\circlearrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21b1\", \"\\\\Rsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21ca\", \"\\\\downdownarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\upharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21c2\", \"\\\\downharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\rightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21db\", \"\\\\Rrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\restriction\");\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(text, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(text, main, textord, \"$\", \"\\\\textdollar\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(text, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(text, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(text, main, textord, \"_\", \"\\\\textunderscore\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\", true);\ndefineSymbol(math, main, textord, \"\\u221e\", \"\\\\infty\", true);\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25b3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\", true);\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\", true);\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\", true);\ndefineSymbol(math, main, textord, \"\\u039b\", \"\\\\Lambda\", true);\ndefineSymbol(math, main, textord, \"\\u039e\", \"\\\\Xi\", true);\ndefineSymbol(math, main, textord, \"\\u03a0\", \"\\\\Pi\", true);\ndefineSymbol(math, main, textord, \"\\u03a3\", \"\\\\Sigma\", true);\ndefineSymbol(math, main, textord, \"\\u03a5\", \"\\\\Upsilon\", true);\ndefineSymbol(math, main, textord, \"\\u03a6\", \"\\\\Phi\", true);\ndefineSymbol(math, main, textord, \"\\u03a8\", \"\\\\Psi\", true);\ndefineSymbol(math, main, textord, \"\\u03a9\", \"\\\\Omega\", true);\ndefineSymbol(math, main, textord, \"A\", \"\\u0391\");\ndefineSymbol(math, main, textord, \"B\", \"\\u0392\");\ndefineSymbol(math, main, textord, \"E\", \"\\u0395\");\ndefineSymbol(math, main, textord, \"Z\", \"\\u0396\");\ndefineSymbol(math, main, textord, \"H\", \"\\u0397\");\ndefineSymbol(math, main, textord, \"I\", \"\\u0399\");\ndefineSymbol(math, main, textord, \"K\", \"\\u039A\");\ndefineSymbol(math, main, textord, \"M\", \"\\u039C\");\ndefineSymbol(math, main, textord, \"N\", \"\\u039D\");\ndefineSymbol(math, main, textord, \"O\", \"\\u039F\");\ndefineSymbol(math, main, textord, \"P\", \"\\u03A1\");\ndefineSymbol(math, main, textord, \"T\", \"\\u03A4\");\ndefineSymbol(math, main, textord, \"X\", \"\\u03A7\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\neg\", true);\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22a4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22a5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03b1\", \"\\\\alpha\", true);\ndefineSymbol(math, main, mathord, \"\\u03b2\", \"\\\\beta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b3\", \"\\\\gamma\", true);\ndefineSymbol(math, main, mathord, \"\\u03b4\", \"\\\\delta\", true);\ndefineSymbol(math, main, mathord, \"\\u03f5\", \"\\\\epsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03b6\", \"\\\\zeta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b7\", \"\\\\eta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b8\", \"\\\\theta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b9\", \"\\\\iota\", true);\ndefineSymbol(math, main, mathord, \"\\u03ba\", \"\\\\kappa\", true);\ndefineSymbol(math, main, mathord, \"\\u03bb\", \"\\\\lambda\", true);\ndefineSymbol(math, main, mathord, \"\\u03bc\", \"\\\\mu\", true);\ndefineSymbol(math, main, mathord, \"\\u03bd\", \"\\\\nu\", true);\ndefineSymbol(math, main, mathord, \"\\u03be\", \"\\\\xi\", true);\ndefineSymbol(math, main, mathord, \"\\u03bf\", \"\\\\omicron\", true);\ndefineSymbol(math, main, mathord, \"\\u03c0\", \"\\\\pi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c1\", \"\\\\rho\", true);\ndefineSymbol(math, main, mathord, \"\\u03c3\", \"\\\\sigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03c4\", \"\\\\tau\", true);\ndefineSymbol(math, main, mathord, \"\\u03c5\", \"\\\\upsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03d5\", \"\\\\phi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c7\", \"\\\\chi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c8\", \"\\\\psi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c9\", \"\\\\omega\", true);\ndefineSymbol(math, main, mathord, \"\\u03b5\", \"\\\\varepsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03d1\", \"\\\\vartheta\", true);\ndefineSymbol(math, main, mathord, \"\\u03d6\", \"\\\\varpi\", true);\ndefineSymbol(math, main, mathord, \"\\u03f1\", \"\\\\varrho\", true);\ndefineSymbol(math, main, mathord, \"\\u03c2\", \"\\\\varsigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03c6\", \"\\\\varphi\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\", true);\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\", true);\ndefineSymbol(math, main, bin, \"\\u22c5\", \"\\\\cdot\", true);\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\", true);\ndefineSymbol(math, main, bin, \"\\u00f7\", \"\\\\div\", true);\ndefineSymbol(math, main, bin, \"\\u00b1\", \"\\\\pm\", true);\ndefineSymbol(math, main, bin, \"\\u00d7\", \"\\\\times\", true);\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\", true);\ndefineSymbol(math, main, bin, \"\\u222a\", \"\\\\cup\", true);\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\", true);\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\", true);\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\", true);\ndefineSymbol(math, main, textord, \"\\u221a\", \"\\\\surd\");\ndefineSymbol(math, main, open, \"\\u27e8\", \"\\\\langle\", true);\ndefineSymbol(math, main, open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, close, \"?\", \"?\");\ndefineSymbol(math, main, close, \"!\", \"!\");\ndefineSymbol(math, main, close, \"\\u27e9\", \"\\\\rangle\", true);\ndefineSymbol(math, main, close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\", true);\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\", true);\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\", true);\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\", true);\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\", true);\ndefineSymbol(math, main, rel, \"\\ue020\", \"\\\\@not\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\", true);\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\", true);\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u22a8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\", true);\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\", true);\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\space\"); // Ref: LaTeX Source 2e: \\DeclareRobustCommand{\\nobreakspace}{%\n\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\nobreakspace\");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \" \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\space\");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\nobreakspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\nobreak\");\ndefineSymbol(math, main, spacing, null, \"\\\\allowbreak\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, ams, bin, \"\\u22bc\", \"\\\\barwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22bb\", \"\\\\veebar\", true);\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\", true);\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\", true);\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\", true);\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\", true);\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\", true);\ndefineSymbol(math, ams, bin, \"\\u229a\", \"\\\\circledcirc\", true);\ndefineSymbol(math, ams, bin, \"\\u22a1\", \"\\\\boxdot\", true);\ndefineSymbol(math, main, bin, \"\\u25b3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25bd\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22c4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22c6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25c3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25b9\", \"\\\\triangleright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\{\");\ndefineSymbol(text, main, textord, \"{\", \"\\\\{\");\ndefineSymbol(text, main, textord, \"{\", \"\\\\textbraceleft\");\ndefineSymbol(math, main, close, \"}\", \"\\\\}\");\ndefineSymbol(text, main, textord, \"}\", \"\\\\}\");\ndefineSymbol(text, main, textord, \"}\", \"\\\\textbraceright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, open, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(text, main, textord, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(math, main, close, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(text, main, textord, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(math, main, open, \"(\", \"\\\\lparen\", true);\ndefineSymbol(math, main, close, \")\", \"\\\\rparen\", true);\ndefineSymbol(text, main, textord, \"<\", \"\\\\textless\", true); // in T1 fontenc\n\ndefineSymbol(text, main, textord, \">\", \"\\\\textgreater\", true); // in T1 fontenc\n\ndefineSymbol(math, main, open, \"\\u230a\", \"\\\\lfloor\", true);\ndefineSymbol(math, main, close, \"\\u230b\", \"\\\\rfloor\", true);\ndefineSymbol(math, main, open, \"\\u2308\", \"\\\\lceil\", true);\ndefineSymbol(math, main, close, \"\\u2309\", \"\\\\rceil\", true);\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(text, main, textord, \"|\", \"\\\\textbar\", true); // in T1 fontenc\n\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(text, main, textord, \"\\u2225\", \"\\\\textbardbl\");\ndefineSymbol(text, main, textord, \"~\", \"\\\\textasciitilde\");\ndefineSymbol(text, main, textord, \"\\\\\", \"\\\\textbackslash\");\ndefineSymbol(text, main, textord, \"^\", \"\\\\textasciicircum\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d1\", \"\\\\Uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d3\", \"\\\\Downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d5\", \"\\\\Updownarrow\", true);\ndefineSymbol(math, main, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, main, op, \"\\u22c1\", \"\\\\bigvee\");\ndefineSymbol(math, main, op, \"\\u22c0\", \"\\\\bigwedge\");\ndefineSymbol(math, main, op, \"\\u2a04\", \"\\\\biguplus\");\ndefineSymbol(math, main, op, \"\\u22c2\", \"\\\\bigcap\");\ndefineSymbol(math, main, op, \"\\u22c3\", \"\\\\bigcup\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\int\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\intop\");\ndefineSymbol(math, main, op, \"\\u222c\", \"\\\\iint\");\ndefineSymbol(math, main, op, \"\\u222d\", \"\\\\iiint\");\ndefineSymbol(math, main, op, \"\\u220f\", \"\\\\prod\");\ndefineSymbol(math, main, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, main, op, \"\\u2a02\", \"\\\\bigotimes\");\ndefineSymbol(math, main, op, \"\\u2a01\", \"\\\\bigoplus\");\ndefineSymbol(math, main, op, \"\\u2a00\", \"\\\\bigodot\");\ndefineSymbol(math, main, op, \"\\u222e\", \"\\\\oint\");\ndefineSymbol(math, main, op, \"\\u222f\", \"\\\\oiint\");\ndefineSymbol(math, main, op, \"\\u2230\", \"\\\\oiiint\");\ndefineSymbol(math, main, op, \"\\u2a06\", \"\\\\bigsqcup\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\smallint\");\ndefineSymbol(text, main, inner, \"\\u2026\", \"\\\\textellipsis\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\mathellipsis\");\ndefineSymbol(text, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u22ef\", \"\\\\@cdots\", true);\ndefineSymbol(math, main, inner, \"\\u22f1\", \"\\\\ddots\", true);\ndefineSymbol(math, main, textord, \"\\u22ee\", \"\\\\varvdots\"); // \\vdots is a macro\n\ndefineSymbol(math, main, accent, \"\\u02ca\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u02cb\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\u00a8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"\\u007e\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u02c9\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02d8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02c7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"\\u005e\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20d7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02d9\", \"\\\\dot\");\ndefineSymbol(math, main, accent, \"\\u02da\", \"\\\\mathring\"); // \\imath and \\jmath should be invariant to \\mathrm, \\mathbf, etc., so use PUA\n\ndefineSymbol(math, main, mathord, \"\\ue131\", \"\\\\@imath\");\ndefineSymbol(math, main, mathord, \"\\ue237\", \"\\\\@jmath\");\ndefineSymbol(math, main, textord, \"\\u0131\", \"\\u0131\");\ndefineSymbol(math, main, textord, \"\\u0237\", \"\\u0237\");\ndefineSymbol(text, main, textord, \"\\u0131\", \"\\\\i\", true);\ndefineSymbol(text, main, textord, \"\\u0237\", \"\\\\j\", true);\ndefineSymbol(text, main, textord, \"\\u00df\", \"\\\\ss\", true);\ndefineSymbol(text, main, textord, \"\\u00e6\", \"\\\\ae\", true);\ndefineSymbol(text, main, textord, \"\\u0153\", \"\\\\oe\", true);\ndefineSymbol(text, main, textord, \"\\u00f8\", \"\\\\o\", true);\ndefineSymbol(text, main, textord, \"\\u00c6\", \"\\\\AE\", true);\ndefineSymbol(text, main, textord, \"\\u0152\", \"\\\\OE\", true);\ndefineSymbol(text, main, textord, \"\\u00d8\", \"\\\\O\", true);\ndefineSymbol(text, main, accent, \"\\u02ca\", \"\\\\'\"); // acute\n\ndefineSymbol(text, main, accent, \"\\u02cb\", \"\\\\`\"); // grave\n\ndefineSymbol(text, main, accent, \"\\u02c6\", \"\\\\^\"); // circumflex\n\ndefineSymbol(text, main, accent, \"\\u02dc\", \"\\\\~\"); // tilde\n\ndefineSymbol(text, main, accent, \"\\u02c9\", \"\\\\=\"); // macron\n\ndefineSymbol(text, main, accent, \"\\u02d8\", \"\\\\u\"); // breve\n\ndefineSymbol(text, main, accent, \"\\u02d9\", \"\\\\.\"); // dot above\n\ndefineSymbol(text, main, accent, \"\\u00b8\", \"\\\\c\"); // cedilla\n\ndefineSymbol(text, main, accent, \"\\u02da\", \"\\\\r\"); // ring above\n\ndefineSymbol(text, main, accent, \"\\u02c7\", \"\\\\v\"); // caron\n\ndefineSymbol(text, main, accent, \"\\u00a8\", '\\\\\"'); // diaresis\n\ndefineSymbol(text, main, accent, \"\\u02dd\", \"\\\\H\"); // double acute\n\ndefineSymbol(text, main, accent, \"\\u25ef\", \"\\\\textcircled\"); // \\bigcirc glyph\n// These ligatures are detected and created in Parser.js's `formLigatures`.\n\nvar ligatures = {\n \"--\": true,\n \"---\": true,\n \"``\": true,\n \"''\": true\n};\ndefineSymbol(text, main, textord, \"\\u2013\", \"--\", true);\ndefineSymbol(text, main, textord, \"\\u2013\", \"\\\\textendash\");\ndefineSymbol(text, main, textord, \"\\u2014\", \"---\", true);\ndefineSymbol(text, main, textord, \"\\u2014\", \"\\\\textemdash\");\ndefineSymbol(text, main, textord, \"\\u2018\", \"`\", true);\ndefineSymbol(text, main, textord, \"\\u2018\", \"\\\\textquoteleft\");\ndefineSymbol(text, main, textord, \"\\u2019\", \"'\", true);\ndefineSymbol(text, main, textord, \"\\u2019\", \"\\\\textquoteright\");\ndefineSymbol(text, main, textord, \"\\u201c\", \"``\", true);\ndefineSymbol(text, main, textord, \"\\u201c\", \"\\\\textquotedblleft\");\ndefineSymbol(text, main, textord, \"\\u201d\", \"''\", true);\ndefineSymbol(text, main, textord, \"\\u201d\", \"\\\\textquotedblright\"); // \\degree from gensymb package\n\ndefineSymbol(math, main, textord, \"\\u00b0\", \"\\\\degree\", true);\ndefineSymbol(text, main, textord, \"\\u00b0\", \"\\\\degree\"); // \\textdegree from inputenc package\n\ndefineSymbol(text, main, textord, \"\\u00b0\", \"\\\\textdegree\", true); // TODO: In LaTeX, \\pounds can generate a different character in text and math\n// mode, but among our fonts, only Main-Regular defines this character \"163\".\n\ndefineSymbol(math, main, textord, \"\\u00a3\", \"\\\\pounds\");\ndefineSymbol(math, main, textord, \"\\u00a3\", \"\\\\mathsterling\", true);\ndefineSymbol(text, main, textord, \"\\u00a3\", \"\\\\pounds\");\ndefineSymbol(text, main, textord, \"\\u00a3\", \"\\\\textsterling\", true);\ndefineSymbol(math, ams, textord, \"\\u2720\", \"\\\\maltese\");\ndefineSymbol(text, ams, textord, \"\\u2720\", \"\\\\maltese\"); // There are lots of symbols which are the same, so we add them in afterwards.\n// All of these are textords in math mode\n\nvar mathTextSymbols = \"0123456789/@.\\\"\";\n\nfor (var i = 0; i < mathTextSymbols.length; i++) {\n var ch = mathTextSymbols.charAt(i);\n defineSymbol(math, main, textord, ch, ch);\n} // All of these are textords in text mode\n\n\nvar textSymbols = \"0123456789!@*()-=+\\\";:?/.,\";\n\nfor (var _i = 0; _i < textSymbols.length; _i++) {\n var _ch = textSymbols.charAt(_i);\n\n defineSymbol(text, main, textord, _ch, _ch);\n} // All of these are textords in text mode, and mathords in math mode\n\n\nvar letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\nfor (var _i2 = 0; _i2 < letters.length; _i2++) {\n var _ch2 = letters.charAt(_i2);\n\n defineSymbol(math, main, mathord, _ch2, _ch2);\n defineSymbol(text, main, textord, _ch2, _ch2);\n} // Blackboard bold and script letters in Unicode range\n\n\ndefineSymbol(math, ams, textord, \"C\", \"\\u2102\"); // blackboard bold\n\ndefineSymbol(text, ams, textord, \"C\", \"\\u2102\");\ndefineSymbol(math, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(text, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(math, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(text, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(math, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(text, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(math, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(text, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(math, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(text, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(math, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(text, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(math, main, mathord, \"h\", \"\\u210E\"); // italic h, Planck constant\n\ndefineSymbol(text, main, mathord, \"h\", \"\\u210E\"); // The next loop loads wide (surrogate pair) characters.\n// We support some letters in the Unicode range U+1D400 to U+1D7FF,\n// Mathematical Alphanumeric Symbols.\n// Some editors do not deal well with wide characters. So don't write the\n// string into this file. Instead, create the string from the surrogate pair.\n\nvar wideChar = \"\";\n\nfor (var _i3 = 0; _i3 < letters.length; _i3++) {\n var _ch3 = letters.charAt(_i3); // The hex numbers in the next line are a surrogate pair.\n // 0xD835 is the high surrogate for all letters in the range we support.\n // 0xDC00 is the low surrogate for bold A.\n\n\n wideChar = String.fromCharCode(0xD835, 0xDC00 + _i3); // A-Z a-z bold\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC34 + _i3); // A-Z a-z italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC68 + _i3); // A-Z a-z bold italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD04 + _i3); // A-Z a-z Fractur\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD6C + _i3); // A-Z a-z bold Fractur\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDA0 + _i3); // A-Z a-z sans-serif\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDD4 + _i3); // A-Z a-z sans bold\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE08 + _i3); // A-Z a-z sans italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE70 + _i3); // A-Z a-z monospace\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n\n if (_i3 < 26) {\n // KaTeX fonts have only capital letters for blackboard bold and script.\n // See exception for k below.\n wideChar = String.fromCharCode(0xD835, 0xDD38 + _i3); // A-Z double struck\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC9C + _i3); // A-Z script\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n } // TODO: Add bold script when it is supported by a KaTeX font.\n\n} // \"k\" is the only double struck lower case letter in the KaTeX fonts.\n\n\nwideChar = String.fromCharCode(0xD835, 0xDD5C); // k double struck\n\ndefineSymbol(math, main, mathord, \"k\", wideChar);\ndefineSymbol(text, main, textord, \"k\", wideChar); // Next, some wide character numerals\n\nfor (var _i4 = 0; _i4 < 10; _i4++) {\n var _ch4 = _i4.toString();\n\n wideChar = String.fromCharCode(0xD835, 0xDFCE + _i4); // 0-9 bold\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFE2 + _i4); // 0-9 sans serif\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFEC + _i4); // 0-9 bold sans\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFF6 + _i4); // 0-9 monospace\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n} // We add these Latin-1 letters as symbols for backwards-compatibility,\n// but they are not actually in the font, nor are they supported by the\n// Unicode accent mechanism, so they fall back to Times font and look ugly.\n// TODO(edemaine): Fix this.\n\n\nvar extraLatin = \"\\u00d0\\u00de\\u00fe\";\n\nfor (var _i5 = 0; _i5 < extraLatin.length; _i5++) {\n var _ch5 = extraLatin.charAt(_i5);\n\n defineSymbol(math, main, mathord, _ch5, _ch5);\n defineSymbol(text, main, textord, _ch5, _ch5);\n}\n\n/**\n * This file provides support for Unicode range U+1D400 to U+1D7FF,\n * Mathematical Alphanumeric Symbols.\n *\n * Function wideCharacterFont takes a wide character as input and returns\n * the font information necessary to render it properly.\n */\n/**\n * Data below is from https://www.unicode.org/charts/PDF/U1D400.pdf\n * That document sorts characters into groups by font type, say bold or italic.\n *\n * In the arrays below, each subarray consists three elements:\n * * The CSS class of that group when in math mode.\n * * The CSS class of that group when in text mode.\n * * The font name, so that KaTeX can get font metrics.\n */\n\nvar wideLatinLetterData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // A-Z bold upright\n[\"mathbf\", \"textbf\", \"Main-Bold\"], // a-z bold upright\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // A-Z italic\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // a-z italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // A-Z bold italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // a-z bold italic\n// Map fancy A-Z letters to script, not calligraphic.\n// This aligns with unicode-math and math fonts (except Cambria Math).\n[\"mathscr\", \"textscr\", \"Script-Regular\"], // A-Z script\n[\"\", \"\", \"\"], // a-z script. No font\n[\"\", \"\", \"\"], // A-Z bold script. No font\n[\"\", \"\", \"\"], // a-z bold script. No font\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // A-Z Fraktur\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // a-z Fraktur\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // A-Z double-struck\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // k double-struck\n// Note that we are using a bold font, but font metrics for regular Fraktur.\n[\"mathboldfrak\", \"textboldfrak\", \"Fraktur-Regular\"], // A-Z bold Fraktur\n[\"mathboldfrak\", \"textboldfrak\", \"Fraktur-Regular\"], // a-z bold Fraktur\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // A-Z sans-serif\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // a-z sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // A-Z bold sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // a-z bold sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // A-Z italic sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // a-z italic sans-serif\n[\"\", \"\", \"\"], // A-Z bold italic sans. No font\n[\"\", \"\", \"\"], // a-z bold italic sans. No font\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"], // A-Z monospace\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // a-z monospace\n];\nvar wideNumeralData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // 0-9 bold\n[\"\", \"\", \"\"], // 0-9 double-struck. No KaTeX font.\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // 0-9 sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // 0-9 bold sans-serif\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // 0-9 monospace\n];\nvar wideCharacterFont = function wideCharacterFont(wideChar, mode) {\n // IE doesn't support codePointAt(). So work with the surrogate pair.\n var H = wideChar.charCodeAt(0); // high surrogate\n\n var L = wideChar.charCodeAt(1); // low surrogate\n\n var codePoint = (H - 0xD800) * 0x400 + (L - 0xDC00) + 0x10000;\n var j = mode === \"math\" ? 0 : 1; // column index for CSS class.\n\n if (0x1D400 <= codePoint && codePoint < 0x1D6A4) {\n // wideLatinLetterData contains exactly 26 chars on each row.\n // So we can calculate the relevant row. No traverse necessary.\n var i = Math.floor((codePoint - 0x1D400) / 26);\n return [wideLatinLetterData[i][2], wideLatinLetterData[i][j]];\n } else if (0x1D7CE <= codePoint && codePoint <= 0x1D7FF) {\n // Numerals, ten per row.\n var _i = Math.floor((codePoint - 0x1D7CE) / 10);\n\n return [wideNumeralData[_i][2], wideNumeralData[_i][j]];\n } else if (codePoint === 0x1D6A5 || codePoint === 0x1D6A6) {\n // dotless i or j\n return [wideLatinLetterData[0][2], wideLatinLetterData[0][j]];\n } else if (0x1D6A6 < codePoint && codePoint < 0x1D7CE) {\n // Greek letters. Not supported, yet.\n return [\"\", \"\"];\n } else {\n // We don't support any wide characters outside 1D400–1D7FF.\n throw new ParseError(\"Unsupported character: \" + wideChar);\n }\n};\n\n/* eslint no-console:0 */\n\n/**\n * Looks up the given symbol in fontMetrics, after applying any symbol\n * replacements defined in symbol.js\n */\nvar lookupSymbol = function lookupSymbol(value, // TODO(#963): Use a union type for this.\nfontName, mode) {\n // Replace the value with its replaced value from symbol.js\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n return {\n value: value,\n metrics: getCharacterMetrics(value, fontName, mode)\n };\n};\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n *\n * TODO: make argument order closer to makeSpan\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n * TODO(#953): Make `options` mandatory and always pass it in.\n */\n\n\nvar makeSymbol = function makeSymbol(value, fontName, mode, options, classes) {\n var lookup = lookupSymbol(value, fontName, mode);\n var metrics = lookup.metrics;\n value = lookup.value;\n var symbolNode;\n\n if (metrics) {\n var italic = metrics.italic;\n\n if (mode === \"text\" || options && options.font === \"mathit\") {\n italic = 0;\n }\n\n symbolNode = new SymbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\"No character metrics \" + (\"for '\" + value + \"' in style '\" + fontName + \"' and mode '\" + mode + \"'\"));\n symbolNode = new SymbolNode(value, 0, 0, 0, 0, 0, classes);\n }\n\n if (options) {\n symbolNode.maxFontSize = options.sizeMultiplier;\n\n if (options.style.isTight()) {\n symbolNode.classes.push(\"mtight\");\n }\n\n var color = options.getColor();\n\n if (color) {\n symbolNode.style.color = color;\n }\n }\n\n return symbolNode;\n};\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\n\n\nvar mathsym = function mathsym(value, mode, options, classes) {\n if (classes === void 0) {\n classes = [];\n }\n\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text, as well as a special case for boldsymbol because it\n // can be used for bold + and -\n if (options.font === \"boldsymbol\" && lookupSymbol(value, \"Main-Bold\", mode).metrics) {\n return makeSymbol(value, \"Main-Bold\", mode, options, classes.concat([\"mathbf\"]));\n } else if (value === \"\\\\\" || symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, options, classes);\n } else {\n return makeSymbol(value, \"AMS-Regular\", mode, options, classes.concat([\"amsrm\"]));\n }\n};\n/**\n * Determines which of the two font names (Main-Bold and Math-BoldItalic) and\n * corresponding style tags (mathbf or boldsymbol) to use for font \"boldsymbol\",\n * depending on the symbol. Use this function instead of fontMap for font\n * \"boldsymbol\".\n */\n\n\nvar boldsymbol = function boldsymbol(value, mode, options, classes, type) {\n if (type !== \"textord\" && lookupSymbol(value, \"Math-BoldItalic\", mode).metrics) {\n return {\n fontName: \"Math-BoldItalic\",\n fontClass: \"boldsymbol\"\n };\n } else {\n // Some glyphs do not exist in Math-BoldItalic so we need to use\n // Main-Bold instead.\n return {\n fontName: \"Main-Bold\",\n fontClass: \"mathbf\"\n };\n }\n};\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\n\n\nvar makeOrd = function makeOrd(group, options, type) {\n var mode = group.mode;\n var text = group.text;\n var classes = [\"mord\"]; // Math mode or Old font (i.e. \\rm)\n\n var isFont = mode === \"math\" || mode === \"text\" && options.font;\n var fontOrFamily = isFont ? options.font : options.fontFamily;\n var wideFontName = \"\";\n var wideFontClass = \"\";\n\n if (text.charCodeAt(0) === 0xD835) {\n [wideFontName, wideFontClass] = wideCharacterFont(text, mode);\n }\n\n if (wideFontName.length > 0) {\n // surrogate pairs get special treatment\n return makeSymbol(text, wideFontName, mode, options, classes.concat(wideFontClass));\n } else if (fontOrFamily) {\n var fontName;\n var fontClasses;\n\n if (fontOrFamily === \"boldsymbol\") {\n var fontData = boldsymbol(text, mode, options, classes, type);\n fontName = fontData.fontName;\n fontClasses = [fontData.fontClass];\n } else if (isFont) {\n fontName = fontMap[fontOrFamily].fontName;\n fontClasses = [fontOrFamily];\n } else {\n fontName = retrieveTextFontName(fontOrFamily, options.fontWeight, options.fontShape);\n fontClasses = [fontOrFamily, options.fontWeight, options.fontShape];\n }\n\n if (lookupSymbol(text, fontName, mode).metrics) {\n return makeSymbol(text, fontName, mode, options, classes.concat(fontClasses));\n } else if (ligatures.hasOwnProperty(text) && fontName.slice(0, 10) === \"Typewriter\") {\n // Deconstruct ligatures in monospace fonts (\\texttt, \\tt).\n var parts = [];\n\n for (var i = 0; i < text.length; i++) {\n parts.push(makeSymbol(text[i], fontName, mode, options, classes.concat(fontClasses)));\n }\n\n return makeFragment(parts);\n }\n } // Makes a symbol in the default font for mathords and textords.\n\n\n if (type === \"mathord\") {\n return makeSymbol(text, \"Math-Italic\", mode, options, classes.concat([\"mathnormal\"]));\n } else if (type === \"textord\") {\n var font = symbols[mode][text] && symbols[mode][text].font;\n\n if (font === \"ams\") {\n var _fontName = retrieveTextFontName(\"amsrm\", options.fontWeight, options.fontShape);\n\n return makeSymbol(text, _fontName, mode, options, classes.concat(\"amsrm\", options.fontWeight, options.fontShape));\n } else if (font === \"main\" || !font) {\n var _fontName2 = retrieveTextFontName(\"textrm\", options.fontWeight, options.fontShape);\n\n return makeSymbol(text, _fontName2, mode, options, classes.concat(options.fontWeight, options.fontShape));\n } else {\n // fonts added by plugins\n var _fontName3 = retrieveTextFontName(font, options.fontWeight, options.fontShape); // We add font name as a css class\n\n\n return makeSymbol(text, _fontName3, mode, options, classes.concat(_fontName3, options.fontWeight, options.fontShape));\n }\n } else {\n throw new Error(\"unexpected type: \" + type + \" in makeOrd\");\n }\n};\n/**\n * Returns true if subsequent symbolNodes have the same classes, skew, maxFont,\n * and styles.\n */\n\n\nvar canCombine = (prev, next) => {\n if (createClass(prev.classes) !== createClass(next.classes) || prev.skew !== next.skew || prev.maxFontSize !== next.maxFontSize) {\n return false;\n } // If prev and next both are just \"mbin\"s or \"mord\"s we don't combine them\n // so that the proper spacing can be preserved.\n\n\n if (prev.classes.length === 1) {\n var cls = prev.classes[0];\n\n if (cls === \"mbin\" || cls === \"mord\") {\n return false;\n }\n }\n\n for (var style in prev.style) {\n if (prev.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) {\n return false;\n }\n }\n\n for (var _style in next.style) {\n if (next.style.hasOwnProperty(_style) && prev.style[_style] !== next.style[_style]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Combine consecutive domTree.symbolNodes into a single symbolNode.\n * Note: this function mutates the argument.\n */\n\n\nvar tryCombineChars = chars => {\n for (var i = 0; i < chars.length - 1; i++) {\n var prev = chars[i];\n var next = chars[i + 1];\n\n if (prev instanceof SymbolNode && next instanceof SymbolNode && canCombine(prev, next)) {\n prev.text += next.text;\n prev.height = Math.max(prev.height, next.height);\n prev.depth = Math.max(prev.depth, next.depth); // Use the last character's italic correction since we use\n // it to add padding to the right of the span created from\n // the combined characters.\n\n prev.italic = next.italic;\n chars.splice(i + 1, 1);\n i--;\n }\n }\n\n return chars;\n};\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\n\n\nvar sizeElementFromChildren = function sizeElementFromChildren(elem) {\n var height = 0;\n var depth = 0;\n var maxFontSize = 0;\n\n for (var i = 0; i < elem.children.length; i++) {\n var child = elem.children[i];\n\n if (child.height > height) {\n height = child.height;\n }\n\n if (child.depth > depth) {\n depth = child.depth;\n }\n\n if (child.maxFontSize > maxFontSize) {\n maxFontSize = child.maxFontSize;\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n/**\n * Makes a span with the given list of classes, list of children, and options.\n *\n * TODO(#953): Ensure that `options` is always provided (currently some call\n * sites don't pass it) and make the type below mandatory.\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n */\n\n\nvar makeSpan$2 = function makeSpan(classes, children, options, style) {\n var span = new Span(classes, children, options, style);\n sizeElementFromChildren(span);\n return span;\n}; // SVG one is simpler -- doesn't require height, depth, max-font setting.\n// This is also a separate method for typesafety.\n\n\nvar makeSvgSpan = (classes, children, options, style) => new Span(classes, children, options, style);\n\nvar makeLineSpan = function makeLineSpan(className, options, thickness) {\n var line = makeSpan$2([className], [], options);\n line.height = Math.max(thickness || options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n line.style.borderBottomWidth = makeEm(line.height);\n line.maxFontSize = 1.0;\n return line;\n};\n/**\n * Makes an anchor with the given href, list of classes, list of children,\n * and options.\n */\n\n\nvar makeAnchor = function makeAnchor(href, classes, children, options) {\n var anchor = new Anchor(href, classes, children, options);\n sizeElementFromChildren(anchor);\n return anchor;\n};\n/**\n * Makes a document fragment with the given list of children.\n */\n\n\nvar makeFragment = function makeFragment(children) {\n var fragment = new DocumentFragment(children);\n sizeElementFromChildren(fragment);\n return fragment;\n};\n/**\n * Wraps group in a span if it's a document fragment, allowing to apply classes\n * and styles\n */\n\n\nvar wrapFragment = function wrapFragment(group, options) {\n if (group instanceof DocumentFragment) {\n return makeSpan$2([], [group], options);\n }\n\n return group;\n}; // These are exact object types to catch typos in the names of the optional fields.\n\n\n// Computes the updated `children` list and the overall depth.\n//\n// This helper function for makeVList makes it easier to enforce type safety by\n// allowing early exits (returns) in the logic.\nvar getVListChildrenAndDepth = function getVListChildrenAndDepth(params) {\n if (params.positionType === \"individualShift\") {\n var oldChildren = params.children;\n var children = [oldChildren[0]]; // Add in kerns to the list of params.children to get each element to be\n // shifted to the correct specified shift\n\n var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n\n var currPos = _depth;\n\n for (var i = 1; i < oldChildren.length; i++) {\n var diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth;\n var size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth);\n currPos = currPos + diff;\n children.push({\n type: \"kern\",\n size\n });\n children.push(oldChildren[i]);\n }\n\n return {\n children,\n depth: _depth\n };\n }\n\n var depth;\n\n if (params.positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n var bottom = params.positionData;\n\n for (var _i = 0; _i < params.children.length; _i++) {\n var child = params.children[_i];\n bottom -= child.type === \"kern\" ? child.size : child.elem.height + child.elem.depth;\n }\n\n depth = bottom;\n } else if (params.positionType === \"bottom\") {\n depth = -params.positionData;\n } else {\n var firstChild = params.children[0];\n\n if (firstChild.type !== \"elem\") {\n throw new Error('First child must have type \"elem\".');\n }\n\n if (params.positionType === \"shift\") {\n depth = -firstChild.elem.depth - params.positionData;\n } else if (params.positionType === \"firstBaseline\") {\n depth = -firstChild.elem.depth;\n } else {\n throw new Error(\"Invalid positionType \" + params.positionType + \".\");\n }\n }\n\n return {\n children: params.children,\n depth\n };\n};\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * See VListParam documentation above.\n */\n\n\nvar makeVList = function makeVList(params, options) {\n var {\n children,\n depth\n } = getVListChildrenAndDepth(params); // Create a strut that is taller than any list item. The strut is added to\n // each item, where it will determine the item's baseline. Since it has\n // `overflow:hidden`, the strut's top edge will sit on the item's line box's\n // top edge and the strut's bottom edge will sit on the item's baseline,\n // with no additional line-height spacing. This allows the item baseline to\n // be positioned precisely without worrying about font ascent and\n // line-height.\n\n var pstrutSize = 0;\n\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.type === \"elem\") {\n var elem = child.elem;\n pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height);\n }\n }\n\n pstrutSize += 2;\n var pstrut = makeSpan$2([\"pstrut\"], []);\n pstrut.style.height = makeEm(pstrutSize); // Create a new list of actual children at the correct offsets\n\n var realChildren = [];\n var minPos = depth;\n var maxPos = depth;\n var currPos = depth;\n\n for (var _i2 = 0; _i2 < children.length; _i2++) {\n var _child = children[_i2];\n\n if (_child.type === \"kern\") {\n currPos += _child.size;\n } else {\n var _elem = _child.elem;\n var classes = _child.wrapperClasses || [];\n var style = _child.wrapperStyle || {};\n var childWrap = makeSpan$2(classes, [pstrut, _elem], undefined, style);\n childWrap.style.top = makeEm(-pstrutSize - currPos - _elem.depth);\n\n if (_child.marginLeft) {\n childWrap.style.marginLeft = _child.marginLeft;\n }\n\n if (_child.marginRight) {\n childWrap.style.marginRight = _child.marginRight;\n }\n\n realChildren.push(childWrap);\n currPos += _elem.height + _elem.depth;\n }\n\n minPos = Math.min(minPos, currPos);\n maxPos = Math.max(maxPos, currPos);\n } // The vlist contents go in a table-cell with `vertical-align:bottom`.\n // This cell's bottom edge will determine the containing table's baseline\n // without overly expanding the containing line-box.\n\n\n var vlist = makeSpan$2([\"vlist\"], realChildren);\n vlist.style.height = makeEm(maxPos); // A second row is used if necessary to represent the vlist's depth.\n\n var rows;\n\n if (minPos < 0) {\n // We will define depth in an empty span with display: table-cell.\n // It should render with the height that we define. But Chrome, in\n // contenteditable mode only, treats that span as if it contains some\n // text content. And that min-height over-rides our desired height.\n // So we put another empty span inside the depth strut span.\n var emptySpan = makeSpan$2([], []);\n var depthStrut = makeSpan$2([\"vlist\"], [emptySpan]);\n depthStrut.style.height = makeEm(-minPos); // Safari wants the first row to have inline content; otherwise it\n // puts the bottom of the *second* row on the baseline.\n\n var topStrut = makeSpan$2([\"vlist-s\"], [new SymbolNode(\"\\u200b\")]);\n rows = [makeSpan$2([\"vlist-r\"], [vlist, topStrut]), makeSpan$2([\"vlist-r\"], [depthStrut])];\n } else {\n rows = [makeSpan$2([\"vlist-r\"], [vlist])];\n }\n\n var vtable = makeSpan$2([\"vlist-t\"], rows);\n\n if (rows.length === 2) {\n vtable.classes.push(\"vlist-t2\");\n }\n\n vtable.height = maxPos;\n vtable.depth = -minPos;\n return vtable;\n}; // Glue is a concept from TeX which is a flexible space between elements in\n// either a vertical or horizontal list. In KaTeX, at least for now, it's\n// static space between elements in a horizontal layout.\n\n\nvar makeGlue = (measurement, options) => {\n // Make an empty span for the space\n var rule = makeSpan$2([\"mspace\"], [], options);\n var size = calculateSize(measurement, options);\n rule.style.marginRight = makeEm(size);\n return rule;\n}; // Takes font options, and returns the appropriate fontLookup name\n\n\nvar retrieveTextFontName = function retrieveTextFontName(fontFamily, fontWeight, fontShape) {\n var baseFontName = \"\";\n\n switch (fontFamily) {\n case \"amsrm\":\n baseFontName = \"AMS\";\n break;\n\n case \"textrm\":\n baseFontName = \"Main\";\n break;\n\n case \"textsf\":\n baseFontName = \"SansSerif\";\n break;\n\n case \"texttt\":\n baseFontName = \"Typewriter\";\n break;\n\n default:\n baseFontName = fontFamily;\n // use fonts added by a plugin\n }\n\n var fontStylesName;\n\n if (fontWeight === \"textbf\" && fontShape === \"textit\") {\n fontStylesName = \"BoldItalic\";\n } else if (fontWeight === \"textbf\") {\n fontStylesName = \"Bold\";\n } else if (fontWeight === \"textit\") {\n fontStylesName = \"Italic\";\n } else {\n fontStylesName = \"Regular\";\n }\n\n return baseFontName + \"-\" + fontStylesName;\n};\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\n\n\nvar fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\"\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\"\n },\n \"textit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathnormal\": {\n variant: \"italic\",\n fontName: \"Math-Italic\"\n },\n // \"boldsymbol\" is missing because they require the use of multiple fonts:\n // Math-BoldItalic and Main-Bold. This is handled by a special case in\n // makeOrd which ends up calling boldsymbol.\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\"\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\"\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\"\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\"\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\"\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\"\n }\n};\nvar svgData = {\n // path, width, height\n vec: [\"vec\", 0.471, 0.714],\n // values from the font glyph\n oiintSize1: [\"oiintSize1\", 0.957, 0.499],\n // oval to overlay the integrand\n oiintSize2: [\"oiintSize2\", 1.472, 0.659],\n oiiintSize1: [\"oiiintSize1\", 1.304, 0.499],\n oiiintSize2: [\"oiiintSize2\", 1.98, 0.659]\n};\n\nvar staticSvg = function staticSvg(value, options) {\n // Create a span with inline SVG for the element.\n var [pathName, width, height] = svgData[value];\n var path = new PathNode(pathName);\n var svgNode = new SvgNode([path], {\n \"width\": makeEm(width),\n \"height\": makeEm(height),\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + makeEm(width),\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + 1000 * height,\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n var span = makeSvgSpan([\"overlay\"], [svgNode], options);\n span.height = height;\n span.style.height = makeEm(height);\n span.style.width = makeEm(width);\n return span;\n};\n\nvar buildCommon = {\n fontMap,\n makeSymbol,\n mathsym,\n makeSpan: makeSpan$2,\n makeSvgSpan,\n makeLineSpan,\n makeAnchor,\n makeFragment,\n wrapFragment,\n makeVList,\n makeOrd,\n makeGlue,\n staticSvg,\n svgData,\n tryCombineChars\n};\n\n/**\n * Describes spaces between different classes of atoms.\n */\nvar thinspace = {\n number: 3,\n unit: \"mu\"\n};\nvar mediumspace = {\n number: 4,\n unit: \"mu\"\n};\nvar thickspace = {\n number: 5,\n unit: \"mu\"\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n\n// Spacing relationships for display and text styles\nvar spacings = {\n mord: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n minner: thinspace\n },\n mbin: {\n mord: mediumspace,\n mop: mediumspace,\n mopen: mediumspace,\n minner: mediumspace\n },\n mrel: {\n mord: thickspace,\n mop: thickspace,\n mopen: thickspace,\n minner: thickspace\n },\n mopen: {},\n mclose: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mpunct: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n mopen: thinspace,\n mclose: thinspace,\n mpunct: thinspace,\n minner: thinspace\n },\n minner: {\n mord: thinspace,\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n mopen: thinspace,\n mpunct: thinspace,\n minner: thinspace\n }\n}; // Spacing relationships for script and scriptscript styles\n\nvar tightSpacings = {\n mord: {\n mop: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace\n },\n mbin: {},\n mrel: {},\n mopen: {},\n mclose: {\n mop: thinspace\n },\n mpunct: {},\n minner: {\n mop: thinspace\n }\n};\n\n/** Context provided to function handlers for error messages. */\n// Note: reverse the order of the return type union will cause a flow error.\n// See https://github.com/facebook/flow/issues/3663.\n// More general version of `HtmlBuilder` for nodes (e.g. \\sum, accent types)\n// whose presence impacts super/subscripting. In this case, ParseNode<\"supsub\">\n// delegates its HTML building to the HtmlBuilder corresponding to these nodes.\n\n/**\n * Final function spec for use at parse time.\n * This is almost identical to `FunctionPropSpec`, except it\n * 1. includes the function handler, and\n * 2. requires all arguments except argTypes.\n * It is generated by `defineFunction()` below.\n */\n\n/**\n * All registered functions.\n * `functions.js` just exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary.\n */\nvar _functions = {};\n/**\n * All HTML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nvar _htmlGroupBuilders = {};\n/**\n * All MathML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nvar _mathmlGroupBuilders = {};\nfunction defineFunction(_ref) {\n var {\n type,\n names,\n props,\n handler,\n htmlBuilder,\n mathmlBuilder\n } = _ref;\n // Set default values of functions\n var data = {\n type,\n numArgs: props.numArgs,\n argTypes: props.argTypes,\n allowedInArgument: !!props.allowedInArgument,\n allowedInText: !!props.allowedInText,\n allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath,\n numOptionalArgs: props.numOptionalArgs || 0,\n infix: !!props.infix,\n primitive: !!props.primitive,\n handler: handler\n };\n\n for (var i = 0; i < names.length; ++i) {\n _functions[names[i]] = data;\n }\n\n if (type) {\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n }\n}\n/**\n * Use this to register only the HTML and MathML builders for a function (e.g.\n * if the function's ParseNode is generated in Parser.js rather than via a\n * stand-alone handler provided to `defineFunction`).\n */\n\nfunction defineFunctionBuilders(_ref2) {\n var {\n type,\n htmlBuilder,\n mathmlBuilder\n } = _ref2;\n defineFunction({\n type,\n names: [],\n props: {\n numArgs: 0\n },\n\n handler() {\n throw new Error('Should never be called.');\n },\n\n htmlBuilder,\n mathmlBuilder\n });\n}\nvar normalizeArgument = function normalizeArgument(arg) {\n return arg.type === \"ordgroup\" && arg.body.length === 1 ? arg.body[0] : arg;\n}; // Since the corresponding buildHTML/buildMathML function expects a\n// list of elements, we normalize for different kinds of arguments\n\nvar ordargument = function ordargument(arg) {\n return arg.type === \"ordgroup\" ? arg.body : [arg];\n};\n\n/**\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupBuilders functions\n * are called, to produce a final HTML tree.\n */\nvar makeSpan$1 = buildCommon.makeSpan; // Binary atoms (first class `mbin`) change into ordinary atoms (`mord`)\n// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6,\n// and the text before Rule 19.\n\nvar binLeftCanceller = [\"leftmost\", \"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"];\nvar binRightCanceller = [\"rightmost\", \"mrel\", \"mclose\", \"mpunct\"];\nvar styleMap$1 = {\n \"display\": Style$1.DISPLAY,\n \"text\": Style$1.TEXT,\n \"script\": Style$1.SCRIPT,\n \"scriptscript\": Style$1.SCRIPTSCRIPT\n};\nvar DomEnum = {\n mord: \"mord\",\n mop: \"mop\",\n mbin: \"mbin\",\n mrel: \"mrel\",\n mopen: \"mopen\",\n mclose: \"mclose\",\n mpunct: \"mpunct\",\n minner: \"minner\"\n};\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. documentFragments are flattened into their contents, so the\n * returned list contains no fragments. `isRealGroup` is true if `expression`\n * is a real group (no atoms will be added on either side), as opposed to\n * a partial group (e.g. one created by \\color). `surrounding` is an array\n * consisting type of nodes that will be added to the left and right.\n */\nvar buildExpression$1 = function buildExpression(expression, options, isRealGroup, surrounding) {\n if (surrounding === void 0) {\n surrounding = [null, null];\n }\n\n // Parse expressions into `groups`.\n var groups = [];\n\n for (var i = 0; i < expression.length; i++) {\n var output = buildGroup$1(expression[i], options);\n\n if (output instanceof DocumentFragment) {\n var children = output.children;\n groups.push(...children);\n } else {\n groups.push(output);\n }\n } // Combine consecutive domTree.symbolNodes into a single symbolNode.\n\n\n buildCommon.tryCombineChars(groups); // If `expression` is a partial group, let the parent handle spacings\n // to avoid processing groups multiple times.\n\n if (!isRealGroup) {\n return groups;\n }\n\n var glueOptions = options;\n\n if (expression.length === 1) {\n var node = expression[0];\n\n if (node.type === \"sizing\") {\n glueOptions = options.havingSize(node.size);\n } else if (node.type === \"styling\") {\n glueOptions = options.havingStyle(styleMap$1[node.style]);\n }\n } // Dummy spans for determining spacings between surrounding atoms.\n // If `expression` has no atoms on the left or right, class \"leftmost\"\n // or \"rightmost\", respectively, is used to indicate it.\n\n\n var dummyPrev = makeSpan$1([surrounding[0] || \"leftmost\"], [], options);\n var dummyNext = makeSpan$1([surrounding[1] || \"rightmost\"], [], options); // TODO: These code assumes that a node's math class is the first element\n // of its `classes` array. A later cleanup should ensure this, for\n // instance by changing the signature of `makeSpan`.\n // Before determining what spaces to insert, perform bin cancellation.\n // Binary operators change to ordinary symbols in some contexts.\n\n var isRoot = isRealGroup === \"root\";\n traverseNonSpaceNodes(groups, (node, prev) => {\n var prevType = prev.classes[0];\n var type = node.classes[0];\n\n if (prevType === \"mbin\" && utils.contains(binRightCanceller, type)) {\n prev.classes[0] = \"mord\";\n } else if (type === \"mbin\" && utils.contains(binLeftCanceller, prevType)) {\n node.classes[0] = \"mord\";\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n traverseNonSpaceNodes(groups, (node, prev) => {\n var prevType = getTypeOfDomTree(prev);\n var type = getTypeOfDomTree(node); // 'mtight' indicates that the node is script or scriptscript style.\n\n var space = prevType && type ? node.hasClass(\"mtight\") ? tightSpacings[prevType][type] : spacings[prevType][type] : null;\n\n if (space) {\n // Insert glue (spacing) after the `prev`.\n return buildCommon.makeGlue(space, glueOptions);\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n return groups;\n}; // Depth-first traverse non-space `nodes`, calling `callback` with the current and\n// previous node as arguments, optionally returning a node to insert after the\n// previous node. `prev` is an object with the previous node and `insertAfter`\n// function to insert after it. `next` is a node that will be added to the right.\n// Used for bin cancellation and inserting spacings.\n\nvar traverseNonSpaceNodes = function traverseNonSpaceNodes(nodes, callback, prev, next, isRoot) {\n if (next) {\n // temporarily append the right node, if exists\n nodes.push(next);\n }\n\n var i = 0;\n\n for (; i < nodes.length; i++) {\n var node = nodes[i];\n var partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n // Recursive DFS\n // $FlowFixMe: make nodes a $ReadOnlyArray by returning a new array\n traverseNonSpaceNodes(partialGroup.children, callback, prev, null, isRoot);\n continue;\n } // Ignore explicit spaces (e.g., \\;, \\,) when determining what implicit\n // spacing should go between atoms of different classes\n\n\n var nonspace = !node.hasClass(\"mspace\");\n\n if (nonspace) {\n var result = callback(node, prev.node);\n\n if (result) {\n if (prev.insertAfter) {\n prev.insertAfter(result);\n } else {\n // insert at front\n nodes.unshift(result);\n i++;\n }\n }\n }\n\n if (nonspace) {\n prev.node = node;\n } else if (isRoot && node.hasClass(\"newline\")) {\n prev.node = makeSpan$1([\"leftmost\"]); // treat like beginning of line\n }\n\n prev.insertAfter = (index => n => {\n nodes.splice(index + 1, 0, n);\n i++;\n })(i);\n }\n\n if (next) {\n nodes.pop();\n }\n}; // Check if given node is a partial group, i.e., does not affect spacing around.\n\n\nvar checkPartialGroup = function checkPartialGroup(node) {\n if (node instanceof DocumentFragment || node instanceof Anchor || node instanceof Span && node.hasClass(\"enclosing\")) {\n return node;\n }\n\n return null;\n}; // Return the outermost node of a domTree.\n\n\nvar getOutermostNode = function getOutermostNode(node, side) {\n var partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n var children = partialGroup.children;\n\n if (children.length) {\n if (side === \"right\") {\n return getOutermostNode(children[children.length - 1], \"right\");\n } else if (side === \"left\") {\n return getOutermostNode(children[0], \"left\");\n }\n }\n }\n\n return node;\n}; // Return math atom class (mclass) of a domTree.\n// If `side` is given, it will get the type of the outermost node at given side.\n\n\nvar getTypeOfDomTree = function getTypeOfDomTree(node, side) {\n if (!node) {\n return null;\n }\n\n if (side) {\n node = getOutermostNode(node, side);\n } // This makes a lot of assumptions as to where the type of atom\n // appears. We should do a better job of enforcing this.\n\n\n return DomEnum[node.classes[0]] || null;\n};\nvar makeNullDelimiter = function makeNullDelimiter(options, classes) {\n var moreClasses = [\"nulldelimiter\"].concat(options.baseSizingClasses());\n return makeSpan$1(classes.concat(moreClasses));\n};\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\n\nvar buildGroup$1 = function buildGroup(group, options, baseOptions) {\n if (!group) {\n return makeSpan$1();\n }\n\n if (_htmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n var groupNode = _htmlGroupBuilders[group.type](group, options); // If the size changed between the parent and the current group, account\n // for that size difference.\n\n if (baseOptions && options.size !== baseOptions.size) {\n groupNode = makeSpan$1(options.sizingClasses(baseOptions), [groupNode], options);\n var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n return groupNode;\n } else {\n throw new ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Combine an array of HTML DOM nodes (e.g., the output of `buildExpression`)\n * into an unbreakable HTML node of class .base, with proper struts to\n * guarantee correct vertical extent. `buildHTML` calls this repeatedly to\n * make up the entire expression as a sequence of unbreakable units.\n */\n\nfunction buildHTMLUnbreakable(children, options) {\n // Compute height and depth of this chunk.\n var body = makeSpan$1([\"base\"], children, options); // Add strut, which ensures that the top of the HTML element falls at\n // the height of the expression, and the bottom of the HTML element\n // falls at the depth of the expression.\n\n var strut = makeSpan$1([\"strut\"]);\n strut.style.height = makeEm(body.height + body.depth);\n\n if (body.depth) {\n strut.style.verticalAlign = makeEm(-body.depth);\n }\n\n body.children.unshift(strut);\n return body;\n}\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\n\n\nfunction buildHTML(tree, options) {\n // Strip off outer tag wrapper for processing below.\n var tag = null;\n\n if (tree.length === 1 && tree[0].type === \"tag\") {\n tag = tree[0].tag;\n tree = tree[0].body;\n } // Build the expression contained in the tree\n\n\n var expression = buildExpression$1(tree, options, \"root\");\n var eqnNum;\n\n if (expression.length === 2 && expression[1].hasClass(\"tag\")) {\n // An environment with automatic equation numbers, e.g. {gather}.\n eqnNum = expression.pop();\n }\n\n var children = []; // Create one base node for each chunk between potential line breaks.\n // The TeXBook [p.173] says \"A formula will be broken only after a\n // relation symbol like $=$ or $<$ or $\\rightarrow$, or after a binary\n // operation symbol like $+$ or $-$ or $\\times$, where the relation or\n // binary operation is on the ``outer level'' of the formula (i.e., not\n // enclosed in {...} and not part of an \\over construction).\"\n\n var parts = [];\n\n for (var i = 0; i < expression.length; i++) {\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"mbin\") || expression[i].hasClass(\"mrel\") || expression[i].hasClass(\"allowbreak\")) {\n // Put any post-operator glue on same line as operator.\n // Watch for \\nobreak along the way, and stop at \\newline.\n var nobreak = false;\n\n while (i < expression.length - 1 && expression[i + 1].hasClass(\"mspace\") && !expression[i + 1].hasClass(\"newline\")) {\n i++;\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"nobreak\")) {\n nobreak = true;\n }\n } // Don't allow break if \\nobreak among the post-operator glue.\n\n\n if (!nobreak) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n }\n } else if (expression[i].hasClass(\"newline\")) {\n // Write the line except the newline\n parts.pop();\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n } // Put the newline at the top level\n\n\n children.push(expression[i]);\n }\n }\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n } // Now, if there was a tag, build it too and append it as a final child.\n\n\n var tagChild;\n\n if (tag) {\n tagChild = buildHTMLUnbreakable(buildExpression$1(tag, options, true));\n tagChild.classes = [\"tag\"];\n children.push(tagChild);\n } else if (eqnNum) {\n children.push(eqnNum);\n }\n\n var htmlNode = makeSpan$1([\"katex-html\"], children);\n htmlNode.setAttribute(\"aria-hidden\", \"true\"); // Adjust the strut of the tag to be the maximum height of all children\n // (the height of the enclosing htmlNode) for proper vertical alignment.\n\n if (tagChild) {\n var strut = tagChild.children[0];\n strut.style.height = makeEm(htmlNode.height + htmlNode.depth);\n\n if (htmlNode.depth) {\n strut.style.verticalAlign = makeEm(-htmlNode.depth);\n }\n }\n\n return htmlNode;\n}\n\n/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work similarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\nfunction newDocumentFragment(children) {\n return new DocumentFragment(children);\n}\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `<mo>` and `<mspace>` tags).\n */\n\nclass MathNode {\n constructor(type, children, classes) {\n this.type = void 0;\n this.attributes = void 0;\n this.children = void 0;\n this.classes = void 0;\n this.type = type;\n this.attributes = {};\n this.children = children || [];\n this.classes = classes || [];\n }\n /**\n * Sets an attribute on a MathML node. MathML depends on attributes to convey a\n * semantic content, so this is used heavily.\n */\n\n\n setAttribute(name, value) {\n this.attributes[name] = value;\n }\n /**\n * Gets an attribute on a MathML node.\n */\n\n\n getAttribute(name) {\n return this.attributes[name];\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n toNode() {\n var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", this.type);\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n if (this.classes.length > 0) {\n node.className = createClass(this.classes);\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n\n\n toMarkup() {\n var markup = \"<\" + this.type; // Add the attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\";\n markup += utils.escape(this.attributes[attr]);\n markup += \"\\\"\";\n }\n }\n\n if (this.classes.length > 0) {\n markup += \" class =\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</\" + this.type + \">\";\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText, but escaped.\n */\n\n\n toText() {\n return this.children.map(child => child.toText()).join(\"\");\n }\n\n}\n/**\n * This node represents a piece of text.\n */\n\nclass TextNode {\n constructor(text) {\n this.text = void 0;\n this.text = text;\n }\n /**\n * Converts the text node into a DOM text node.\n */\n\n\n toNode() {\n return document.createTextNode(this.text);\n }\n /**\n * Converts the text node into escaped HTML markup\n * (representing the text itself).\n */\n\n\n toMarkup() {\n return utils.escape(this.toText());\n }\n /**\n * Converts the text node into a string\n * (representing the text itself).\n */\n\n\n toText() {\n return this.text;\n }\n\n}\n/**\n * This node represents a space, but may render as <mspace.../> or as text,\n * depending on the width.\n */\n\nclass SpaceNode {\n /**\n * Create a Space node with width given in CSS ems.\n */\n constructor(width) {\n this.width = void 0;\n this.character = void 0;\n this.width = width; // See https://www.w3.org/TR/2000/WD-MathML2-20000328/chapter6.html\n // for a table of space-like characters. We use Unicode\n // representations instead of &LongNames; as it's not clear how to\n // make the latter via document.createTextNode.\n\n if (width >= 0.05555 && width <= 0.05556) {\n this.character = \"\\u200a\"; //  \n } else if (width >= 0.1666 && width <= 0.1667) {\n this.character = \"\\u2009\"; //  \n } else if (width >= 0.2222 && width <= 0.2223) {\n this.character = \"\\u2005\"; //  \n } else if (width >= 0.2777 && width <= 0.2778) {\n this.character = \"\\u2005\\u200a\"; //   \n } else if (width >= -0.05556 && width <= -0.05555) {\n this.character = \"\\u200a\\u2063\"; // ​\n } else if (width >= -0.1667 && width <= -0.1666) {\n this.character = \"\\u2009\\u2063\"; // ​\n } else if (width >= -0.2223 && width <= -0.2222) {\n this.character = \"\\u205f\\u2063\"; // ​\n } else if (width >= -0.2778 && width <= -0.2777) {\n this.character = \"\\u2005\\u2063\"; // ​\n } else {\n this.character = null;\n }\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n toNode() {\n if (this.character) {\n return document.createTextNode(this.character);\n } else {\n var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", \"mspace\");\n node.setAttribute(\"width\", makeEm(this.width));\n return node;\n }\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n\n\n toMarkup() {\n if (this.character) {\n return \"<mtext>\" + this.character + \"</mtext>\";\n } else {\n return \"<mspace width=\\\"\" + makeEm(this.width) + \"\\\"/>\";\n }\n }\n /**\n * Converts the math node into a string, similar to innerText.\n */\n\n\n toText() {\n if (this.character) {\n return this.character;\n } else {\n return \" \";\n }\n }\n\n}\n\nvar mathMLTree = {\n MathNode,\n TextNode,\n SpaceNode,\n newDocumentFragment\n};\n\n/**\n * This file converts a parse tree into a corresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function makeText(text, mode, options) {\n if (symbols[mode][text] && symbols[mode][text].replace && text.charCodeAt(0) !== 0xD835 && !(ligatures.hasOwnProperty(text) && options && (options.fontFamily && options.fontFamily.slice(4, 6) === \"tt\" || options.font && options.font.slice(4, 6) === \"tt\"))) {\n text = symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n/**\n * Wrap the given array of nodes in an <mrow> node if needed, i.e.,\n * unless the array has length 1. Always returns a single node.\n */\n\nvar makeRow = function makeRow(body) {\n if (body.length === 1) {\n return body[0];\n } else {\n return new mathMLTree.MathNode(\"mrow\", body);\n }\n};\n/**\n * Returns the math variant as a string or null if none is required.\n */\n\nvar getVariant = function getVariant(group, options) {\n // Handle \\text... font specifiers as best we can.\n // MathML has a limited list of allowable mathvariant specifiers; see\n // https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt\n if (options.fontFamily === \"texttt\") {\n return \"monospace\";\n } else if (options.fontFamily === \"textsf\") {\n if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"sans-serif-bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"sans-serif-italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold-sans-serif\";\n } else {\n return \"sans-serif\";\n }\n } else if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold\";\n }\n\n var font = options.font;\n\n if (!font || font === \"mathnormal\") {\n return null;\n }\n\n var mode = group.mode;\n\n if (font === \"mathit\") {\n return \"italic\";\n } else if (font === \"boldsymbol\") {\n return group.type === \"textord\" ? \"bold\" : \"bold-italic\";\n } else if (font === \"mathbf\") {\n return \"bold\";\n } else if (font === \"mathbb\") {\n return \"double-struck\";\n } else if (font === \"mathfrak\") {\n return \"fraktur\";\n } else if (font === \"mathscr\" || font === \"mathcal\") {\n // MathML makes no distinction between script and calligraphic\n return \"script\";\n } else if (font === \"mathsf\") {\n return \"sans-serif\";\n } else if (font === \"mathtt\") {\n return \"monospace\";\n }\n\n var text = group.text;\n\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], text)) {\n return null;\n }\n\n if (symbols[mode][text] && symbols[mode][text].replace) {\n text = symbols[mode][text].replace;\n }\n\n var fontName = buildCommon.fontMap[font].fontName;\n\n if (getCharacterMetrics(text, fontName, mode)) {\n return buildCommon.fontMap[font].variant;\n }\n\n return null;\n};\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. Also combine consecutive <mtext> outputs into a single\n * <mtext> tag.\n */\n\nvar buildExpression = function buildExpression(expression, options, isOrdgroup) {\n if (expression.length === 1) {\n var group = buildGroup(expression[0], options);\n\n if (isOrdgroup && group instanceof MathNode && group.type === \"mo\") {\n // When TeX writers want to suppress spacing on an operator,\n // they often put the operator by itself inside braces.\n group.setAttribute(\"lspace\", \"0em\");\n group.setAttribute(\"rspace\", \"0em\");\n }\n\n return [group];\n }\n\n var groups = [];\n var lastGroup;\n\n for (var i = 0; i < expression.length; i++) {\n var _group = buildGroup(expression[i], options);\n\n if (_group instanceof MathNode && lastGroup instanceof MathNode) {\n // Concatenate adjacent <mtext>s\n if (_group.type === 'mtext' && lastGroup.type === 'mtext' && _group.getAttribute('mathvariant') === lastGroup.getAttribute('mathvariant')) {\n lastGroup.children.push(..._group.children);\n continue; // Concatenate adjacent <mn>s\n } else if (_group.type === 'mn' && lastGroup.type === 'mn') {\n lastGroup.children.push(..._group.children);\n continue; // Concatenate <mn>...</mn> followed by <mi>.</mi>\n } else if (_group.type === 'mi' && _group.children.length === 1 && lastGroup.type === 'mn') {\n var child = _group.children[0];\n\n if (child instanceof TextNode && child.text === '.') {\n lastGroup.children.push(..._group.children);\n continue;\n }\n } else if (lastGroup.type === 'mi' && lastGroup.children.length === 1) {\n var lastChild = lastGroup.children[0];\n\n if (lastChild instanceof TextNode && lastChild.text === '\\u0338' && (_group.type === 'mo' || _group.type === 'mi' || _group.type === 'mn')) {\n var _child = _group.children[0];\n\n if (_child instanceof TextNode && _child.text.length > 0) {\n // Overlay with combining character long solidus\n _child.text = _child.text.slice(0, 1) + \"\\u0338\" + _child.text.slice(1);\n groups.pop();\n }\n }\n }\n }\n\n groups.push(_group);\n lastGroup = _group;\n }\n\n return groups;\n};\n/**\n * Equivalent to buildExpression, but wraps the elements in an <mrow>\n * if there's more than one. Returns a single node instead of an array.\n */\n\nvar buildExpressionRow = function buildExpressionRow(expression, options, isOrdgroup) {\n return makeRow(buildExpression(expression, options, isOrdgroup));\n};\n/**\n * Takes a group from the parser and calls the appropriate groupBuilders function\n * on it to produce a MathML node.\n */\n\nvar buildGroup = function buildGroup(group, options) {\n if (!group) {\n return new mathMLTree.MathNode(\"mrow\");\n }\n\n if (_mathmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n var result = _mathmlGroupBuilders[group.type](group, options); // $FlowFixMe\n\n return result;\n } else {\n throw new ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * <semantics> tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `<math>` inside it so\n * we can do appropriate styling.\n */\n\nfunction buildMathML(tree, texExpression, options, isDisplayMode, forMathmlOnly) {\n var expression = buildExpression(tree, options); // TODO: Make a pass thru the MathML similar to buildHTML.traverseNonSpaceNodes\n // and add spacing nodes. This is necessary only adjacent to math operators\n // like \\sin or \\lim or to subsup elements that contain math operators.\n // MathML takes care of the other spacing issues.\n // Wrap up the expression in an mrow so it is presented in the semantics\n // tag correctly, unless it's a single <mrow> or <mtable>.\n\n var wrapper;\n\n if (expression.length === 1 && expression[0] instanceof MathNode && utils.contains([\"mrow\", \"mtable\"], expression[0].type)) {\n wrapper = expression[0];\n } else {\n wrapper = new mathMLTree.MathNode(\"mrow\", expression);\n } // Build a TeX annotation of the source\n\n\n var annotation = new mathMLTree.MathNode(\"annotation\", [new mathMLTree.TextNode(texExpression)]);\n annotation.setAttribute(\"encoding\", \"application/x-tex\");\n var semantics = new mathMLTree.MathNode(\"semantics\", [wrapper, annotation]);\n var math = new mathMLTree.MathNode(\"math\", [semantics]);\n math.setAttribute(\"xmlns\", \"http://www.w3.org/1998/Math/MathML\");\n\n if (isDisplayMode) {\n math.setAttribute(\"display\", \"block\");\n } // You can't style <math> nodes, so we wrap the node in a span.\n // NOTE: The span class is not typed to have <math> nodes as children, and\n // we don't want to make the children type more generic since the children\n // of span are expected to have more fields in `buildHtml` contexts.\n\n\n var wrapperClass = forMathmlOnly ? \"katex\" : \"katex-mathml\"; // $FlowFixMe\n\n return buildCommon.makeSpan([wrapperClass], [math]);\n}\n\nvar optionsFromSettings = function optionsFromSettings(settings) {\n return new Options({\n style: settings.displayMode ? Style$1.DISPLAY : Style$1.TEXT,\n maxSize: settings.maxSize,\n minRuleThickness: settings.minRuleThickness\n });\n};\n\nvar displayWrap = function displayWrap(node, settings) {\n if (settings.displayMode) {\n var classes = [\"katex-display\"];\n\n if (settings.leqno) {\n classes.push(\"leqno\");\n }\n\n if (settings.fleqn) {\n classes.push(\"fleqn\");\n }\n\n node = buildCommon.makeSpan(classes, [node]);\n }\n\n return node;\n};\n\nvar buildTree = function buildTree(tree, expression, settings) {\n var options = optionsFromSettings(settings);\n var katexNode;\n\n if (settings.output === \"mathml\") {\n return buildMathML(tree, expression, options, settings.displayMode, true);\n } else if (settings.output === \"html\") {\n var htmlNode = buildHTML(tree, options);\n katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n } else {\n var mathMLNode = buildMathML(tree, expression, options, settings.displayMode, false);\n\n var _htmlNode = buildHTML(tree, options);\n\n katexNode = buildCommon.makeSpan([\"katex\"], [mathMLNode, _htmlNode]);\n }\n\n return displayWrap(katexNode, settings);\n};\nvar buildHTMLTree = function buildHTMLTree(tree, expression, settings) {\n var options = optionsFromSettings(settings);\n var htmlNode = buildHTML(tree, options);\n var katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n return displayWrap(katexNode, settings);\n};\n\n/**\n * This file provides support to buildMathML.js and buildHTML.js\n * for stretchy wide elements rendered from SVG files\n * and other CSS trickery.\n */\nvar stretchyCodePoint = {\n widehat: \"^\",\n widecheck: \"ˇ\",\n widetilde: \"~\",\n utilde: \"~\",\n overleftarrow: \"\\u2190\",\n underleftarrow: \"\\u2190\",\n xleftarrow: \"\\u2190\",\n overrightarrow: \"\\u2192\",\n underrightarrow: \"\\u2192\",\n xrightarrow: \"\\u2192\",\n underbrace: \"\\u23df\",\n overbrace: \"\\u23de\",\n overgroup: \"\\u23e0\",\n undergroup: \"\\u23e1\",\n overleftrightarrow: \"\\u2194\",\n underleftrightarrow: \"\\u2194\",\n xleftrightarrow: \"\\u2194\",\n Overrightarrow: \"\\u21d2\",\n xRightarrow: \"\\u21d2\",\n overleftharpoon: \"\\u21bc\",\n xleftharpoonup: \"\\u21bc\",\n overrightharpoon: \"\\u21c0\",\n xrightharpoonup: \"\\u21c0\",\n xLeftarrow: \"\\u21d0\",\n xLeftrightarrow: \"\\u21d4\",\n xhookleftarrow: \"\\u21a9\",\n xhookrightarrow: \"\\u21aa\",\n xmapsto: \"\\u21a6\",\n xrightharpoondown: \"\\u21c1\",\n xleftharpoondown: \"\\u21bd\",\n xrightleftharpoons: \"\\u21cc\",\n xleftrightharpoons: \"\\u21cb\",\n xtwoheadleftarrow: \"\\u219e\",\n xtwoheadrightarrow: \"\\u21a0\",\n xlongequal: \"=\",\n xtofrom: \"\\u21c4\",\n xrightleftarrows: \"\\u21c4\",\n xrightequilibrium: \"\\u21cc\",\n // Not a perfect match.\n xleftequilibrium: \"\\u21cb\",\n // None better available.\n \"\\\\cdrightarrow\": \"\\u2192\",\n \"\\\\cdleftarrow\": \"\\u2190\",\n \"\\\\cdlongequal\": \"=\"\n};\n\nvar mathMLnode = function mathMLnode(label) {\n var node = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(stretchyCodePoint[label.replace(/^\\\\/, '')])]);\n node.setAttribute(\"stretchy\", \"true\");\n return node;\n}; // Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts.\n// Copyright (c) 2009-2010, Design Science, Inc. (<www.mathjax.org>)\n// Copyright (c) 2014-2017 Khan Academy (<www.khanacademy.org>)\n// Licensed under the SIL Open Font License, Version 1.1.\n// See \\nhttp://scripts.sil.org/OFL\n// Very Long SVGs\n// Many of the KaTeX stretchy wide elements use a long SVG image and an\n// overflow: hidden tactic to achieve a stretchy image while avoiding\n// distortion of arrowheads or brace corners.\n// The SVG typically contains a very long (400 em) arrow.\n// The SVG is in a container span that has overflow: hidden, so the span\n// acts like a window that exposes only part of the SVG.\n// The SVG always has a longer, thinner aspect ratio than the container span.\n// After the SVG fills 100% of the height of the container span,\n// there is a long arrow shaft left over. That left-over shaft is not shown.\n// Instead, it is sliced off because the span's CSS has overflow: hidden.\n// Thus, the reader sees an arrow that matches the subject matter width\n// without distortion.\n// Some functions, such as \\cancel, need to vary their aspect ratio. These\n// functions do not get the overflow SVG treatment.\n// Second Brush Stroke\n// Low resolution monitors struggle to display images in fine detail.\n// So browsers apply anti-aliasing. A long straight arrow shaft therefore\n// will sometimes appear as if it has a blurred edge.\n// To mitigate this, these SVG files contain a second \"brush-stroke\" on the\n// arrow shafts. That is, a second long thin rectangular SVG path has been\n// written directly on top of each arrow shaft. This reinforcement causes\n// some of the screen pixels to display as black instead of the anti-aliased\n// gray pixel that a single path would generate. So we get arrow shafts\n// whose edges appear to be sharper.\n// In the katexImagesData object just below, the dimensions all\n// correspond to path geometry inside the relevant SVG.\n// For example, \\overrightarrow uses the same arrowhead as glyph U+2192\n// from the KaTeX Main font. The scaling factor is 1000.\n// That is, inside the font, that arrowhead is 522 units tall, which\n// corresponds to 0.522 em inside the document.\n\n\nvar katexImagesData = {\n // path(s), minWidth, height, align\n overrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n overleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n underrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n underleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n xrightarrow: [[\"rightarrow\"], 1.469, 522, \"xMaxYMin\"],\n \"\\\\cdrightarrow\": [[\"rightarrow\"], 3.0, 522, \"xMaxYMin\"],\n // CD minwwidth2.5pc\n xleftarrow: [[\"leftarrow\"], 1.469, 522, \"xMinYMin\"],\n \"\\\\cdleftarrow\": [[\"leftarrow\"], 3.0, 522, \"xMinYMin\"],\n Overrightarrow: [[\"doublerightarrow\"], 0.888, 560, \"xMaxYMin\"],\n xRightarrow: [[\"doublerightarrow\"], 1.526, 560, \"xMaxYMin\"],\n xLeftarrow: [[\"doubleleftarrow\"], 1.526, 560, \"xMinYMin\"],\n overleftharpoon: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoonup: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoondown: [[\"leftharpoondown\"], 0.888, 522, \"xMinYMin\"],\n overrightharpoon: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoonup: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoondown: [[\"rightharpoondown\"], 0.888, 522, \"xMaxYMin\"],\n xlongequal: [[\"longequal\"], 0.888, 334, \"xMinYMin\"],\n \"\\\\cdlongequal\": [[\"longequal\"], 3.0, 334, \"xMinYMin\"],\n xtwoheadleftarrow: [[\"twoheadleftarrow\"], 0.888, 334, \"xMinYMin\"],\n xtwoheadrightarrow: [[\"twoheadrightarrow\"], 0.888, 334, \"xMaxYMin\"],\n overleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n overbrace: [[\"leftbrace\", \"midbrace\", \"rightbrace\"], 1.6, 548],\n underbrace: [[\"leftbraceunder\", \"midbraceunder\", \"rightbraceunder\"], 1.6, 548],\n underleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n xleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 1.75, 522],\n xLeftrightarrow: [[\"doubleleftarrow\", \"doublerightarrow\"], 1.75, 560],\n xrightleftharpoons: [[\"leftharpoondownplus\", \"rightharpoonplus\"], 1.75, 716],\n xleftrightharpoons: [[\"leftharpoonplus\", \"rightharpoondownplus\"], 1.75, 716],\n xhookleftarrow: [[\"leftarrow\", \"righthook\"], 1.08, 522],\n xhookrightarrow: [[\"lefthook\", \"rightarrow\"], 1.08, 522],\n overlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n underlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n overgroup: [[\"leftgroup\", \"rightgroup\"], 0.888, 342],\n undergroup: [[\"leftgroupunder\", \"rightgroupunder\"], 0.888, 342],\n xmapsto: [[\"leftmapsto\", \"rightarrow\"], 1.5, 522],\n xtofrom: [[\"leftToFrom\", \"rightToFrom\"], 1.75, 528],\n // The next three arrows are from the mhchem package.\n // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the\n // document as \\xrightarrow or \\xrightleftharpoons. Those have\n // min-length = 1.75em, so we set min-length on these next three to match.\n xrightleftarrows: [[\"baraboveleftarrow\", \"rightarrowabovebar\"], 1.75, 901],\n xrightequilibrium: [[\"baraboveshortleftharpoon\", \"rightharpoonaboveshortbar\"], 1.75, 716],\n xleftequilibrium: [[\"shortbaraboveleftharpoon\", \"shortrightharpoonabovebar\"], 1.75, 716]\n};\n\nvar groupLength = function groupLength(arg) {\n if (arg.type === \"ordgroup\") {\n return arg.body.length;\n } else {\n return 1;\n }\n};\n\nvar svgSpan = function svgSpan(group, options) {\n // Create a span with inline SVG for the element.\n function buildSvgSpan_() {\n var viewBoxWidth = 400000; // default\n\n var label = group.label.slice(1);\n\n if (utils.contains([\"widehat\", \"widecheck\", \"widetilde\", \"utilde\"], label)) {\n // Each type in the `if` statement corresponds to one of the ParseNode\n // types below. This narrowing is required to access `grp.base`.\n // $FlowFixMe\n var grp = group; // There are four SVG images available for each function.\n // Choose a taller image when there are more characters.\n\n var numChars = groupLength(grp.base);\n var viewBoxHeight;\n var pathName;\n\n var _height;\n\n if (numChars > 5) {\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxHeight = 420;\n viewBoxWidth = 2364;\n _height = 0.42;\n pathName = label + \"4\";\n } else {\n viewBoxHeight = 312;\n viewBoxWidth = 2340;\n _height = 0.34;\n pathName = \"tilde4\";\n }\n } else {\n var imgIndex = [1, 1, 2, 2, 3, 3][numChars];\n\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex];\n viewBoxHeight = [0, 239, 300, 360, 420][imgIndex];\n _height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex];\n pathName = label + imgIndex;\n } else {\n viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex];\n viewBoxHeight = [0, 260, 286, 306, 312][imgIndex];\n _height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex];\n pathName = \"tilde\" + imgIndex;\n }\n }\n\n var path = new PathNode(pathName);\n var svgNode = new SvgNode([path], {\n \"width\": \"100%\",\n \"height\": makeEm(_height),\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight,\n \"preserveAspectRatio\": \"none\"\n });\n return {\n span: buildCommon.makeSvgSpan([], [svgNode], options),\n minWidth: 0,\n height: _height\n };\n } else {\n var spans = [];\n var data = katexImagesData[label];\n var [paths, _minWidth, _viewBoxHeight] = data;\n\n var _height2 = _viewBoxHeight / 1000;\n\n var numSvgChildren = paths.length;\n var widthClasses;\n var aligns;\n\n if (numSvgChildren === 1) {\n // $FlowFixMe: All these cases must be of the 4-tuple type.\n var align1 = data[3];\n widthClasses = [\"hide-tail\"];\n aligns = [align1];\n } else if (numSvgChildren === 2) {\n widthClasses = [\"halfarrow-left\", \"halfarrow-right\"];\n aligns = [\"xMinYMin\", \"xMaxYMin\"];\n } else if (numSvgChildren === 3) {\n widthClasses = [\"brace-left\", \"brace-center\", \"brace-right\"];\n aligns = [\"xMinYMin\", \"xMidYMin\", \"xMaxYMin\"];\n } else {\n throw new Error(\"Correct katexImagesData or update code here to support\\n \" + numSvgChildren + \" children.\");\n }\n\n for (var i = 0; i < numSvgChildren; i++) {\n var _path = new PathNode(paths[i]);\n\n var _svgNode = new SvgNode([_path], {\n \"width\": \"400em\",\n \"height\": makeEm(_height2),\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + _viewBoxHeight,\n \"preserveAspectRatio\": aligns[i] + \" slice\"\n });\n\n var _span = buildCommon.makeSvgSpan([widthClasses[i]], [_svgNode], options);\n\n if (numSvgChildren === 1) {\n return {\n span: _span,\n minWidth: _minWidth,\n height: _height2\n };\n } else {\n _span.style.height = makeEm(_height2);\n spans.push(_span);\n }\n }\n\n return {\n span: buildCommon.makeSpan([\"stretchy\"], spans, options),\n minWidth: _minWidth,\n height: _height2\n };\n }\n } // buildSvgSpan_()\n\n\n var {\n span,\n minWidth,\n height\n } = buildSvgSpan_(); // Note that we are returning span.depth = 0.\n // Any adjustments relative to the baseline must be done in buildHTML.\n\n span.height = height;\n span.style.height = makeEm(height);\n\n if (minWidth > 0) {\n span.style.minWidth = makeEm(minWidth);\n }\n\n return span;\n};\n\nvar encloseSpan = function encloseSpan(inner, label, topPad, bottomPad, options) {\n // Return an image span for \\cancel, \\bcancel, \\xcancel, \\fbox, or \\angl\n var img;\n var totalHeight = inner.height + inner.depth + topPad + bottomPad;\n\n if (/fbox|color|angl/.test(label)) {\n img = buildCommon.makeSpan([\"stretchy\", label], [], options);\n\n if (label === \"fbox\") {\n var color = options.color && options.getColor();\n\n if (color) {\n img.style.borderColor = color;\n }\n }\n } else {\n // \\cancel, \\bcancel, or \\xcancel\n // Since \\cancel's SVG is inline and it omits the viewBox attribute,\n // its stroke-width will not vary with span area.\n var lines = [];\n\n if (/^[bx]cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"0\",\n \"x2\": \"100%\",\n \"y2\": \"100%\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n if (/^x?cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"0\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n var svgNode = new SvgNode(lines, {\n \"width\": \"100%\",\n \"height\": makeEm(totalHeight)\n });\n img = buildCommon.makeSvgSpan([], [svgNode], options);\n }\n\n img.height = totalHeight;\n img.style.height = makeEm(totalHeight);\n return img;\n};\n\nvar stretchy = {\n encloseSpan,\n mathMLnode,\n svgSpan\n};\n\n/**\n * Asserts that the node is of the given type and returns it with stricter\n * typing. Throws if the node's type does not match.\n */\nfunction assertNodeType(node, type) {\n if (!node || node.type !== type) {\n throw new Error(\"Expected node of type \" + type + \", but got \" + (node ? \"node of type \" + node.type : String(node)));\n } // $FlowFixMe, >=0.125\n\n\n return node;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction assertSymbolNodeType(node) {\n var typedNode = checkSymbolNodeType(node);\n\n if (!typedNode) {\n throw new Error(\"Expected node of symbol group type, but got \" + (node ? \"node of type \" + node.type : String(node)));\n }\n\n return typedNode;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction checkSymbolNodeType(node) {\n if (node && (node.type === \"atom\" || NON_ATOMS.hasOwnProperty(node.type))) {\n // $FlowFixMe\n return node;\n }\n\n return null;\n}\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"accent\", but\n// also \"supsub\" since an accent can affect super/subscripting.\nvar htmlBuilder$a = (grp, options) => {\n // Accents are handled in the TeXbook pg. 443, rule 12.\n var base;\n var group;\n var supSubGroup;\n\n if (grp && grp.type === \"supsub\") {\n // If our base is a character box, and we have superscripts and\n // subscripts, the supsub will defer to us. In particular, we want\n // to attach the superscripts and subscripts to the inner body (so\n // that the position of the superscripts and subscripts won't be\n // affected by the height of the accent). We accomplish this by\n // sticking the base of the accent into the base of the supsub, and\n // rendering that, while keeping track of where the accent is.\n // The real accent group is the base of the supsub group\n group = assertNodeType(grp.base, \"accent\"); // The character box is the base of the accent group\n\n base = group.base; // Stick the character box into the base of the supsub group\n\n grp.base = base; // Rerender the supsub group with its new base, and store that\n // result.\n\n supSubGroup = assertSpan(buildGroup$1(grp, options)); // reset original base\n\n grp.base = group;\n } else {\n group = assertNodeType(grp, \"accent\");\n base = group.base;\n } // Build the base group\n\n\n var body = buildGroup$1(base, options.havingCrampedStyle()); // Does the accent need to shift for the skew of a character?\n\n var mustShift = group.isShifty && utils.isCharacterBox(base); // Calculate the skew of the accent. This is based on the line \"If the\n // nucleus is not a single character, let s = 0; otherwise set s to the\n // kern amount for the nucleus followed by the \\skewchar of its font.\"\n // Note that our skew metrics are just the kern between each character\n // and the skewchar.\n\n var skew = 0;\n\n if (mustShift) {\n // If the base is a character box, then we want the skew of the\n // innermost character. To do that, we find the innermost character:\n var baseChar = utils.getBaseElem(base); // Then, we render its group to get the symbol inside it\n\n var baseGroup = buildGroup$1(baseChar, options.havingCrampedStyle()); // Finally, we pull the skew off of the symbol.\n\n skew = assertSymbolDomNode(baseGroup).skew; // Note that we now throw away baseGroup, because the layers we\n // removed with getBaseElem might contain things like \\color which\n // we can't get rid of.\n // TODO(emily): Find a better way to get the skew\n }\n\n var accentBelow = group.label === \"\\\\c\"; // calculate the amount of space between the body and the accent\n\n var clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options.fontMetrics().xHeight); // Build the accent\n\n var accentBody;\n\n if (!group.isStretchy) {\n var accent;\n var width;\n\n if (group.label === \"\\\\vec\") {\n // Before version 0.9, \\vec used the combining font glyph U+20D7.\n // But browsers, especially Safari, are not consistent in how they\n // render combining characters when not preceded by a character.\n // So now we use an SVG.\n // If Safari reforms, we should consider reverting to the glyph.\n accent = buildCommon.staticSvg(\"vec\", options);\n width = buildCommon.svgData.vec[1];\n } else {\n accent = buildCommon.makeOrd({\n mode: group.mode,\n text: group.label\n }, options, \"textord\");\n accent = assertSymbolDomNode(accent); // Remove the italic correction of the accent, because it only serves to\n // shift the accent over to a place we don't want.\n\n accent.italic = 0;\n width = accent.width;\n\n if (accentBelow) {\n clearance += accent.depth;\n }\n }\n\n accentBody = buildCommon.makeSpan([\"accent-body\"], [accent]); // \"Full\" accents expand the width of the resulting symbol to be\n // at least the width of the accent, and overlap directly onto the\n // character without any vertical offset.\n\n var accentFull = group.label === \"\\\\textcircled\";\n\n if (accentFull) {\n accentBody.classes.push('accent-full');\n clearance = body.height;\n } // Shift the accent over by the skew.\n\n\n var left = skew; // CSS defines `.katex .accent .accent-body:not(.accent-full) { width: 0 }`\n // so that the accent doesn't contribute to the bounding box.\n // We need to shift the character by its width (effectively half\n // its width) to compensate.\n\n if (!accentFull) {\n left -= width / 2;\n }\n\n accentBody.style.left = makeEm(left); // \\textcircled uses the \\bigcirc glyph, so it needs some\n // vertical adjustment to match LaTeX.\n\n if (group.label === \"\\\\textcircled\") {\n accentBody.style.top = \".2em\";\n }\n\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: -clearance\n }, {\n type: \"elem\",\n elem: accentBody\n }]\n }, options);\n } else {\n accentBody = stretchy.svgSpan(group, options);\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"],\n wrapperStyle: skew > 0 ? {\n width: \"calc(100% - \" + makeEm(2 * skew) + \")\",\n marginLeft: makeEm(2 * skew)\n } : undefined\n }]\n }, options);\n }\n\n var accentWrap = buildCommon.makeSpan([\"mord\", \"accent\"], [accentBody], options);\n\n if (supSubGroup) {\n // Here, we replace the \"base\" child of the supsub with our newly\n // generated accent.\n supSubGroup.children[0] = accentWrap; // Since we don't rerun the height calculation after replacing the\n // accent, we manually recalculate height.\n\n supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height); // Accents should always be ords, even when their innards are not.\n\n supSubGroup.classes[0] = \"mord\";\n return supSubGroup;\n } else {\n return accentWrap;\n }\n};\n\nvar mathmlBuilder$9 = (group, options) => {\n var accentNode = group.isStretchy ? stretchy.mathMLnode(group.label) : new mathMLTree.MathNode(\"mo\", [makeText(group.label, group.mode)]);\n var node = new mathMLTree.MathNode(\"mover\", [buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n};\n\nvar NON_STRETCHY_ACCENT_REGEX = new RegExp([\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\"].map(accent => \"\\\\\" + accent).join(\"|\")); // Accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\", \"\\\\widecheck\", \"\\\\widehat\", \"\\\\widetilde\", \"\\\\overrightarrow\", \"\\\\overleftarrow\", \"\\\\Overrightarrow\", \"\\\\overleftrightarrow\", \"\\\\overgroup\", \"\\\\overlinesegment\", \"\\\\overleftharpoon\", \"\\\\overrightharpoon\"],\n props: {\n numArgs: 1\n },\n handler: (context, args) => {\n var base = normalizeArgument(args[0]);\n var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);\n var isShifty = !isStretchy || context.funcName === \"\\\\widehat\" || context.funcName === \"\\\\widetilde\" || context.funcName === \"\\\\widecheck\";\n return {\n type: \"accent\",\n mode: context.parser.mode,\n label: context.funcName,\n isStretchy: isStretchy,\n isShifty: isShifty,\n base: base\n };\n },\n htmlBuilder: htmlBuilder$a,\n mathmlBuilder: mathmlBuilder$9\n}); // Text-mode accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\'\", \"\\\\`\", \"\\\\^\", \"\\\\~\", \"\\\\=\", \"\\\\u\", \"\\\\.\", '\\\\\"', \"\\\\c\", \"\\\\r\", \"\\\\H\", \"\\\\v\", \"\\\\textcircled\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n allowedInMath: true,\n // unless in strict mode\n argTypes: [\"primitive\"]\n },\n handler: (context, args) => {\n var base = args[0];\n var mode = context.parser.mode;\n\n if (mode === \"math\") {\n context.parser.settings.reportNonstrict(\"mathVsTextAccents\", \"LaTeX's accent \" + context.funcName + \" works only in text mode\");\n mode = \"text\";\n }\n\n return {\n type: \"accent\",\n mode: mode,\n label: context.funcName,\n isStretchy: false,\n isShifty: true,\n base: base\n };\n },\n htmlBuilder: htmlBuilder$a,\n mathmlBuilder: mathmlBuilder$9\n});\n\n// Horizontal overlap functions\ndefineFunction({\n type: \"accentUnder\",\n names: [\"\\\\underleftarrow\", \"\\\\underrightarrow\", \"\\\\underleftrightarrow\", \"\\\\undergroup\", \"\\\\underlinesegment\", \"\\\\utilde\"],\n props: {\n numArgs: 1\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var base = args[0];\n return {\n type: \"accentUnder\",\n mode: parser.mode,\n label: funcName,\n base: base\n };\n },\n htmlBuilder: (group, options) => {\n // Treat under accents much like underlines.\n var innerGroup = buildGroup$1(group.base, options);\n var accentBody = stretchy.svgSpan(group, options);\n var kern = group.label === \"\\\\utilde\" ? 0.12 : 0; // Generate the vlist, with the appropriate kerns\n\n var vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: kern\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"accentunder\"], [vlist], options);\n },\n mathmlBuilder: (group, options) => {\n var accentNode = stretchy.mathMLnode(group.label);\n var node = new mathMLTree.MathNode(\"munder\", [buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n});\n\n// Helper function\nvar paddedNode = group => {\n var node = new mathMLTree.MathNode(\"mpadded\", group ? [group] : []);\n node.setAttribute(\"width\", \"+0.6em\");\n node.setAttribute(\"lspace\", \"0.3em\");\n return node;\n}; // Stretchy arrows with an optional argument\n\n\ndefineFunction({\n type: \"xArrow\",\n names: [\"\\\\xleftarrow\", \"\\\\xrightarrow\", \"\\\\xLeftarrow\", \"\\\\xRightarrow\", \"\\\\xleftrightarrow\", \"\\\\xLeftrightarrow\", \"\\\\xhookleftarrow\", \"\\\\xhookrightarrow\", \"\\\\xmapsto\", \"\\\\xrightharpoondown\", \"\\\\xrightharpoonup\", \"\\\\xleftharpoondown\", \"\\\\xleftharpoonup\", \"\\\\xrightleftharpoons\", \"\\\\xleftrightharpoons\", \"\\\\xlongequal\", \"\\\\xtwoheadrightarrow\", \"\\\\xtwoheadleftarrow\", \"\\\\xtofrom\", // The next 3 functions are here to support the mhchem extension.\n // Direct use of these functions is discouraged and may break someday.\n \"\\\\xrightleftarrows\", \"\\\\xrightequilibrium\", \"\\\\xleftequilibrium\", // The next 3 functions are here only to support the {CD} environment.\n \"\\\\\\\\cdrightarrow\", \"\\\\\\\\cdleftarrow\", \"\\\\\\\\cdlongequal\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser,\n funcName\n } = _ref;\n return {\n type: \"xArrow\",\n mode: parser.mode,\n label: funcName,\n body: args[0],\n below: optArgs[0]\n };\n },\n\n // Flow is unable to correctly infer the type of `group`, even though it's\n // unambiguously determined from the passed-in `type` above.\n htmlBuilder(group, options) {\n var style = options.style; // Build the argument groups in the appropriate style.\n // Ref: amsmath.dtx: \\hbox{$\\scriptstyle\\mkern#3mu{#6}\\mkern#4mu$}%\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n var newOptions = options.havingStyle(style.sup());\n var upperGroup = buildCommon.wrapFragment(buildGroup$1(group.body, newOptions, options), options);\n var arrowPrefix = group.label.slice(0, 2) === \"\\\\x\" ? \"x\" : \"cd\";\n upperGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n var lowerGroup;\n\n if (group.below) {\n // Build the lower group\n newOptions = options.havingStyle(style.sub());\n lowerGroup = buildCommon.wrapFragment(buildGroup$1(group.below, newOptions, options), options);\n lowerGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n }\n\n var arrowBody = stretchy.svgSpan(group, options); // Re shift: Note that stretchy.svgSpan returned arrowBody.depth = 0.\n // The point we want on the math axis is at 0.5 * arrowBody.height.\n\n var arrowShift = -options.fontMetrics().axisHeight + 0.5 * arrowBody.height; // 2 mu kern. Ref: amsmath.dtx: #7\\if0#2\\else\\mkern#2mu\\fi\n\n var upperShift = -options.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111; // 0.111 em = 2 mu\n\n if (upperGroup.depth > 0.25 || group.label === \"\\\\xleftequilibrium\") {\n upperShift -= upperGroup.depth; // shift up if depth encroaches\n } // Generate the vlist\n\n\n var vlist;\n\n if (lowerGroup) {\n var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111;\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }, {\n type: \"elem\",\n elem: lowerGroup,\n shift: lowerShift\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }]\n }, options);\n } // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n return buildCommon.makeSpan([\"mrel\", \"x-arrow\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n var arrowNode = stretchy.mathMLnode(group.label);\n arrowNode.setAttribute(\"minsize\", group.label.charAt(0) === \"x\" ? \"1.75em\" : \"3.0em\");\n var node;\n\n if (group.body) {\n var upperNode = paddedNode(buildGroup(group.body, options));\n\n if (group.below) {\n var lowerNode = paddedNode(buildGroup(group.below, options));\n node = new mathMLTree.MathNode(\"munderover\", [arrowNode, lowerNode, upperNode]);\n } else {\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, upperNode]);\n }\n } else if (group.below) {\n var _lowerNode = paddedNode(buildGroup(group.below, options));\n\n node = new mathMLTree.MathNode(\"munder\", [arrowNode, _lowerNode]);\n } else {\n // This should never happen.\n // Parser.js throws an error if there is no argument.\n node = paddedNode();\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, node]);\n }\n\n return node;\n }\n\n});\n\nvar makeSpan = buildCommon.makeSpan;\n\nfunction htmlBuilder$9(group, options) {\n var elements = buildExpression$1(group.body, options, true);\n return makeSpan([group.mclass], elements, options);\n}\n\nfunction mathmlBuilder$8(group, options) {\n var node;\n var inner = buildExpression(group.body, options);\n\n if (group.mclass === \"minner\") {\n node = new mathMLTree.MathNode(\"mpadded\", inner);\n } else if (group.mclass === \"mord\") {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mi\";\n } else {\n node = new mathMLTree.MathNode(\"mi\", inner);\n }\n } else {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mo\";\n } else {\n node = new mathMLTree.MathNode(\"mo\", inner);\n } // Set spacing based on what is the most likely adjacent atom type.\n // See TeXbook p170.\n\n\n if (group.mclass === \"mbin\") {\n node.attributes.lspace = \"0.22em\"; // medium space\n\n node.attributes.rspace = \"0.22em\";\n } else if (group.mclass === \"mpunct\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0.17em\"; // thinspace\n } else if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0em\";\n } else if (group.mclass === \"minner\") {\n node.attributes.lspace = \"0.0556em\"; // 1 mu is the most likely option\n\n node.attributes.width = \"+0.1111em\";\n } // MathML <mo> default space is 5/18 em, so <mrel> needs no action.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo\n\n }\n\n return node;\n} // Math class commands except \\mathop\n\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\mathord\", \"\\\\mathbin\", \"\\\\mathrel\", \"\\\\mathopen\", \"\\\\mathclose\", \"\\\\mathpunct\", \"\\\\mathinner\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: \"m\" + funcName.slice(5),\n // TODO(kevinb): don't prefix with 'm'\n body: ordargument(body),\n isCharacterBox: utils.isCharacterBox(body)\n };\n },\n\n htmlBuilder: htmlBuilder$9,\n mathmlBuilder: mathmlBuilder$8\n});\nvar binrelClass = arg => {\n // \\binrel@ spacing varies with (bin|rel|ord) of the atom in the argument.\n // (by rendering separately and with {}s before and after, and measuring\n // the change in spacing). We'll do roughly the same by detecting the\n // atom type directly.\n var atom = arg.type === \"ordgroup\" && arg.body.length ? arg.body[0] : arg;\n\n if (atom.type === \"atom\" && (atom.family === \"bin\" || atom.family === \"rel\")) {\n return \"m\" + atom.family;\n } else {\n return \"mord\";\n }\n}; // \\@binrel{x}{y} renders like y but as mbin/mrel/mord if x is mbin/mrel/mord.\n// This is equivalent to \\binrel@{x}\\binrel@@{y} in AMSTeX.\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\@binrel\"],\n props: {\n numArgs: 2\n },\n\n handler(_ref2, args) {\n var {\n parser\n } = _ref2;\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[1]),\n isCharacterBox: utils.isCharacterBox(args[1])\n };\n }\n\n}); // Build a relation or stacked op by placing one symbol on top of another\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\stackrel\", \"\\\\overset\", \"\\\\underset\"],\n props: {\n numArgs: 2\n },\n\n handler(_ref3, args) {\n var {\n parser,\n funcName\n } = _ref3;\n var baseArg = args[1];\n var shiftedArg = args[0];\n var mclass;\n\n if (funcName !== \"\\\\stackrel\") {\n // LaTeX applies \\binrel spacing to \\overset and \\underset.\n mclass = binrelClass(baseArg);\n } else {\n mclass = \"mrel\"; // for \\stackrel\n }\n\n var baseOp = {\n type: \"op\",\n mode: baseArg.mode,\n limits: true,\n alwaysHandleSupSub: true,\n parentIsSupSub: false,\n symbol: false,\n suppressBaseShift: funcName !== \"\\\\stackrel\",\n body: ordargument(baseArg)\n };\n var supsub = {\n type: \"supsub\",\n mode: shiftedArg.mode,\n base: baseOp,\n sup: funcName === \"\\\\underset\" ? null : shiftedArg,\n sub: funcName === \"\\\\underset\" ? shiftedArg : null\n };\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass,\n body: [supsub],\n isCharacterBox: utils.isCharacterBox(supsub)\n };\n },\n\n htmlBuilder: htmlBuilder$9,\n mathmlBuilder: mathmlBuilder$8\n});\n\n// \\pmb is a simulation of bold font.\n// The version of \\pmb in ambsy.sty works by typesetting three copies\n// with small offsets. We use CSS text-shadow.\n// It's a hack. Not as good as a real bold font. Better than nothing.\ndefineFunction({\n type: \"pmb\",\n names: [\"\\\\pmb\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"pmb\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[0])\n };\n },\n\n htmlBuilder(group, options) {\n var elements = buildExpression$1(group.body, options, true);\n var node = buildCommon.makeSpan([group.mclass], elements, options);\n node.style.textShadow = \"0.02em 0.01em 0.04px\";\n return node;\n },\n\n mathmlBuilder(group, style) {\n var inner = buildExpression(group.body, style); // Wrap with an <mstyle> element.\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"style\", \"text-shadow: 0.02em 0.01em 0.04px\");\n return node;\n }\n\n});\n\nvar cdArrowFunctionName = {\n \">\": \"\\\\\\\\cdrightarrow\",\n \"<\": \"\\\\\\\\cdleftarrow\",\n \"=\": \"\\\\\\\\cdlongequal\",\n \"A\": \"\\\\uparrow\",\n \"V\": \"\\\\downarrow\",\n \"|\": \"\\\\Vert\",\n \".\": \"no arrow\"\n};\n\nvar newCell = () => {\n // Create an empty cell, to be filled below with parse nodes.\n // The parseTree from this module must be constructed like the\n // one created by parseArray(), so an empty CD cell must\n // be a ParseNode<\"styling\">. And CD is always displaystyle.\n // So these values are fixed and flow can do implicit typing.\n return {\n type: \"styling\",\n body: [],\n mode: \"math\",\n style: \"display\"\n };\n};\n\nvar isStartOfArrow = node => {\n return node.type === \"textord\" && node.text === \"@\";\n};\n\nvar isLabelEnd = (node, endChar) => {\n return (node.type === \"mathord\" || node.type === \"atom\") && node.text === endChar;\n};\n\nfunction cdArrow(arrowChar, labels, parser) {\n // Return a parse tree of an arrow and its labels.\n // This acts in a way similar to a macro expansion.\n var funcName = cdArrowFunctionName[arrowChar];\n\n switch (funcName) {\n case \"\\\\\\\\cdrightarrow\":\n case \"\\\\\\\\cdleftarrow\":\n return parser.callFunction(funcName, [labels[0]], [labels[1]]);\n\n case \"\\\\uparrow\":\n case \"\\\\downarrow\":\n {\n var leftLabel = parser.callFunction(\"\\\\\\\\cdleft\", [labels[0]], []);\n var bareArrow = {\n type: \"atom\",\n text: funcName,\n mode: \"math\",\n family: \"rel\"\n };\n var sizedArrow = parser.callFunction(\"\\\\Big\", [bareArrow], []);\n var rightLabel = parser.callFunction(\"\\\\\\\\cdright\", [labels[1]], []);\n var arrowGroup = {\n type: \"ordgroup\",\n mode: \"math\",\n body: [leftLabel, sizedArrow, rightLabel]\n };\n return parser.callFunction(\"\\\\\\\\cdparent\", [arrowGroup], []);\n }\n\n case \"\\\\\\\\cdlongequal\":\n return parser.callFunction(\"\\\\\\\\cdlongequal\", [], []);\n\n case \"\\\\Vert\":\n {\n var arrow = {\n type: \"textord\",\n text: \"\\\\Vert\",\n mode: \"math\"\n };\n return parser.callFunction(\"\\\\Big\", [arrow], []);\n }\n\n default:\n return {\n type: \"textord\",\n text: \" \",\n mode: \"math\"\n };\n }\n}\n\nfunction parseCD(parser) {\n // Get the array's parse nodes with \\\\ temporarily mapped to \\cr.\n var parsedRows = [];\n parser.gullet.beginGroup();\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n parser.gullet.beginGroup();\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Get the parse nodes for the next row.\n parsedRows.push(parser.parseExpression(false, \"\\\\\\\\\"));\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n var next = parser.fetch().text;\n\n if (next === \"&\" || next === \"\\\\\\\\\") {\n parser.consume();\n } else if (next === \"\\\\end\") {\n if (parsedRows[parsedRows.length - 1].length === 0) {\n parsedRows.pop(); // final row ended in \\\\\n }\n\n break;\n } else {\n throw new ParseError(\"Expected \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n }\n\n var row = [];\n var body = [row]; // Loop thru the parse nodes. Collect them into cells and arrows.\n\n for (var i = 0; i < parsedRows.length; i++) {\n // Start a new row.\n var rowNodes = parsedRows[i]; // Create the first cell.\n\n var cell = newCell();\n\n for (var j = 0; j < rowNodes.length; j++) {\n if (!isStartOfArrow(rowNodes[j])) {\n // If a parseNode is not an arrow, it goes into a cell.\n cell.body.push(rowNodes[j]);\n } else {\n // Parse node j is an \"@\", the start of an arrow.\n // Before starting on the arrow, push the cell into `row`.\n row.push(cell); // Now collect parseNodes into an arrow.\n // The character after \"@\" defines the arrow type.\n\n j += 1;\n var arrowChar = assertSymbolNodeType(rowNodes[j]).text; // Create two empty label nodes. We may or may not use them.\n\n var labels = new Array(2);\n labels[0] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n };\n labels[1] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n }; // Process the arrow.\n\n if (\"=|.\".indexOf(arrowChar) > -1) ; else if (\"<>AV\".indexOf(arrowChar) > -1) {\n // Four arrows, `@>>>`, `@<<<`, `@AAA`, and `@VVV`, each take\n // two optional labels. E.g. the right-point arrow syntax is\n // really: @>{optional label}>{optional label}>\n // Collect parseNodes into labels.\n for (var labelNum = 0; labelNum < 2; labelNum++) {\n var inLabel = true;\n\n for (var k = j + 1; k < rowNodes.length; k++) {\n if (isLabelEnd(rowNodes[k], arrowChar)) {\n inLabel = false;\n j = k;\n break;\n }\n\n if (isStartOfArrow(rowNodes[k])) {\n throw new ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[k]);\n }\n\n labels[labelNum].body.push(rowNodes[k]);\n }\n\n if (inLabel) {\n // isLabelEnd never returned a true.\n throw new ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[j]);\n }\n }\n } else {\n throw new ParseError(\"Expected one of \\\"<>AV=|.\\\" after @\", rowNodes[j]);\n } // Now join the arrow to its labels.\n\n\n var arrow = cdArrow(arrowChar, labels, parser); // Wrap the arrow in ParseNode<\"styling\">.\n // This is done to match parseArray() behavior.\n\n var wrappedArrow = {\n type: \"styling\",\n body: [arrow],\n mode: \"math\",\n style: \"display\" // CD is always displaystyle.\n\n };\n row.push(wrappedArrow); // In CD's syntax, cells are implicit. That is, everything that\n // is not an arrow gets collected into a cell. So create an empty\n // cell now. It will collect upcoming parseNodes.\n\n cell = newCell();\n }\n }\n\n if (i % 2 === 0) {\n // Even-numbered rows consist of: cell, arrow, cell, arrow, ... cell\n // The last cell is not yet pushed into `row`, so:\n row.push(cell);\n } else {\n // Odd-numbered rows consist of: vert arrow, empty cell, ... vert arrow\n // Remove the empty cell that was placed at the beginning of `row`.\n row.shift();\n }\n\n row = [];\n body.push(row);\n } // End row group\n\n\n parser.gullet.endGroup(); // End array group defining \\\\\n\n parser.gullet.endGroup(); // define column separation.\n\n var cols = new Array(body[0].length).fill({\n type: \"align\",\n align: \"c\",\n pregap: 0.25,\n // CD package sets \\enskip between columns.\n postgap: 0.25 // So pre and post each get half an \\enskip, i.e. 0.25em.\n\n });\n return {\n type: \"array\",\n mode: \"math\",\n body,\n arraystretch: 1,\n addJot: true,\n rowGaps: [null],\n cols,\n colSeparationType: \"CD\",\n hLinesBeforeRow: new Array(body.length + 1).fill([])\n };\n} // The functions below are not available for general use.\n// They are here only for internal use by the {CD} environment in placing labels\n// next to vertical arrows.\n// We don't need any such functions for horizontal arrows because we can reuse\n// the functionality that already exists for extensible arrows.\n\ndefineFunction({\n type: \"cdlabel\",\n names: [\"\\\\\\\\cdleft\", \"\\\\\\\\cdright\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n return {\n type: \"cdlabel\",\n mode: parser.mode,\n side: funcName.slice(4),\n label: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n var newOptions = options.havingStyle(options.style.sup());\n var label = buildCommon.wrapFragment(buildGroup$1(group.label, newOptions, options), options);\n label.classes.push(\"cd-label-\" + group.side);\n label.style.bottom = makeEm(0.8 - label.depth); // Zero out label height & depth, so vertical align of arrow is set\n // by the arrow height, not by the label.\n\n label.height = 0;\n label.depth = 0;\n return label;\n },\n\n mathmlBuilder(group, options) {\n var label = new mathMLTree.MathNode(\"mrow\", [buildGroup(group.label, options)]);\n label = new mathMLTree.MathNode(\"mpadded\", [label]);\n label.setAttribute(\"width\", \"0\");\n\n if (group.side === \"left\") {\n label.setAttribute(\"lspace\", \"-1width\");\n } // We have to guess at vertical alignment. We know the arrow is 1.8em tall,\n // But we don't know the height or depth of the label.\n\n\n label.setAttribute(\"voffset\", \"0.7em\");\n label = new mathMLTree.MathNode(\"mstyle\", [label]);\n label.setAttribute(\"displaystyle\", \"false\");\n label.setAttribute(\"scriptlevel\", \"1\");\n return label;\n }\n\n});\ndefineFunction({\n type: \"cdlabelparent\",\n names: [\"\\\\\\\\cdparent\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref2, args) {\n var {\n parser\n } = _ref2;\n return {\n type: \"cdlabelparent\",\n mode: parser.mode,\n fragment: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n // Wrap the vertical arrow and its labels.\n // The parent gets position: relative. The child gets position: absolute.\n // So CSS can locate the label correctly.\n var parent = buildCommon.wrapFragment(buildGroup$1(group.fragment, options), options);\n parent.classes.push(\"cd-vert-arrow\");\n return parent;\n },\n\n mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", [buildGroup(group.fragment, options)]);\n }\n\n});\n\n// {123} and converts into symbol with code 123. It is used by the *macro*\n// \\char defined in macros.js.\n\ndefineFunction({\n type: \"textord\",\n names: [\"\\\\@char\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var arg = assertNodeType(args[0], \"ordgroup\");\n var group = arg.body;\n var number = \"\";\n\n for (var i = 0; i < group.length; i++) {\n var node = assertNodeType(group[i], \"textord\");\n number += node.text;\n }\n\n var code = parseInt(number);\n var text;\n\n if (isNaN(code)) {\n throw new ParseError(\"\\\\@char has non-numeric argument \" + number); // If we drop IE support, the following code could be replaced with\n // text = String.fromCodePoint(code)\n } else if (code < 0 || code >= 0x10ffff) {\n throw new ParseError(\"\\\\@char with invalid code point \" + number);\n } else if (code <= 0xffff) {\n text = String.fromCharCode(code);\n } else {\n // Astral code point; split into surrogate halves\n code -= 0x10000;\n text = String.fromCharCode((code >> 10) + 0xd800, (code & 0x3ff) + 0xdc00);\n }\n\n return {\n type: \"textord\",\n mode: parser.mode,\n text: text\n };\n }\n\n});\n\nvar htmlBuilder$8 = (group, options) => {\n var elements = buildExpression$1(group.body, options.withColor(group.color), false); // \\color isn't supposed to affect the type of the elements it contains.\n // To accomplish this, we wrap the results in a fragment, so the inner\n // elements will be able to directly interact with their neighbors. For\n // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n\n return buildCommon.makeFragment(elements);\n};\n\nvar mathmlBuilder$7 = (group, options) => {\n var inner = buildExpression(group.body, options.withColor(group.color));\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"mathcolor\", group.color);\n return node;\n};\n\ndefineFunction({\n type: \"color\",\n names: [\"\\\\textcolor\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"original\"]\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var color = assertNodeType(args[0], \"color-token\").color;\n var body = args[1];\n return {\n type: \"color\",\n mode: parser.mode,\n color,\n body: ordargument(body)\n };\n },\n\n htmlBuilder: htmlBuilder$8,\n mathmlBuilder: mathmlBuilder$7\n});\ndefineFunction({\n type: \"color\",\n names: [\"\\\\color\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n argTypes: [\"color\"]\n },\n\n handler(_ref2, args) {\n var {\n parser,\n breakOnTokenText\n } = _ref2;\n var color = assertNodeType(args[0], \"color-token\").color; // Set macro \\current@color in current namespace to store the current\n // color, mimicking the behavior of color.sty.\n // This is currently used just to correctly color a \\right\n // that follows a \\color command.\n\n parser.gullet.macros.set(\"\\\\current@color\", color); // Parse out the implicit body that should be colored.\n\n var body = parser.parseExpression(true, breakOnTokenText);\n return {\n type: \"color\",\n mode: parser.mode,\n color,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$8,\n mathmlBuilder: mathmlBuilder$7\n});\n\n// Row breaks within tabular environments, and line breaks at top level\n\ndefineFunction({\n type: \"cr\",\n names: [\"\\\\\\\\\"],\n props: {\n numArgs: 0,\n numOptionalArgs: 0,\n allowedInText: true\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser\n } = _ref;\n var size = parser.gullet.future().text === \"[\" ? parser.parseSizeGroup(true) : null;\n var newLine = !parser.settings.displayMode || !parser.settings.useStrictBehavior(\"newLineInDisplayMode\", \"In LaTeX, \\\\\\\\ or \\\\newline \" + \"does nothing in display mode\");\n return {\n type: \"cr\",\n mode: parser.mode,\n newLine,\n size: size && assertNodeType(size, \"size\").value\n };\n },\n\n // The following builders are called only at the top level,\n // not within tabular/array environments.\n htmlBuilder(group, options) {\n var span = buildCommon.makeSpan([\"mspace\"], [], options);\n\n if (group.newLine) {\n span.classes.push(\"newline\");\n\n if (group.size) {\n span.style.marginTop = makeEm(calculateSize(group.size, options));\n }\n }\n\n return span;\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mspace\");\n\n if (group.newLine) {\n node.setAttribute(\"linebreak\", \"newline\");\n\n if (group.size) {\n node.setAttribute(\"height\", makeEm(calculateSize(group.size, options)));\n }\n }\n\n return node;\n }\n\n});\n\nvar globalMap = {\n \"\\\\global\": \"\\\\global\",\n \"\\\\long\": \"\\\\\\\\globallong\",\n \"\\\\\\\\globallong\": \"\\\\\\\\globallong\",\n \"\\\\def\": \"\\\\gdef\",\n \"\\\\gdef\": \"\\\\gdef\",\n \"\\\\edef\": \"\\\\xdef\",\n \"\\\\xdef\": \"\\\\xdef\",\n \"\\\\let\": \"\\\\\\\\globallet\",\n \"\\\\futurelet\": \"\\\\\\\\globalfuture\"\n};\n\nvar checkControlSequence = tok => {\n var name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new ParseError(\"Expected a control sequence\", tok);\n }\n\n return name;\n};\n\nvar getRHS = parser => {\n var tok = parser.gullet.popToken();\n\n if (tok.text === \"=\") {\n // consume optional equals\n tok = parser.gullet.popToken();\n\n if (tok.text === \" \") {\n // consume one optional space\n tok = parser.gullet.popToken();\n }\n }\n\n return tok;\n};\n\nvar letCommand = (parser, name, tok, global) => {\n var macro = parser.gullet.macros.get(tok.text);\n\n if (macro == null) {\n // don't expand it later even if a macro with the same name is defined\n // e.g., \\let\\foo=\\frac \\def\\frac{\\relax} \\frac12\n tok.noexpand = true;\n macro = {\n tokens: [tok],\n numArgs: 0,\n // reproduce the same behavior in expansion\n unexpandable: !parser.gullet.isExpandable(tok.text)\n };\n }\n\n parser.gullet.macros.set(name, macro, global);\n}; // <assignment> -> <non-macro assignment>|<macro assignment>\n// <non-macro assignment> -> <simple assignment>|\\global<non-macro assignment>\n// <macro assignment> -> <definition>|<prefix><macro assignment>\n// <prefix> -> \\global|\\long|\\outer\n\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\global\", \"\\\\long\", \"\\\\\\\\globallong\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(_ref) {\n var {\n parser,\n funcName\n } = _ref;\n parser.consumeSpaces();\n var token = parser.fetch();\n\n if (globalMap[token.text]) {\n // KaTeX doesn't have \\par, so ignore \\long\n if (funcName === \"\\\\global\" || funcName === \"\\\\\\\\globallong\") {\n token.text = globalMap[token.text];\n }\n\n return assertNodeType(parser.parseFunction(), \"internal\");\n }\n\n throw new ParseError(\"Invalid token after macro prefix\", token);\n }\n\n}); // Basic support for macro definitions: \\def, \\gdef, \\edef, \\xdef\n// <definition> -> <def><control sequence><definition text>\n// <def> -> \\def|\\gdef|\\edef|\\xdef\n// <definition text> -> <parameter text><left brace><balanced text><right brace>\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\def\", \"\\\\gdef\", \"\\\\edef\", \"\\\\xdef\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref2) {\n var {\n parser,\n funcName\n } = _ref2;\n var tok = parser.gullet.popToken();\n var name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new ParseError(\"Expected a control sequence\", tok);\n }\n\n var numArgs = 0;\n var insert;\n var delimiters = [[]]; // <parameter text> contains no braces\n\n while (parser.gullet.future().text !== \"{\") {\n tok = parser.gullet.popToken();\n\n if (tok.text === \"#\") {\n // If the very last character of the <parameter text> is #, so that\n // this # is immediately followed by {, TeX will behave as if the {\n // had been inserted at the right end of both the parameter text\n // and the replacement text.\n if (parser.gullet.future().text === \"{\") {\n insert = parser.gullet.future();\n delimiters[numArgs].push(\"{\");\n break;\n } // A parameter, the first appearance of # must be followed by 1,\n // the next by 2, and so on; up to nine #’s are allowed\n\n\n tok = parser.gullet.popToken();\n\n if (!/^[1-9]$/.test(tok.text)) {\n throw new ParseError(\"Invalid argument number \\\"\" + tok.text + \"\\\"\");\n }\n\n if (parseInt(tok.text) !== numArgs + 1) {\n throw new ParseError(\"Argument number \\\"\" + tok.text + \"\\\" out of order\");\n }\n\n numArgs++;\n delimiters.push([]);\n } else if (tok.text === \"EOF\") {\n throw new ParseError(\"Expected a macro definition\");\n } else {\n delimiters[numArgs].push(tok.text);\n }\n } // replacement text, enclosed in '{' and '}' and properly nested\n\n\n var {\n tokens\n } = parser.gullet.consumeArg();\n\n if (insert) {\n tokens.unshift(insert);\n }\n\n if (funcName === \"\\\\edef\" || funcName === \"\\\\xdef\") {\n tokens = parser.gullet.expandTokens(tokens);\n tokens.reverse(); // to fit in with stack order\n } // Final arg is the expansion of the macro\n\n\n parser.gullet.macros.set(name, {\n tokens,\n numArgs,\n delimiters\n }, funcName === globalMap[funcName]);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n}); // <simple assignment> -> <let assignment>\n// <let assignment> -> \\futurelet<control sequence><token><token>\n// | \\let<control sequence><equals><one optional space><token>\n// <equals> -> <optional spaces>|<optional spaces>=\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\let\", \"\\\\\\\\globallet\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref3) {\n var {\n parser,\n funcName\n } = _ref3;\n var name = checkControlSequence(parser.gullet.popToken());\n parser.gullet.consumeSpaces();\n var tok = getRHS(parser);\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globallet\");\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n}); // ref: https://www.tug.org/TUGboat/tb09-3/tb22bechtolsheim.pdf\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\futurelet\", \"\\\\\\\\globalfuture\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref4) {\n var {\n parser,\n funcName\n } = _ref4;\n var name = checkControlSequence(parser.gullet.popToken());\n var middle = parser.gullet.popToken();\n var tok = parser.gullet.popToken();\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globalfuture\");\n parser.gullet.pushToken(tok);\n parser.gullet.pushToken(middle);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n});\n\n/**\n * This file deals with creating delimiters of various sizes. The TeXbook\n * discusses these routines on page 441-442, in the \"Another subroutine sets box\n * x to a specified variable delimiter\" paragraph.\n *\n * There are three main routines here. `makeSmallDelim` makes a delimiter in the\n * normal font, but in either text, script, or scriptscript style.\n * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1,\n * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of\n * smaller pieces that are stacked on top of one another.\n *\n * The functions take a parameter `center`, which determines if the delimiter\n * should be centered around the axis.\n *\n * Then, there are three exposed functions. `sizedDelim` makes a delimiter in\n * one of the given sizes. This is used for things like `\\bigl`.\n * `customSizedDelim` makes a delimiter with a given total height+depth. It is\n * called in places like `\\sqrt`. `leftRightDelim` makes an appropriate\n * delimiter which surrounds an expression of a given height an depth. It is\n * used in `\\left` and `\\right`.\n */\n\n/**\n * Get the metrics for a given symbol and font, after transformation (i.e.\n * after following replacement from symbols.js)\n */\nvar getMetrics = function getMetrics(symbol, font, mode) {\n var replace = symbols.math[symbol] && symbols.math[symbol].replace;\n var metrics = getCharacterMetrics(replace || symbol, font, mode);\n\n if (!metrics) {\n throw new Error(\"Unsupported symbol \" + symbol + \" and font size \" + font + \".\");\n }\n\n return metrics;\n};\n/**\n * Puts a delimiter span in a given style, and adds appropriate height, depth,\n * and maxFontSizes.\n */\n\n\nvar styleWrap = function styleWrap(delim, toStyle, options, classes) {\n var newOptions = options.havingBaseStyle(toStyle);\n var span = buildCommon.makeSpan(classes.concat(newOptions.sizingClasses(options)), [delim], options);\n var delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;\n span.height *= delimSizeMultiplier;\n span.depth *= delimSizeMultiplier;\n span.maxFontSize = newOptions.sizeMultiplier;\n return span;\n};\n\nvar centerSpan = function centerSpan(span, options, style) {\n var newOptions = options.havingBaseStyle(style);\n var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight;\n span.classes.push(\"delimcenter\");\n span.style.top = makeEm(shift);\n span.height -= shift;\n span.depth += shift;\n};\n/**\n * Makes a small delimiter. This is a delimiter that comes in the Main-Regular\n * font, but is restyled to either be in textstyle, scriptstyle, or\n * scriptscriptstyle.\n */\n\n\nvar makeSmallDelim = function makeSmallDelim(delim, style, center, options, mode, classes) {\n var text = buildCommon.makeSymbol(delim, \"Main-Regular\", mode, options);\n var span = styleWrap(text, style, options, classes);\n\n if (center) {\n centerSpan(span, options, style);\n }\n\n return span;\n};\n/**\n * Builds a symbol in the given font size (note size is an integer)\n */\n\n\nvar mathrmSize = function mathrmSize(value, size, mode, options) {\n return buildCommon.makeSymbol(value, \"Size\" + size + \"-Regular\", mode, options);\n};\n/**\n * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2,\n * Size3, or Size4 fonts. It is always rendered in textstyle.\n */\n\n\nvar makeLargeDelim = function makeLargeDelim(delim, size, center, options, mode, classes) {\n var inner = mathrmSize(delim, size, mode, options);\n var span = styleWrap(buildCommon.makeSpan([\"delimsizing\", \"size\" + size], [inner], options), Style$1.TEXT, options, classes);\n\n if (center) {\n centerSpan(span, options, Style$1.TEXT);\n }\n\n return span;\n};\n/**\n * Make a span from a font glyph with the given offset and in the given font.\n * This is used in makeStackedDelim to make the stacking pieces for the delimiter.\n */\n\n\nvar makeGlyphSpan = function makeGlyphSpan(symbol, font, mode) {\n var sizeClass; // Apply the correct CSS class to choose the right font.\n\n if (font === \"Size1-Regular\") {\n sizeClass = \"delim-size1\";\n } else\n /* if (font === \"Size4-Regular\") */\n {\n sizeClass = \"delim-size4\";\n }\n\n var corner = buildCommon.makeSpan([\"delimsizinginner\", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]); // Since this will be passed into `makeVList` in the end, wrap the element\n // in the appropriate tag that VList uses.\n\n return {\n type: \"elem\",\n elem: corner\n };\n};\n\nvar makeInner = function makeInner(ch, height, options) {\n // Create a span with inline SVG for the inner part of a tall stacked delimiter.\n var width = fontMetricsData['Size4-Regular'][ch.charCodeAt(0)] ? fontMetricsData['Size4-Regular'][ch.charCodeAt(0)][4] : fontMetricsData['Size1-Regular'][ch.charCodeAt(0)][4];\n var path = new PathNode(\"inner\", innerPath(ch, Math.round(1000 * height)));\n var svgNode = new SvgNode([path], {\n \"width\": makeEm(width),\n \"height\": makeEm(height),\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + makeEm(width),\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + Math.round(1000 * height),\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n var span = buildCommon.makeSvgSpan([], [svgNode], options);\n span.height = height;\n span.style.height = makeEm(height);\n span.style.width = makeEm(width);\n return {\n type: \"elem\",\n elem: span\n };\n}; // Helpers for makeStackedDelim\n\n\nvar lapInEms = 0.008;\nvar lap = {\n type: \"kern\",\n size: -1 * lapInEms\n};\nvar verts = [\"|\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\vert\"];\nvar doubleVerts = [\"\\\\|\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\Vert\"];\n/**\n * Make a stacked delimiter out of a given delimiter, with the total height at\n * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook.\n */\n\nvar makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, options, mode, classes) {\n // There are four parts, the top, an optional middle, a repeated part, and a\n // bottom.\n var top;\n var middle;\n var repeat;\n var bottom;\n var svgLabel = \"\";\n var viewBoxWidth = 0;\n top = repeat = bottom = delim;\n middle = null; // Also keep track of what font the delimiters are in\n\n var font = \"Size1-Regular\"; // We set the parts and font based on the symbol. Note that we use\n // '\\u23d0' instead of '|' and '\\u2016' instead of '\\\\|' for the\n // repeats of the arrows\n\n if (delim === \"\\\\uparrow\") {\n repeat = bottom = \"\\u23d0\";\n } else if (delim === \"\\\\Uparrow\") {\n repeat = bottom = \"\\u2016\";\n } else if (delim === \"\\\\downarrow\") {\n top = repeat = \"\\u23d0\";\n } else if (delim === \"\\\\Downarrow\") {\n top = repeat = \"\\u2016\";\n } else if (delim === \"\\\\updownarrow\") {\n top = \"\\\\uparrow\";\n repeat = \"\\u23d0\";\n bottom = \"\\\\downarrow\";\n } else if (delim === \"\\\\Updownarrow\") {\n top = \"\\\\Uparrow\";\n repeat = \"\\u2016\";\n bottom = \"\\\\Downarrow\";\n } else if (utils.contains(verts, delim)) {\n repeat = \"\\u2223\";\n svgLabel = \"vert\";\n viewBoxWidth = 333;\n } else if (utils.contains(doubleVerts, delim)) {\n repeat = \"\\u2225\";\n svgLabel = \"doublevert\";\n viewBoxWidth = 556;\n } else if (delim === \"[\" || delim === \"\\\\lbrack\") {\n top = \"\\u23a1\";\n repeat = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n svgLabel = \"lbrack\";\n viewBoxWidth = 667;\n } else if (delim === \"]\" || delim === \"\\\\rbrack\") {\n top = \"\\u23a4\";\n repeat = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n svgLabel = \"rbrack\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\lfloor\" || delim === \"\\u230a\") {\n repeat = top = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n svgLabel = \"lfloor\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\lceil\" || delim === \"\\u2308\") {\n top = \"\\u23a1\";\n repeat = bottom = \"\\u23a2\";\n font = \"Size4-Regular\";\n svgLabel = \"lceil\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\rfloor\" || delim === \"\\u230b\") {\n repeat = top = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n svgLabel = \"rfloor\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\rceil\" || delim === \"\\u2309\") {\n top = \"\\u23a4\";\n repeat = bottom = \"\\u23a5\";\n font = \"Size4-Regular\";\n svgLabel = \"rceil\";\n viewBoxWidth = 667;\n } else if (delim === \"(\" || delim === \"\\\\lparen\") {\n top = \"\\u239b\";\n repeat = \"\\u239c\";\n bottom = \"\\u239d\";\n font = \"Size4-Regular\";\n svgLabel = \"lparen\";\n viewBoxWidth = 875;\n } else if (delim === \")\" || delim === \"\\\\rparen\") {\n top = \"\\u239e\";\n repeat = \"\\u239f\";\n bottom = \"\\u23a0\";\n font = \"Size4-Regular\";\n svgLabel = \"rparen\";\n viewBoxWidth = 875;\n } else if (delim === \"\\\\{\" || delim === \"\\\\lbrace\") {\n top = \"\\u23a7\";\n middle = \"\\u23a8\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\}\" || delim === \"\\\\rbrace\") {\n top = \"\\u23ab\";\n middle = \"\\u23ac\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lgroup\" || delim === \"\\u27ee\") {\n top = \"\\u23a7\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rgroup\" || delim === \"\\u27ef\") {\n top = \"\\u23ab\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lmoustache\" || delim === \"\\u23b0\") {\n top = \"\\u23a7\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rmoustache\" || delim === \"\\u23b1\") {\n top = \"\\u23ab\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } // Get the metrics of the four sections\n\n\n var topMetrics = getMetrics(top, font, mode);\n var topHeightTotal = topMetrics.height + topMetrics.depth;\n var repeatMetrics = getMetrics(repeat, font, mode);\n var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;\n var bottomMetrics = getMetrics(bottom, font, mode);\n var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;\n var middleHeightTotal = 0;\n var middleFactor = 1;\n\n if (middle !== null) {\n var middleMetrics = getMetrics(middle, font, mode);\n middleHeightTotal = middleMetrics.height + middleMetrics.depth;\n middleFactor = 2; // repeat symmetrically above and below middle\n } // Calculate the minimal height that the delimiter can have.\n // It is at least the size of the top, bottom, and optional middle combined.\n\n\n var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; // Compute the number of copies of the repeat symbol we will need\n\n var repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal))); // Compute the total height of the delimiter including all the symbols\n\n var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal; // The center of the delimiter is placed at the center of the axis. Note\n // that in this context, \"center\" means that the delimiter should be\n // centered around the axis in the current style, while normally it is\n // centered around the axis in textstyle.\n\n var axisHeight = options.fontMetrics().axisHeight;\n\n if (center) {\n axisHeight *= options.sizeMultiplier;\n } // Calculate the depth\n\n\n var depth = realHeightTotal / 2 - axisHeight; // Now, we start building the pieces that will go into the vlist\n // Keep a list of the pieces of the stacked delimiter\n\n var stack = [];\n\n if (svgLabel.length > 0) {\n // Instead of stacking glyphs, create a single SVG.\n // This evades browser problems with imprecise positioning of spans.\n var midHeight = realHeightTotal - topHeightTotal - bottomHeightTotal;\n var viewBoxHeight = Math.round(realHeightTotal * 1000);\n var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1000));\n var path = new PathNode(svgLabel, pathStr);\n var width = (viewBoxWidth / 1000).toFixed(3) + \"em\";\n var height = (viewBoxHeight / 1000).toFixed(3) + \"em\";\n var svg = new SvgNode([path], {\n \"width\": width,\n \"height\": height,\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight\n });\n var wrapper = buildCommon.makeSvgSpan([], [svg], options);\n wrapper.height = viewBoxHeight / 1000;\n wrapper.style.width = width;\n wrapper.style.height = height;\n stack.push({\n type: \"elem\",\n elem: wrapper\n });\n } else {\n // Stack glyphs\n // Start by adding the bottom symbol\n stack.push(makeGlyphSpan(bottom, font, mode));\n stack.push(lap); // overlap\n\n if (middle === null) {\n // The middle section will be an SVG. Make it an extra 0.016em tall.\n // We'll overlap by 0.008em at top and bottom.\n var innerHeight = realHeightTotal - topHeightTotal - bottomHeightTotal + 2 * lapInEms;\n stack.push(makeInner(repeat, innerHeight, options));\n } else {\n // When there is a middle bit, we need the middle part and two repeated\n // sections\n var _innerHeight = (realHeightTotal - topHeightTotal - bottomHeightTotal - middleHeightTotal) / 2 + 2 * lapInEms;\n\n stack.push(makeInner(repeat, _innerHeight, options)); // Now insert the middle of the brace.\n\n stack.push(lap);\n stack.push(makeGlyphSpan(middle, font, mode));\n stack.push(lap);\n stack.push(makeInner(repeat, _innerHeight, options));\n } // Add the top symbol\n\n\n stack.push(lap);\n stack.push(makeGlyphSpan(top, font, mode));\n } // Finally, build the vlist\n\n\n var newOptions = options.havingBaseStyle(Style$1.TEXT);\n var inner = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: depth,\n children: stack\n }, newOptions);\n return styleWrap(buildCommon.makeSpan([\"delimsizing\", \"mult\"], [inner], newOptions), Style$1.TEXT, options, classes);\n}; // All surds have 0.08em padding above the vinculum inside the SVG.\n// That keeps browser span height rounding error from pinching the line.\n\n\nvar vbPad = 80; // padding above the surd, measured inside the viewBox.\n\nvar emPad = 0.08; // padding, in ems, measured in the document.\n\nvar sqrtSvg = function sqrtSvg(sqrtName, height, viewBoxHeight, extraVinculum, options) {\n var path = sqrtPath(sqrtName, extraVinculum, viewBoxHeight);\n var pathNode = new PathNode(sqrtName, path);\n var svg = new SvgNode([pathNode], {\n // Note: 1000:1 ratio of viewBox to document em width.\n \"width\": \"400em\",\n \"height\": makeEm(height),\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n });\n return buildCommon.makeSvgSpan([\"hide-tail\"], [svg], options);\n};\n/**\n * Make a sqrt image of the given height,\n */\n\n\nvar makeSqrtImage = function makeSqrtImage(height, options) {\n // Define a newOptions that removes the effect of size changes such as \\Huge.\n // We don't pick different a height surd for \\Huge. For it, we scale up.\n var newOptions = options.havingBaseSizing(); // Pick the desired surd glyph from a sequence of surds.\n\n var delim = traverseSequence(\"\\\\surd\", height * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions);\n var sizeMultiplier = newOptions.sizeMultiplier; // default\n // The standard sqrt SVGs each have a 0.04em thick vinculum.\n // If Settings.minRuleThickness is larger than that, we add extraVinculum.\n\n var extraVinculum = Math.max(0, options.minRuleThickness - options.fontMetrics().sqrtRuleThickness); // Create a span containing an SVG image of a sqrt symbol.\n\n var span;\n var spanHeight = 0;\n var texHeight = 0;\n var viewBoxHeight = 0;\n var advanceWidth; // We create viewBoxes with 80 units of \"padding\" above each surd.\n // Then browser rounding error on the parent span height will not\n // encroach on the ink of the vinculum. But that padding is not\n // included in the TeX-like `height` used for calculation of\n // vertical alignment. So texHeight = span.height < span.style.height.\n\n if (delim.type === \"small\") {\n // Get an SVG that is derived from glyph U+221A in font KaTeX-Main.\n // 1000 unit normal glyph height.\n viewBoxHeight = 1000 + 1000 * extraVinculum + vbPad;\n\n if (height < 1.0) {\n sizeMultiplier = 1.0; // mimic a \\textfont radical\n } else if (height < 1.4) {\n sizeMultiplier = 0.7; // mimic a \\scriptfont radical\n }\n\n spanHeight = (1.0 + extraVinculum + emPad) / sizeMultiplier;\n texHeight = (1.00 + extraVinculum) / sizeMultiplier;\n span = sqrtSvg(\"sqrtMain\", spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"0.853em\";\n advanceWidth = 0.833 / sizeMultiplier; // from the font.\n } else if (delim.type === \"large\") {\n // These SVGs come from fonts: KaTeX_Size1, _Size2, etc.\n viewBoxHeight = (1000 + vbPad) * sizeToMaxHeight[delim.size];\n texHeight = (sizeToMaxHeight[delim.size] + extraVinculum) / sizeMultiplier;\n spanHeight = (sizeToMaxHeight[delim.size] + extraVinculum + emPad) / sizeMultiplier;\n span = sqrtSvg(\"sqrtSize\" + delim.size, spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"1.02em\";\n advanceWidth = 1.0 / sizeMultiplier; // 1.0 from the font.\n } else {\n // Tall sqrt. In TeX, this would be stacked using multiple glyphs.\n // We'll use a single SVG to accomplish the same thing.\n spanHeight = height + extraVinculum + emPad;\n texHeight = height + extraVinculum;\n viewBoxHeight = Math.floor(1000 * height + extraVinculum) + vbPad;\n span = sqrtSvg(\"sqrtTall\", spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"0.742em\";\n advanceWidth = 1.056;\n }\n\n span.height = texHeight;\n span.style.height = makeEm(spanHeight);\n return {\n span,\n advanceWidth,\n // Calculate the actual line width.\n // This actually should depend on the chosen font -- e.g. \\boldmath\n // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and\n // have thicker rules.\n ruleWidth: (options.fontMetrics().sqrtRuleThickness + extraVinculum) * sizeMultiplier\n };\n}; // There are three kinds of delimiters, delimiters that stack when they become\n// too large\n\n\nvar stackLargeDelimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230a\", \"\\u230b\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"\\\\surd\"]; // delimiters that always stack\n\nvar stackAlwaysDelimiters = [\"\\\\uparrow\", \"\\\\downarrow\", \"\\\\updownarrow\", \"\\\\Uparrow\", \"\\\\Downarrow\", \"\\\\Updownarrow\", \"|\", \"\\\\|\", \"\\\\vert\", \"\\\\Vert\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27ee\", \"\\u27ef\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23b0\", \"\\u23b1\"]; // and delimiters that never stack\n\nvar stackNeverDelimiters = [\"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"/\", \"\\\\backslash\", \"\\\\lt\", \"\\\\gt\"]; // Metrics of the different sizes. Found by looking at TeX's output of\n// $\\bigl| // \\Bigl| \\biggl| \\Biggl| \\showlists$\n// Used to create stacked delimiters of appropriate sizes in makeSizedDelim.\n\nvar sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0];\n/**\n * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4.\n */\n\nvar makeSizedDelim = function makeSizedDelim(delim, size, options, mode, classes) {\n // < and > turn into \\langle and \\rangle in delimiters\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27e8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27e9\") {\n delim = \"\\\\rangle\";\n } // Sized delimiters are never centered.\n\n\n if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) {\n return makeLargeDelim(delim, size, false, options, mode, classes);\n } else if (utils.contains(stackAlwaysDelimiters, delim)) {\n return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes);\n } else {\n throw new ParseError(\"Illegal delimiter: '\" + delim + \"'\");\n }\n};\n/**\n * There are three different sequences of delimiter sizes that the delimiters\n * follow depending on the kind of delimiter. This is used when creating custom\n * sized delimiters to decide whether to create a small, large, or stacked\n * delimiter.\n *\n * In real TeX, these sequences aren't explicitly defined, but are instead\n * defined inside the font metrics. Since there are only three sequences that\n * are possible for the delimiters that TeX defines, it is easier to just encode\n * them explicitly here.\n */\n\n\n// Delimiters that never stack try small delimiters and large delimiters only\nvar stackNeverDelimiterSequence = [{\n type: \"small\",\n style: Style$1.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: Style$1.SCRIPT\n}, {\n type: \"small\",\n style: Style$1.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}]; // Delimiters that always stack try the small delimiters first, then stack\n\nvar stackAlwaysDelimiterSequence = [{\n type: \"small\",\n style: Style$1.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: Style$1.SCRIPT\n}, {\n type: \"small\",\n style: Style$1.TEXT\n}, {\n type: \"stack\"\n}]; // Delimiters that stack when large try the small and then large delimiters, and\n// stack afterwards\n\nvar stackLargeDelimiterSequence = [{\n type: \"small\",\n style: Style$1.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: Style$1.SCRIPT\n}, {\n type: \"small\",\n style: Style$1.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}, {\n type: \"stack\"\n}];\n/**\n * Get the font used in a delimiter based on what kind of delimiter it is.\n * TODO(#963) Use more specific font family return type once that is introduced.\n */\n\nvar delimTypeToFont = function delimTypeToFont(type) {\n if (type.type === \"small\") {\n return \"Main-Regular\";\n } else if (type.type === \"large\") {\n return \"Size\" + type.size + \"-Regular\";\n } else if (type.type === \"stack\") {\n return \"Size4-Regular\";\n } else {\n throw new Error(\"Add support for delim type '\" + type.type + \"' here.\");\n }\n};\n/**\n * Traverse a sequence of types of delimiters to decide what kind of delimiter\n * should be used to create a delimiter of the given height+depth.\n */\n\n\nvar traverseSequence = function traverseSequence(delim, height, sequence, options) {\n // Here, we choose the index we should start at in the sequences. In smaller\n // sizes (which correspond to larger numbers in style.size) we start earlier\n // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts\n // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2\n var start = Math.min(2, 3 - options.style.size);\n\n for (var i = start; i < sequence.length; i++) {\n if (sequence[i].type === \"stack\") {\n // This is always the last delimiter, so we just break the loop now.\n break;\n }\n\n var metrics = getMetrics(delim, delimTypeToFont(sequence[i]), \"math\");\n var heightDepth = metrics.height + metrics.depth; // Small delimiters are scaled down versions of the same font, so we\n // account for the style change size.\n\n if (sequence[i].type === \"small\") {\n var newOptions = options.havingBaseStyle(sequence[i].style);\n heightDepth *= newOptions.sizeMultiplier;\n } // Check if the delimiter at this size works for the given height.\n\n\n if (heightDepth > height) {\n return sequence[i];\n }\n } // If we reached the end of the sequence, return the last sequence element.\n\n\n return sequence[sequence.length - 1];\n};\n/**\n * Make a delimiter of a given height+depth, with optional centering. Here, we\n * traverse the sequences, and create a delimiter that the sequence tells us to.\n */\n\n\nvar makeCustomSizedDelim = function makeCustomSizedDelim(delim, height, center, options, mode, classes) {\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27e8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27e9\") {\n delim = \"\\\\rangle\";\n } // Decide what sequence to use\n\n\n var sequence;\n\n if (utils.contains(stackNeverDelimiters, delim)) {\n sequence = stackNeverDelimiterSequence;\n } else if (utils.contains(stackLargeDelimiters, delim)) {\n sequence = stackLargeDelimiterSequence;\n } else {\n sequence = stackAlwaysDelimiterSequence;\n } // Look through the sequence\n\n\n var delimType = traverseSequence(delim, height, sequence, options); // Get the delimiter from font glyphs.\n // Depending on the sequence element we decided on, call the\n // appropriate function.\n\n if (delimType.type === \"small\") {\n return makeSmallDelim(delim, delimType.style, center, options, mode, classes);\n } else if (delimType.type === \"large\") {\n return makeLargeDelim(delim, delimType.size, center, options, mode, classes);\n } else\n /* if (delimType.type === \"stack\") */\n {\n return makeStackedDelim(delim, height, center, options, mode, classes);\n }\n};\n/**\n * Make a delimiter for use with `\\left` and `\\right`, given a height and depth\n * of an expression that the delimiters surround.\n */\n\n\nvar makeLeftRightDelim = function makeLeftRightDelim(delim, height, depth, options, mode, classes) {\n // We always center \\left/\\right delimiters, so the axis is always shifted\n var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier; // Taken from TeX source, tex.web, function make_left_right\n\n var delimiterFactor = 901;\n var delimiterExtend = 5.0 / options.fontMetrics().ptPerEm;\n var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight);\n var totalHeight = Math.max( // In real TeX, calculations are done using integral values which are\n // 65536 per pt, or 655360 per em. So, the division here truncates in\n // TeX but doesn't here, producing different results. If we wanted to\n // exactly match TeX's calculation, we could do\n // Math.floor(655360 * maxDistFromAxis / 500) *\n // delimiterFactor / 655360\n // (To see the difference, compare\n // x^{x^{\\left(\\rule{0.1em}{0.68em}\\right)}}\n // in TeX and KaTeX)\n maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend); // Finally, we defer to `makeCustomSizedDelim` with our calculated total\n // height\n\n return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes);\n};\n\nvar delimiter = {\n sqrtImage: makeSqrtImage,\n sizedDelim: makeSizedDelim,\n sizeToMaxHeight: sizeToMaxHeight,\n customSizedDelim: makeCustomSizedDelim,\n leftRightDelim: makeLeftRightDelim\n};\n\n// Extra data needed for the delimiter handler down below\nvar delimiterSizes = {\n \"\\\\bigl\": {\n mclass: \"mopen\",\n size: 1\n },\n \"\\\\Bigl\": {\n mclass: \"mopen\",\n size: 2\n },\n \"\\\\biggl\": {\n mclass: \"mopen\",\n size: 3\n },\n \"\\\\Biggl\": {\n mclass: \"mopen\",\n size: 4\n },\n \"\\\\bigr\": {\n mclass: \"mclose\",\n size: 1\n },\n \"\\\\Bigr\": {\n mclass: \"mclose\",\n size: 2\n },\n \"\\\\biggr\": {\n mclass: \"mclose\",\n size: 3\n },\n \"\\\\Biggr\": {\n mclass: \"mclose\",\n size: 4\n },\n \"\\\\bigm\": {\n mclass: \"mrel\",\n size: 1\n },\n \"\\\\Bigm\": {\n mclass: \"mrel\",\n size: 2\n },\n \"\\\\biggm\": {\n mclass: \"mrel\",\n size: 3\n },\n \"\\\\Biggm\": {\n mclass: \"mrel\",\n size: 4\n },\n \"\\\\big\": {\n mclass: \"mord\",\n size: 1\n },\n \"\\\\Big\": {\n mclass: \"mord\",\n size: 2\n },\n \"\\\\bigg\": {\n mclass: \"mord\",\n size: 3\n },\n \"\\\\Bigg\": {\n mclass: \"mord\",\n size: 4\n }\n};\nvar delimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230a\", \"\\u230b\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"<\", \">\", \"\\\\langle\", \"\\u27e8\", \"\\\\rangle\", \"\\u27e9\", \"\\\\lt\", \"\\\\gt\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27ee\", \"\\u27ef\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23b0\", \"\\u23b1\", \"/\", \"\\\\backslash\", \"|\", \"\\\\vert\", \"\\\\|\", \"\\\\Vert\", \"\\\\uparrow\", \"\\\\Uparrow\", \"\\\\downarrow\", \"\\\\Downarrow\", \"\\\\updownarrow\", \"\\\\Updownarrow\", \".\"];\n\n// Delimiter functions\nfunction checkDelimiter(delim, context) {\n var symDelim = checkSymbolNodeType(delim);\n\n if (symDelim && utils.contains(delimiters, symDelim.text)) {\n return symDelim;\n } else if (symDelim) {\n throw new ParseError(\"Invalid delimiter '\" + symDelim.text + \"' after '\" + context.funcName + \"'\", delim);\n } else {\n throw new ParseError(\"Invalid delimiter type '\" + delim.type + \"'\", delim);\n }\n}\n\ndefineFunction({\n type: \"delimsizing\",\n names: [\"\\\\bigl\", \"\\\\Bigl\", \"\\\\biggl\", \"\\\\Biggl\", \"\\\\bigr\", \"\\\\Bigr\", \"\\\\biggr\", \"\\\\Biggr\", \"\\\\bigm\", \"\\\\Bigm\", \"\\\\biggm\", \"\\\\Biggm\", \"\\\\big\", \"\\\\Big\", \"\\\\bigg\", \"\\\\Bigg\"],\n props: {\n numArgs: 1,\n argTypes: [\"primitive\"]\n },\n handler: (context, args) => {\n var delim = checkDelimiter(args[0], context);\n return {\n type: \"delimsizing\",\n mode: context.parser.mode,\n size: delimiterSizes[context.funcName].size,\n mclass: delimiterSizes[context.funcName].mclass,\n delim: delim.text\n };\n },\n htmlBuilder: (group, options) => {\n if (group.delim === \".\") {\n // Empty delimiters still count as elements, even though they don't\n // show anything.\n return buildCommon.makeSpan([group.mclass]);\n } // Use delimiter.sizedDelim to generate the delimiter.\n\n\n return delimiter.sizedDelim(group.delim, group.size, options, group.mode, [group.mclass]);\n },\n mathmlBuilder: group => {\n var children = [];\n\n if (group.delim !== \".\") {\n children.push(makeText(group.delim, group.mode));\n }\n\n var node = new mathMLTree.MathNode(\"mo\", children);\n\n if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n // Only some of the delimsizing functions act as fences, and they\n // return \"mopen\" or \"mclose\" mclass.\n node.setAttribute(\"fence\", \"true\");\n } else {\n // Explicitly disable fencing if it's not a fence, to override the\n // defaults.\n node.setAttribute(\"fence\", \"false\");\n }\n\n node.setAttribute(\"stretchy\", \"true\");\n var size = makeEm(delimiter.sizeToMaxHeight[group.size]);\n node.setAttribute(\"minsize\", size);\n node.setAttribute(\"maxsize\", size);\n return node;\n }\n});\n\nfunction assertParsed(group) {\n if (!group.body) {\n throw new Error(\"Bug: The leftright ParseNode wasn't fully parsed.\");\n }\n}\n\ndefineFunction({\n type: \"leftright-right\",\n names: [\"\\\\right\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n // \\left case below triggers parsing of \\right in\n // `const right = parser.parseFunction();`\n // uses this return value.\n var color = context.parser.gullet.macros.get(\"\\\\current@color\");\n\n if (color && typeof color !== \"string\") {\n throw new ParseError(\"\\\\current@color set to non-string in \\\\right\");\n }\n\n return {\n type: \"leftright-right\",\n mode: context.parser.mode,\n delim: checkDelimiter(args[0], context).text,\n color // undefined if not set via \\color\n\n };\n }\n});\ndefineFunction({\n type: \"leftright\",\n names: [\"\\\\left\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n var delim = checkDelimiter(args[0], context);\n var parser = context.parser; // Parse out the implicit body\n\n ++parser.leftrightDepth; // parseExpression stops before '\\\\right'\n\n var body = parser.parseExpression(false);\n --parser.leftrightDepth; // Check the next token\n\n parser.expect(\"\\\\right\", false);\n var right = assertNodeType(parser.parseFunction(), \"leftright-right\");\n return {\n type: \"leftright\",\n mode: parser.mode,\n body,\n left: delim.text,\n right: right.delim,\n rightColor: right.color\n };\n },\n htmlBuilder: (group, options) => {\n assertParsed(group); // Build the inner expression\n\n var inner = buildExpression$1(group.body, options, true, [\"mopen\", \"mclose\"]);\n var innerHeight = 0;\n var innerDepth = 0;\n var hadMiddle = false; // Calculate its height and depth\n\n for (var i = 0; i < inner.length; i++) {\n // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n if (inner[i].isMiddle) {\n hadMiddle = true;\n } else {\n innerHeight = Math.max(inner[i].height, innerHeight);\n innerDepth = Math.max(inner[i].depth, innerDepth);\n }\n } // The size of delimiters is the same, regardless of what style we are\n // in. Thus, to correctly calculate the size of delimiter we need around\n // a group, we scale down the inner size based on the size.\n\n\n innerHeight *= options.sizeMultiplier;\n innerDepth *= options.sizeMultiplier;\n var leftDelim;\n\n if (group.left === \".\") {\n // Empty delimiters in \\left and \\right make null delimiter spaces.\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n // Otherwise, use leftRightDelim to generate the correct sized\n // delimiter.\n leftDelim = delimiter.leftRightDelim(group.left, innerHeight, innerDepth, options, group.mode, [\"mopen\"]);\n } // Add it to the beginning of the expression\n\n\n inner.unshift(leftDelim); // Handle middle delimiters\n\n if (hadMiddle) {\n for (var _i = 1; _i < inner.length; _i++) {\n var middleDelim = inner[_i]; // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n\n var isMiddle = middleDelim.isMiddle;\n\n if (isMiddle) {\n // Apply the options that were active when \\middle was called\n inner[_i] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group.mode, []);\n }\n }\n }\n\n var rightDelim; // Same for the right delimiter, but using color specified by \\color\n\n if (group.right === \".\") {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n var colorOptions = group.rightColor ? options.withColor(group.rightColor) : options;\n rightDelim = delimiter.leftRightDelim(group.right, innerHeight, innerDepth, colorOptions, group.mode, [\"mclose\"]);\n } // Add it to the end of the expression.\n\n\n inner.push(rightDelim);\n return buildCommon.makeSpan([\"minner\"], inner, options);\n },\n mathmlBuilder: (group, options) => {\n assertParsed(group);\n var inner = buildExpression(group.body, options);\n\n if (group.left !== \".\") {\n var leftNode = new mathMLTree.MathNode(\"mo\", [makeText(group.left, group.mode)]);\n leftNode.setAttribute(\"fence\", \"true\");\n inner.unshift(leftNode);\n }\n\n if (group.right !== \".\") {\n var rightNode = new mathMLTree.MathNode(\"mo\", [makeText(group.right, group.mode)]);\n rightNode.setAttribute(\"fence\", \"true\");\n\n if (group.rightColor) {\n rightNode.setAttribute(\"mathcolor\", group.rightColor);\n }\n\n inner.push(rightNode);\n }\n\n return makeRow(inner);\n }\n});\ndefineFunction({\n type: \"middle\",\n names: [\"\\\\middle\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n var delim = checkDelimiter(args[0], context);\n\n if (!context.parser.leftrightDepth) {\n throw new ParseError(\"\\\\middle without preceding \\\\left\", delim);\n }\n\n return {\n type: \"middle\",\n mode: context.parser.mode,\n delim: delim.text\n };\n },\n htmlBuilder: (group, options) => {\n var middleDelim;\n\n if (group.delim === \".\") {\n middleDelim = makeNullDelimiter(options, []);\n } else {\n middleDelim = delimiter.sizedDelim(group.delim, 1, options, group.mode, []);\n var isMiddle = {\n delim: group.delim,\n options\n }; // Property `isMiddle` not defined on `span`. It is only used in\n // this file above.\n // TODO: Fix this violation of the `span` type and possibly rename\n // things since `isMiddle` sounds like a boolean, but is a struct.\n // $FlowFixMe\n\n middleDelim.isMiddle = isMiddle;\n }\n\n return middleDelim;\n },\n mathmlBuilder: (group, options) => {\n // A Firefox \\middle will stretch a character vertically only if it\n // is in the fence part of the operator dictionary at:\n // https://www.w3.org/TR/MathML3/appendixc.html.\n // So we need to avoid U+2223 and use plain \"|\" instead.\n var textNode = group.delim === \"\\\\vert\" || group.delim === \"|\" ? makeText(\"|\", \"text\") : makeText(group.delim, group.mode);\n var middleNode = new mathMLTree.MathNode(\"mo\", [textNode]);\n middleNode.setAttribute(\"fence\", \"true\"); // MathML gives 5/18em spacing to each <mo> element.\n // \\middle should get delimiter spacing instead.\n\n middleNode.setAttribute(\"lspace\", \"0.05em\");\n middleNode.setAttribute(\"rspace\", \"0.05em\");\n return middleNode;\n }\n});\n\nvar htmlBuilder$7 = (group, options) => {\n // \\cancel, \\bcancel, \\xcancel, \\sout, \\fbox, \\colorbox, \\fcolorbox, \\phase\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n var inner = buildCommon.wrapFragment(buildGroup$1(group.body, options), options);\n var label = group.label.slice(1);\n var scale = options.sizeMultiplier;\n var img;\n var imgShift = 0; // In the LaTeX cancel package, line geometry is slightly different\n // depending on whether the subject is wider than it is tall, or vice versa.\n // We don't know the width of a group, so as a proxy, we test if\n // the subject is a single character. This captures most of the\n // subjects that should get the \"tall\" treatment.\n\n var isSingleChar = utils.isCharacterBox(group.body);\n\n if (label === \"sout\") {\n img = buildCommon.makeSpan([\"stretchy\", \"sout\"]);\n img.height = options.fontMetrics().defaultRuleThickness / scale;\n imgShift = -0.5 * options.fontMetrics().xHeight;\n } else if (label === \"phase\") {\n // Set a couple of dimensions from the steinmetz package.\n var lineWeight = calculateSize({\n number: 0.6,\n unit: \"pt\"\n }, options);\n var clearance = calculateSize({\n number: 0.35,\n unit: \"ex\"\n }, options); // Prevent size changes like \\Huge from affecting line thickness\n\n var newOptions = options.havingBaseSizing();\n scale = scale / newOptions.sizeMultiplier;\n var angleHeight = inner.height + inner.depth + lineWeight + clearance; // Reserve a left pad for the angle.\n\n inner.style.paddingLeft = makeEm(angleHeight / 2 + lineWeight); // Create an SVG\n\n var viewBoxHeight = Math.floor(1000 * angleHeight * scale);\n var path = phasePath(viewBoxHeight);\n var svgNode = new SvgNode([new PathNode(\"phase\", path)], {\n \"width\": \"400em\",\n \"height\": makeEm(viewBoxHeight / 1000),\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n }); // Wrap it in a span with overflow: hidden.\n\n img = buildCommon.makeSvgSpan([\"hide-tail\"], [svgNode], options);\n img.style.height = makeEm(angleHeight);\n imgShift = inner.depth + lineWeight + clearance;\n } else {\n // Add horizontal padding\n if (/cancel/.test(label)) {\n if (!isSingleChar) {\n inner.classes.push(\"cancel-pad\");\n }\n } else if (label === \"angl\") {\n inner.classes.push(\"anglpad\");\n } else {\n inner.classes.push(\"boxpad\");\n } // Add vertical padding\n\n\n var topPad = 0;\n var bottomPad = 0;\n var ruleThickness = 0; // ref: cancel package: \\advance\\totalheight2\\p@ % \"+2\"\n\n if (/box/.test(label)) {\n ruleThickness = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // User override.\n );\n topPad = options.fontMetrics().fboxsep + (label === \"colorbox\" ? 0 : ruleThickness);\n bottomPad = topPad;\n } else if (label === \"angl\") {\n ruleThickness = Math.max(options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n topPad = 4 * ruleThickness; // gap = 3 × line, plus the line itself.\n\n bottomPad = Math.max(0, 0.25 - inner.depth);\n } else {\n topPad = isSingleChar ? 0.2 : 0;\n bottomPad = topPad;\n }\n\n img = stretchy.encloseSpan(inner, label, topPad, bottomPad, options);\n\n if (/fbox|boxed|fcolorbox/.test(label)) {\n img.style.borderStyle = \"solid\";\n img.style.borderWidth = makeEm(ruleThickness);\n } else if (label === \"angl\" && ruleThickness !== 0.049) {\n img.style.borderTopWidth = makeEm(ruleThickness);\n img.style.borderRightWidth = makeEm(ruleThickness);\n }\n\n imgShift = inner.depth + bottomPad;\n\n if (group.backgroundColor) {\n img.style.backgroundColor = group.backgroundColor;\n\n if (group.borderColor) {\n img.style.borderColor = group.borderColor;\n }\n }\n }\n\n var vlist;\n\n if (group.backgroundColor) {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Put the color background behind inner;\n {\n type: \"elem\",\n elem: img,\n shift: imgShift\n }, {\n type: \"elem\",\n elem: inner,\n shift: 0\n }]\n }, options);\n } else {\n var classes = /cancel|phase/.test(label) ? [\"svg-align\"] : [];\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Write the \\cancel stroke on top of inner.\n {\n type: \"elem\",\n elem: inner,\n shift: 0\n }, {\n type: \"elem\",\n elem: img,\n shift: imgShift,\n wrapperClasses: classes\n }]\n }, options);\n }\n\n if (/cancel/.test(label)) {\n // The cancel package documentation says that cancel lines add their height\n // to the expression, but tests show that isn't how it actually works.\n vlist.height = inner.height;\n vlist.depth = inner.depth;\n }\n\n if (/cancel/.test(label) && !isSingleChar) {\n // cancel does not create horiz space for its line extension.\n return buildCommon.makeSpan([\"mord\", \"cancel-lap\"], [vlist], options);\n } else {\n return buildCommon.makeSpan([\"mord\"], [vlist], options);\n }\n};\n\nvar mathmlBuilder$6 = (group, options) => {\n var fboxsep = 0;\n var node = new mathMLTree.MathNode(group.label.indexOf(\"colorbox\") > -1 ? \"mpadded\" : \"menclose\", [buildGroup(group.body, options)]);\n\n switch (group.label) {\n case \"\\\\cancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike\");\n break;\n\n case \"\\\\bcancel\":\n node.setAttribute(\"notation\", \"downdiagonalstrike\");\n break;\n\n case \"\\\\phase\":\n node.setAttribute(\"notation\", \"phasorangle\");\n break;\n\n case \"\\\\sout\":\n node.setAttribute(\"notation\", \"horizontalstrike\");\n break;\n\n case \"\\\\fbox\":\n node.setAttribute(\"notation\", \"box\");\n break;\n\n case \"\\\\angl\":\n node.setAttribute(\"notation\", \"actuarial\");\n break;\n\n case \"\\\\fcolorbox\":\n case \"\\\\colorbox\":\n // <menclose> doesn't have a good notation option. So use <mpadded>\n // instead. Set some attributes that come included with <menclose>.\n fboxsep = options.fontMetrics().fboxsep * options.fontMetrics().ptPerEm;\n node.setAttribute(\"width\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"height\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"lspace\", fboxsep + \"pt\"); //\n\n node.setAttribute(\"voffset\", fboxsep + \"pt\");\n\n if (group.label === \"\\\\fcolorbox\") {\n var thk = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // user override\n );\n node.setAttribute(\"style\", \"border: \" + thk + \"em solid \" + String(group.borderColor));\n }\n\n break;\n\n case \"\\\\xcancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike downdiagonalstrike\");\n break;\n }\n\n if (group.backgroundColor) {\n node.setAttribute(\"mathbackground\", group.backgroundColor);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\colorbox\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"text\"]\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser,\n funcName\n } = _ref;\n var color = assertNodeType(args[0], \"color-token\").color;\n var body = args[1];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor: color,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$7,\n mathmlBuilder: mathmlBuilder$6\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fcolorbox\"],\n props: {\n numArgs: 3,\n allowedInText: true,\n argTypes: [\"color\", \"color\", \"text\"]\n },\n\n handler(_ref2, args, optArgs) {\n var {\n parser,\n funcName\n } = _ref2;\n var borderColor = assertNodeType(args[0], \"color-token\").color;\n var backgroundColor = assertNodeType(args[1], \"color-token\").color;\n var body = args[2];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor,\n borderColor,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$7,\n mathmlBuilder: mathmlBuilder$6\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: true\n },\n\n handler(_ref3, args) {\n var {\n parser\n } = _ref3;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\fbox\",\n body: args[0]\n };\n }\n\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\cancel\", \"\\\\bcancel\", \"\\\\xcancel\", \"\\\\sout\", \"\\\\phase\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref4, args) {\n var {\n parser,\n funcName\n } = _ref4;\n var body = args[0];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$7,\n mathmlBuilder: mathmlBuilder$6\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\angl\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: false\n },\n\n handler(_ref5, args) {\n var {\n parser\n } = _ref5;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\angl\",\n body: args[0]\n };\n }\n\n});\n\n/**\n * All registered environments.\n * `environments.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `environments.js`.\n */\nvar _environments = {};\nfunction defineEnvironment(_ref) {\n var {\n type,\n names,\n props,\n handler,\n htmlBuilder,\n mathmlBuilder\n } = _ref;\n // Set default values of environments.\n var data = {\n type,\n numArgs: props.numArgs || 0,\n allowedInText: false,\n numOptionalArgs: 0,\n handler\n };\n\n for (var i = 0; i < names.length; ++i) {\n // TODO: The value type of _environments should be a type union of all\n // possible `EnvSpec<>` possibilities instead of `EnvSpec<*>`, which is\n // an existential type.\n _environments[names[i]] = data;\n }\n\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n}\n\n/**\n * All registered global/built-in macros.\n * `macros.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `macros.js`.\n */\nvar _macros = {}; // This function might one day accept an additional argument and do more things.\n\nfunction defineMacro(name, body) {\n _macros[name] = body;\n}\n\n// Helper functions\nfunction getHLines(parser) {\n // Return an array. The array length = number of hlines.\n // Each element in the array tells if the line is dashed.\n var hlineInfo = [];\n parser.consumeSpaces();\n var nxt = parser.fetch().text;\n\n if (nxt === \"\\\\relax\") {\n // \\relax is an artifact of the \\cr macro below\n parser.consume();\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n while (nxt === \"\\\\hline\" || nxt === \"\\\\hdashline\") {\n parser.consume();\n hlineInfo.push(nxt === \"\\\\hdashline\");\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n return hlineInfo;\n}\n\nvar validateAmsEnvironmentContext = context => {\n var settings = context.parser.settings;\n\n if (!settings.displayMode) {\n throw new ParseError(\"{\" + context.envName + \"} can be used only in\" + \" display mode.\");\n }\n}; // autoTag (an argument to parseArray) can be one of three values:\n// * undefined: Regular (not-top-level) array; no tags on each row\n// * true: Automatic equation numbering, overridable by \\tag\n// * false: Tags allowed on each row, but no automatic numbering\n// This function *doesn't* work with the \"split\" environment name.\n\n\nfunction getAutoTag(name) {\n if (name.indexOf(\"ed\") === -1) {\n return name.indexOf(\"*\") === -1;\n } // return undefined;\n\n}\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell. If given an optional argument style\n * (\"text\", \"display\", etc.), then each cell is cast into that style.\n */\n\n\nfunction parseArray(parser, _ref, style) {\n var {\n hskipBeforeAndAfter,\n addJot,\n cols,\n arraystretch,\n colSeparationType,\n autoTag,\n singleRow,\n emptySingleRow,\n maxNumCols,\n leqno\n } = _ref;\n parser.gullet.beginGroup();\n\n if (!singleRow) {\n // \\cr is equivalent to \\\\ without the optional size argument (see below)\n // TODO: provide helpful error when \\cr is used outside array environment\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n } // Get current arraystretch if it's not set by the environment\n\n\n if (!arraystretch) {\n var stretch = parser.gullet.expandMacroAsText(\"\\\\arraystretch\");\n\n if (stretch == null) {\n // Default \\arraystretch from lttab.dtx\n arraystretch = 1;\n } else {\n arraystretch = parseFloat(stretch);\n\n if (!arraystretch || arraystretch < 0) {\n throw new ParseError(\"Invalid \\\\arraystretch: \" + stretch);\n }\n }\n } // Start group for first cell\n\n\n parser.gullet.beginGroup();\n var row = [];\n var body = [row];\n var rowGaps = [];\n var hLinesBeforeRow = [];\n var tags = autoTag != null ? [] : undefined; // amsmath uses \\global\\@eqnswtrue and \\global\\@eqnswfalse to represent\n // whether this row should have an equation number. Simulate this with\n // a \\@eqnsw macro set to 1 or 0.\n\n function beginRow() {\n if (autoTag) {\n parser.gullet.macros.set(\"\\\\@eqnsw\", \"1\", true);\n }\n }\n\n function endRow() {\n if (tags) {\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n tags.push(parser.subparse([new Token(\"\\\\df@tag\")]));\n parser.gullet.macros.set(\"\\\\df@tag\", undefined, true);\n } else {\n tags.push(Boolean(autoTag) && parser.gullet.macros.get(\"\\\\@eqnsw\") === \"1\");\n }\n }\n }\n\n beginRow(); // Test for \\hline at the top of the array.\n\n hLinesBeforeRow.push(getHLines(parser));\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Parse each cell in its own group (namespace)\n var cell = parser.parseExpression(false, singleRow ? \"\\\\end\" : \"\\\\\\\\\");\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n cell = {\n type: \"ordgroup\",\n mode: parser.mode,\n body: cell\n };\n\n if (style) {\n cell = {\n type: \"styling\",\n mode: parser.mode,\n style,\n body: [cell]\n };\n }\n\n row.push(cell);\n var next = parser.fetch().text;\n\n if (next === \"&\") {\n if (maxNumCols && row.length === maxNumCols) {\n if (singleRow || colSeparationType) {\n // {equation} or {split}\n throw new ParseError(\"Too many tab characters: &\", parser.nextToken);\n } else {\n // {array} environment\n parser.settings.reportNonstrict(\"textEnv\", \"Too few columns \" + \"specified in the {array} column argument.\");\n }\n }\n\n parser.consume();\n } else if (next === \"\\\\end\") {\n endRow(); // Arrays terminate newlines with `\\crcr` which consumes a `\\cr` if\n // the last line is empty. However, AMS environments keep the\n // empty row if it's the only one.\n // NOTE: Currently, `cell` is the last item added into `row`.\n\n if (row.length === 1 && cell.type === \"styling\" && cell.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {\n body.pop();\n }\n\n if (hLinesBeforeRow.length < body.length + 1) {\n hLinesBeforeRow.push([]);\n }\n\n break;\n } else if (next === \"\\\\\\\\\") {\n parser.consume();\n var size = void 0; // \\def\\Let@{\\let\\\\\\math@cr}\n // \\def\\math@cr{...\\math@cr@}\n // \\def\\math@cr@{\\new@ifnextchar[\\math@cr@@{\\math@cr@@[\\z@]}}\n // \\def\\math@cr@@[#1]{...\\math@cr@@@...}\n // \\def\\math@cr@@@{\\cr}\n\n if (parser.gullet.future().text !== \" \") {\n size = parser.parseSizeGroup(true);\n }\n\n rowGaps.push(size ? size.value : null);\n endRow(); // check for \\hline(s) following the row separator\n\n hLinesBeforeRow.push(getHLines(parser));\n row = [];\n body.push(row);\n beginRow();\n } else {\n throw new ParseError(\"Expected & or \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n } // End cell group\n\n\n parser.gullet.endGroup(); // End array group defining \\cr\n\n parser.gullet.endGroup();\n return {\n type: \"array\",\n mode: parser.mode,\n addJot,\n arraystretch,\n body,\n cols,\n rowGaps,\n hskipBeforeAndAfter,\n hLinesBeforeRow,\n colSeparationType,\n tags,\n leqno\n };\n} // Decides on a style for cells in an array according to whether the given\n// environment name starts with the letter 'd'.\n\n\nfunction dCellStyle(envName) {\n if (envName.slice(0, 1) === \"d\") {\n return \"display\";\n } else {\n return \"text\";\n }\n}\n\nvar htmlBuilder$6 = function htmlBuilder(group, options) {\n var r;\n var c;\n var nr = group.body.length;\n var hLinesBeforeRow = group.hLinesBeforeRow;\n var nc = 0;\n var body = new Array(nr);\n var hlines = [];\n var ruleThickness = Math.max( // From LaTeX \\showthe\\arrayrulewidth. Equals 0.04 em.\n options.fontMetrics().arrayRuleWidth, options.minRuleThickness // User override.\n ); // Horizontal spacing\n\n var pt = 1 / options.fontMetrics().ptPerEm;\n var arraycolsep = 5 * pt; // default value, i.e. \\arraycolsep in article.cls\n\n if (group.colSeparationType && group.colSeparationType === \"small\") {\n // We're in a {smallmatrix}. Default column space is \\thickspace,\n // i.e. 5/18em = 0.2778em, per amsmath.dtx for {smallmatrix}.\n // But that needs adjustment because LaTeX applies \\scriptstyle to the\n // entire array, including the colspace, but this function applies\n // \\scriptstyle only inside each element.\n var localMultiplier = options.havingStyle(Style$1.SCRIPT).sizeMultiplier;\n arraycolsep = 0.2778 * (localMultiplier / options.sizeMultiplier);\n } // Vertical spacing\n\n\n var baselineskip = group.colSeparationType === \"CD\" ? calculateSize({\n number: 3,\n unit: \"ex\"\n }, options) : 12 * pt; // see size10.clo\n // Default \\jot from ltmath.dtx\n // TODO(edemaine): allow overriding \\jot via \\setlength (#687)\n\n var jot = 3 * pt;\n var arrayskip = group.arraystretch * baselineskip;\n var arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n\n var arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n var totalHeight = 0; // Set a position for \\hline(s) at the top of the array, if any.\n\n function setHLinePos(hlinesInGap) {\n for (var i = 0; i < hlinesInGap.length; ++i) {\n if (i > 0) {\n totalHeight += 0.25;\n }\n\n hlines.push({\n pos: totalHeight,\n isDashed: hlinesInGap[i]\n });\n }\n }\n\n setHLinePos(hLinesBeforeRow[0]);\n\n for (r = 0; r < group.body.length; ++r) {\n var inrow = group.body[r];\n var height = arstrutHeight; // \\@array adds an \\@arstrut\n\n var depth = arstrutDepth; // to each tow (via the template)\n\n if (nc < inrow.length) {\n nc = inrow.length;\n }\n\n var outrow = new Array(inrow.length);\n\n for (c = 0; c < inrow.length; ++c) {\n var elt = buildGroup$1(inrow[c], options);\n\n if (depth < elt.depth) {\n depth = elt.depth;\n }\n\n if (height < elt.height) {\n height = elt.height;\n }\n\n outrow[c] = elt;\n }\n\n var rowGap = group.rowGaps[r];\n var gap = 0;\n\n if (rowGap) {\n gap = calculateSize(rowGap, options);\n\n if (gap > 0) {\n // \\@argarraycr\n gap += arstrutDepth;\n\n if (depth < gap) {\n depth = gap; // \\@xargarraycr\n }\n\n gap = 0;\n }\n } // In AMS multiline environments such as aligned and gathered, rows\n // correspond to lines that have additional \\jot added to the\n // \\baselineskip via \\openup.\n\n\n if (group.addJot) {\n depth += jot;\n }\n\n outrow.height = height;\n outrow.depth = depth;\n totalHeight += height;\n outrow.pos = totalHeight;\n totalHeight += depth + gap; // \\@yargarraycr\n\n body[r] = outrow; // Set a position for \\hline(s), if any.\n\n setHLinePos(hLinesBeforeRow[r + 1]);\n }\n\n var offset = totalHeight / 2 + options.fontMetrics().axisHeight;\n var colDescriptions = group.cols || [];\n var cols = [];\n var colSep;\n var colDescrNum;\n var tagSpans = [];\n\n if (group.tags && group.tags.some(tag => tag)) {\n // An environment with manual tags and/or automatic equation numbers.\n // Create node(s), the latter of which trigger CSS counter increment.\n for (r = 0; r < nr; ++r) {\n var rw = body[r];\n var shift = rw.pos - offset;\n var tag = group.tags[r];\n var tagSpan = void 0;\n\n if (tag === true) {\n // automatic numbering\n tagSpan = buildCommon.makeSpan([\"eqn-num\"], [], options);\n } else if (tag === false) {\n // \\nonumber/\\notag or starred environment\n tagSpan = buildCommon.makeSpan([], [], options);\n } else {\n // manual \\tag\n tagSpan = buildCommon.makeSpan([], buildExpression$1(tag, options, true), options);\n }\n\n tagSpan.depth = rw.depth;\n tagSpan.height = rw.height;\n tagSpans.push({\n type: \"elem\",\n elem: tagSpan,\n shift\n });\n }\n }\n\n for (c = 0, colDescrNum = 0; // Continue while either there are more columns or more column\n // descriptions, so trailing separators don't get lost.\n c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) {\n var colDescr = colDescriptions[colDescrNum] || {};\n var firstSeparator = true;\n\n while (colDescr.type === \"separator\") {\n // If there is more than one separator in a row, add a space\n // between them.\n if (!firstSeparator) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(options.fontMetrics().doubleRuleSep);\n cols.push(colSep);\n }\n\n if (colDescr.separator === \"|\" || colDescr.separator === \":\") {\n var lineType = colDescr.separator === \"|\" ? \"solid\" : \"dashed\";\n var separator = buildCommon.makeSpan([\"vertical-separator\"], [], options);\n separator.style.height = makeEm(totalHeight);\n separator.style.borderRightWidth = makeEm(ruleThickness);\n separator.style.borderRightStyle = lineType;\n separator.style.margin = \"0 \" + makeEm(-ruleThickness / 2);\n\n var _shift = totalHeight - offset;\n\n if (_shift) {\n separator.style.verticalAlign = makeEm(-_shift);\n }\n\n cols.push(separator);\n } else {\n throw new ParseError(\"Invalid separator type: \" + colDescr.separator);\n }\n\n colDescrNum++;\n colDescr = colDescriptions[colDescrNum] || {};\n firstSeparator = false;\n }\n\n if (c >= nc) {\n continue;\n }\n\n var sepwidth = void 0;\n\n if (c > 0 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.pregap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(sepwidth);\n cols.push(colSep);\n }\n }\n\n var col = [];\n\n for (r = 0; r < nr; ++r) {\n var row = body[r];\n var elem = row[c];\n\n if (!elem) {\n continue;\n }\n\n var _shift2 = row.pos - offset;\n\n elem.depth = row.depth;\n elem.height = row.height;\n col.push({\n type: \"elem\",\n elem: elem,\n shift: _shift2\n });\n }\n\n col = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: col\n }, options);\n col = buildCommon.makeSpan([\"col-align-\" + (colDescr.align || \"c\")], [col]);\n cols.push(col);\n\n if (c < nc - 1 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.postgap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(sepwidth);\n cols.push(colSep);\n }\n }\n }\n\n body = buildCommon.makeSpan([\"mtable\"], cols); // Add \\hline(s), if any.\n\n if (hlines.length > 0) {\n var line = buildCommon.makeLineSpan(\"hline\", options, ruleThickness);\n var dashes = buildCommon.makeLineSpan(\"hdashline\", options, ruleThickness);\n var vListElems = [{\n type: \"elem\",\n elem: body,\n shift: 0\n }];\n\n while (hlines.length > 0) {\n var hline = hlines.pop();\n var lineShift = hline.pos - offset;\n\n if (hline.isDashed) {\n vListElems.push({\n type: \"elem\",\n elem: dashes,\n shift: lineShift\n });\n } else {\n vListElems.push({\n type: \"elem\",\n elem: line,\n shift: lineShift\n });\n }\n }\n\n body = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vListElems\n }, options);\n }\n\n if (tagSpans.length === 0) {\n return buildCommon.makeSpan([\"mord\"], [body], options);\n } else {\n var eqnNumCol = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: tagSpans\n }, options);\n eqnNumCol = buildCommon.makeSpan([\"tag\"], [eqnNumCol], options);\n return buildCommon.makeFragment([body, eqnNumCol]);\n }\n};\n\nvar alignMap = {\n c: \"center \",\n l: \"left \",\n r: \"right \"\n};\n\nvar mathmlBuilder$5 = function mathmlBuilder(group, options) {\n var tbl = [];\n var glue = new mathMLTree.MathNode(\"mtd\", [], [\"mtr-glue\"]);\n var tag = new mathMLTree.MathNode(\"mtd\", [], [\"mml-eqn-num\"]);\n\n for (var i = 0; i < group.body.length; i++) {\n var rw = group.body[i];\n var row = [];\n\n for (var j = 0; j < rw.length; j++) {\n row.push(new mathMLTree.MathNode(\"mtd\", [buildGroup(rw[j], options)]));\n }\n\n if (group.tags && group.tags[i]) {\n row.unshift(glue);\n row.push(glue);\n\n if (group.leqno) {\n row.unshift(tag);\n } else {\n row.push(tag);\n }\n }\n\n tbl.push(new mathMLTree.MathNode(\"mtr\", row));\n }\n\n var table = new mathMLTree.MathNode(\"mtable\", tbl); // Set column alignment, row spacing, column spacing, and\n // array lines by setting attributes on the table element.\n // Set the row spacing. In MathML, we specify a gap distance.\n // We do not use rowGap[] because MathML automatically increases\n // cell height with the height/depth of the element content.\n // LaTeX \\arraystretch multiplies the row baseline-to-baseline distance.\n // We simulate this by adding (arraystretch - 1)em to the gap. This\n // does a reasonable job of adjusting arrays containing 1 em tall content.\n // The 0.16 and 0.09 values are found empirically. They produce an array\n // similar to LaTeX and in which content does not interfere with \\hlines.\n\n var gap = group.arraystretch === 0.5 ? 0.1 // {smallmatrix}, {subarray}\n : 0.16 + group.arraystretch - 1 + (group.addJot ? 0.09 : 0);\n table.setAttribute(\"rowspacing\", makeEm(gap)); // MathML table lines go only between cells.\n // To place a line on an edge we'll use <menclose>, if necessary.\n\n var menclose = \"\";\n var align = \"\";\n\n if (group.cols && group.cols.length > 0) {\n // Find column alignment, column spacing, and vertical lines.\n var cols = group.cols;\n var columnLines = \"\";\n var prevTypeWasAlign = false;\n var iStart = 0;\n var iEnd = cols.length;\n\n if (cols[0].type === \"separator\") {\n menclose += \"top \";\n iStart = 1;\n }\n\n if (cols[cols.length - 1].type === \"separator\") {\n menclose += \"bottom \";\n iEnd -= 1;\n }\n\n for (var _i = iStart; _i < iEnd; _i++) {\n if (cols[_i].type === \"align\") {\n align += alignMap[cols[_i].align];\n\n if (prevTypeWasAlign) {\n columnLines += \"none \";\n }\n\n prevTypeWasAlign = true;\n } else if (cols[_i].type === \"separator\") {\n // MathML accepts only single lines between cells.\n // So we read only the first of consecutive separators.\n if (prevTypeWasAlign) {\n columnLines += cols[_i].separator === \"|\" ? \"solid \" : \"dashed \";\n prevTypeWasAlign = false;\n }\n }\n }\n\n table.setAttribute(\"columnalign\", align.trim());\n\n if (/[sd]/.test(columnLines)) {\n table.setAttribute(\"columnlines\", columnLines.trim());\n }\n } // Set column spacing.\n\n\n if (group.colSeparationType === \"align\") {\n var _cols = group.cols || [];\n\n var spacing = \"\";\n\n for (var _i2 = 1; _i2 < _cols.length; _i2++) {\n spacing += _i2 % 2 ? \"0em \" : \"1em \";\n }\n\n table.setAttribute(\"columnspacing\", spacing.trim());\n } else if (group.colSeparationType === \"alignat\" || group.colSeparationType === \"gather\") {\n table.setAttribute(\"columnspacing\", \"0em\");\n } else if (group.colSeparationType === \"small\") {\n table.setAttribute(\"columnspacing\", \"0.2778em\");\n } else if (group.colSeparationType === \"CD\") {\n table.setAttribute(\"columnspacing\", \"0.5em\");\n } else {\n table.setAttribute(\"columnspacing\", \"1em\");\n } // Address \\hline and \\hdashline\n\n\n var rowLines = \"\";\n var hlines = group.hLinesBeforeRow;\n menclose += hlines[0].length > 0 ? \"left \" : \"\";\n menclose += hlines[hlines.length - 1].length > 0 ? \"right \" : \"\";\n\n for (var _i3 = 1; _i3 < hlines.length - 1; _i3++) {\n rowLines += hlines[_i3].length === 0 ? \"none \" // MathML accepts only a single line between rows. Read one element.\n : hlines[_i3][0] ? \"dashed \" : \"solid \";\n }\n\n if (/[sd]/.test(rowLines)) {\n table.setAttribute(\"rowlines\", rowLines.trim());\n }\n\n if (menclose !== \"\") {\n table = new mathMLTree.MathNode(\"menclose\", [table]);\n table.setAttribute(\"notation\", menclose.trim());\n }\n\n if (group.arraystretch && group.arraystretch < 1) {\n // A small array. Wrap in scriptstyle so row gap is not too large.\n table = new mathMLTree.MathNode(\"mstyle\", [table]);\n table.setAttribute(\"scriptlevel\", \"1\");\n }\n\n return table;\n}; // Convenience function for align, align*, aligned, alignat, alignat*, alignedat.\n\n\nvar alignedHandler = function alignedHandler(context, args) {\n if (context.envName.indexOf(\"ed\") === -1) {\n validateAmsEnvironmentContext(context);\n }\n\n var cols = [];\n var separationType = context.envName.indexOf(\"at\") > -1 ? \"alignat\" : \"align\";\n var isSplit = context.envName === \"split\";\n var res = parseArray(context.parser, {\n cols,\n addJot: true,\n autoTag: isSplit ? undefined : getAutoTag(context.envName),\n emptySingleRow: true,\n colSeparationType: separationType,\n maxNumCols: isSplit ? 2 : undefined,\n leqno: context.parser.settings.leqno\n }, \"display\"); // Determining number of columns.\n // 1. If the first argument is given, we use it as a number of columns,\n // and makes sure that each row doesn't exceed that number.\n // 2. Otherwise, just count number of columns = maximum number\n // of cells in each row (\"aligned\" mode -- isAligned will be true).\n //\n // At the same time, prepend empty group {} at beginning of every second\n // cell in each row (starting with second cell) so that operators become\n // binary. This behavior is implemented in amsmath's \\start@aligned.\n\n var numMaths;\n var numCols = 0;\n var emptyGroup = {\n type: \"ordgroup\",\n mode: context.mode,\n body: []\n };\n\n if (args[0] && args[0].type === \"ordgroup\") {\n var arg0 = \"\";\n\n for (var i = 0; i < args[0].body.length; i++) {\n var textord = assertNodeType(args[0].body[i], \"textord\");\n arg0 += textord.text;\n }\n\n numMaths = Number(arg0);\n numCols = numMaths * 2;\n }\n\n var isAligned = !numCols;\n res.body.forEach(function (row) {\n for (var _i4 = 1; _i4 < row.length; _i4 += 2) {\n // Modify ordgroup node within styling node\n var styling = assertNodeType(row[_i4], \"styling\");\n var ordgroup = assertNodeType(styling.body[0], \"ordgroup\");\n ordgroup.body.unshift(emptyGroup);\n }\n\n if (!isAligned) {\n // Case 1\n var curMaths = row.length / 2;\n\n if (numMaths < curMaths) {\n throw new ParseError(\"Too many math in a row: \" + (\"expected \" + numMaths + \", but got \" + curMaths), row[0]);\n }\n } else if (numCols < row.length) {\n // Case 2\n numCols = row.length;\n }\n }); // Adjusting alignment.\n // In aligned mode, we add one \\qquad between columns;\n // otherwise we add nothing.\n\n for (var _i5 = 0; _i5 < numCols; ++_i5) {\n var align = \"r\";\n var pregap = 0;\n\n if (_i5 % 2 === 1) {\n align = \"l\";\n } else if (_i5 > 0 && isAligned) {\n // \"aligned\" mode.\n pregap = 1; // add one \\quad\n }\n\n cols[_i5] = {\n type: \"align\",\n align: align,\n pregap: pregap,\n postgap: 0\n };\n }\n\n res.colSeparationType = isAligned ? \"align\" : \"alignat\";\n return res;\n}; // Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\n// {darray} is an {array} environment where cells are set in \\displaystyle,\n// as defined in nccmath.sty.\n\n\ndefineEnvironment({\n type: \"array\",\n names: [\"array\", \"darray\"],\n props: {\n numArgs: 1\n },\n\n handler(context, args) {\n // Since no types are specified above, the two possibilities are\n // - The argument is wrapped in {} or [], in which case Parser's\n // parseGroup() returns an \"ordgroup\" wrapping some symbol node.\n // - The argument is a bare symbol node.\n var symNode = checkSymbolNodeType(args[0]);\n var colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n var cols = colalign.map(function (nde) {\n var node = assertSymbolNodeType(nde);\n var ca = node.text;\n\n if (\"lcr\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n } else if (ca === \"|\") {\n return {\n type: \"separator\",\n separator: \"|\"\n };\n } else if (ca === \":\") {\n return {\n type: \"separator\",\n separator: \":\"\n };\n }\n\n throw new ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n var res = {\n cols,\n hskipBeforeAndAfter: true,\n // \\@preamble in lttab.dtx\n maxNumCols: cols.length\n };\n return parseArray(context.parser, res, dCellStyle(context.envName));\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\n// The mathtools package adds starred versions of the same environments.\n// These have an optional argument to choose left|center|right justification.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"matrix\", \"pmatrix\", \"bmatrix\", \"Bmatrix\", \"vmatrix\", \"Vmatrix\", \"matrix*\", \"pmatrix*\", \"bmatrix*\", \"Bmatrix*\", \"vmatrix*\", \"Vmatrix*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n var delimiters = {\n \"matrix\": null,\n \"pmatrix\": [\"(\", \")\"],\n \"bmatrix\": [\"[\", \"]\"],\n \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n \"vmatrix\": [\"|\", \"|\"],\n \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"]\n }[context.envName.replace(\"*\", \"\")]; // \\hskip -\\arraycolsep in amsmath\n\n var colAlign = \"c\";\n var payload = {\n hskipBeforeAndAfter: false,\n cols: [{\n type: \"align\",\n align: colAlign\n }]\n };\n\n if (context.envName.charAt(context.envName.length - 1) === \"*\") {\n // It's one of the mathtools starred functions.\n // Parse the optional alignment argument.\n var parser = context.parser;\n parser.consumeSpaces();\n\n if (parser.fetch().text === \"[\") {\n parser.consume();\n parser.consumeSpaces();\n colAlign = parser.fetch().text;\n\n if (\"lcr\".indexOf(colAlign) === -1) {\n throw new ParseError(\"Expected l or c or r\", parser.nextToken);\n }\n\n parser.consume();\n parser.consumeSpaces();\n parser.expect(\"]\");\n parser.consume();\n payload.cols = [{\n type: \"align\",\n align: colAlign\n }];\n }\n }\n\n var res = parseArray(context.parser, payload, dCellStyle(context.envName)); // Populate cols with the correct number of column alignment specs.\n\n var numCols = Math.max(0, ...res.body.map(row => row.length));\n res.cols = new Array(numCols).fill({\n type: \"align\",\n align: colAlign\n });\n return delimiters ? {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: delimiters[0],\n right: delimiters[1],\n rightColor: undefined // \\right uninfluenced by \\color in array\n\n } : res;\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"smallmatrix\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n var payload = {\n arraystretch: 0.5\n };\n var res = parseArray(context.parser, payload, \"script\");\n res.colSeparationType = \"small\";\n return res;\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"subarray\"],\n props: {\n numArgs: 1\n },\n\n handler(context, args) {\n // Parsing of {subarray} is similar to {array}\n var symNode = checkSymbolNodeType(args[0]);\n var colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n var cols = colalign.map(function (nde) {\n var node = assertSymbolNodeType(nde);\n var ca = node.text; // {subarray} only recognizes \"l\" & \"c\"\n\n if (\"lc\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n }\n\n throw new ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n\n if (cols.length > 1) {\n throw new ParseError(\"{subarray} can contain only one column\");\n }\n\n var res = {\n cols,\n hskipBeforeAndAfter: false,\n arraystretch: 0.5\n };\n res = parseArray(context.parser, res, \"script\");\n\n if (res.body.length > 0 && res.body[0].length > 1) {\n throw new ParseError(\"{subarray} can contain only one column\");\n }\n\n return res;\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\n// {dcases} is a {cases} environment where cells are set in \\displaystyle,\n// as defined in mathtools.sty.\n// {rcases} is another mathtools environment. It's brace is on the right side.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"cases\", \"dcases\", \"rcases\", \"drcases\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n var payload = {\n arraystretch: 1.2,\n cols: [{\n type: \"align\",\n align: \"l\",\n pregap: 0,\n // TODO(kevinb) get the current style.\n // For now we use the metrics for TEXT style which is what we were\n // doing before. Before attempting to get the current style we\n // should look at TeX's behavior especially for \\over and matrices.\n postgap: 1.0\n /* 1em quad */\n\n }, {\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: 0\n }]\n };\n var res = parseArray(context.parser, payload, dCellStyle(context.envName));\n return {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: context.envName.indexOf(\"r\") > -1 ? \".\" : \"\\\\{\",\n right: context.envName.indexOf(\"r\") > -1 ? \"\\\\}\" : \".\",\n rightColor: undefined\n };\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // In the align environment, one uses ampersands, &, to specify number of\n// columns in each row, and to locate spacing between each column.\n// align gets automatic numbering. align* and aligned do not.\n// The alignedat environment can be used in math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"align\", \"align*\", \"aligned\", \"split\"],\n props: {\n numArgs: 0\n },\n handler: alignedHandler,\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // A gathered environment is like an array environment with one centered\n// column, but where rows are considered lines so get \\jot line spacing\n// and contents are set in \\displaystyle.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"gathered\", \"gather\", \"gather*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n if (utils.contains([\"gather\", \"gather*\"], context.envName)) {\n validateAmsEnvironmentContext(context);\n }\n\n var res = {\n cols: [{\n type: \"align\",\n align: \"c\"\n }],\n addJot: true,\n colSeparationType: \"gather\",\n autoTag: getAutoTag(context.envName),\n emptySingleRow: true,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // alignat environment is like an align environment, but one must explicitly\n// specify maximum number of columns in each row, and can adjust spacing between\n// each columns.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"alignat\", \"alignat*\", \"alignedat\"],\n props: {\n numArgs: 1\n },\n handler: alignedHandler,\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"equation\", \"equation*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n validateAmsEnvironmentContext(context);\n var res = {\n autoTag: getAutoTag(context.envName),\n emptySingleRow: true,\n singleRow: true,\n maxNumCols: 1,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"CD\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n validateAmsEnvironmentContext(context);\n return parseCD(context.parser);\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineMacro(\"\\\\nonumber\", \"\\\\gdef\\\\@eqnsw{0}\");\ndefineMacro(\"\\\\notag\", \"\\\\nonumber\"); // Catch \\hline outside array environment\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\hline\", \"\\\\hdashline\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: true\n },\n\n handler(context, args) {\n throw new ParseError(context.funcName + \" valid only within array environment\");\n }\n\n});\n\nvar environments = _environments;\n\n// defineEnvironment definitions.\n\ndefineFunction({\n type: \"environment\",\n names: [\"\\\\begin\", \"\\\\end\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"]\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var nameGroup = args[0];\n\n if (nameGroup.type !== \"ordgroup\") {\n throw new ParseError(\"Invalid environment name\", nameGroup);\n }\n\n var envName = \"\";\n\n for (var i = 0; i < nameGroup.body.length; ++i) {\n envName += assertNodeType(nameGroup.body[i], \"textord\").text;\n }\n\n if (funcName === \"\\\\begin\") {\n // begin...end is similar to left...right\n if (!environments.hasOwnProperty(envName)) {\n throw new ParseError(\"No such environment: \" + envName, nameGroup);\n } // Build the environment object. Arguments and other information will\n // be made available to the begin and end methods using properties.\n\n\n var env = environments[envName];\n var {\n args: _args,\n optArgs\n } = parser.parseArguments(\"\\\\begin{\" + envName + \"}\", env);\n var context = {\n mode: parser.mode,\n envName,\n parser\n };\n var result = env.handler(context, _args, optArgs);\n parser.expect(\"\\\\end\", false);\n var endNameToken = parser.nextToken;\n var end = assertNodeType(parser.parseFunction(), \"environment\");\n\n if (end.name !== envName) {\n throw new ParseError(\"Mismatch: \\\\begin{\" + envName + \"} matched by \\\\end{\" + end.name + \"}\", endNameToken);\n } // $FlowFixMe, \"environment\" handler returns an environment ParseNode\n\n\n return result;\n }\n\n return {\n type: \"environment\",\n mode: parser.mode,\n name: envName,\n nameGroup\n };\n }\n\n});\n\n// TODO(kevinb): implement \\\\sl and \\\\sc\n\nvar htmlBuilder$5 = (group, options) => {\n var font = group.font;\n var newOptions = options.withFont(font);\n return buildGroup$1(group.body, newOptions);\n};\n\nvar mathmlBuilder$4 = (group, options) => {\n var font = group.font;\n var newOptions = options.withFont(font);\n return buildGroup(group.body, newOptions);\n};\n\nvar fontAliases = {\n \"\\\\Bbb\": \"\\\\mathbb\",\n \"\\\\bold\": \"\\\\mathbf\",\n \"\\\\frak\": \"\\\\mathfrak\",\n \"\\\\bm\": \"\\\\boldsymbol\"\n};\ndefineFunction({\n type: \"font\",\n names: [// styles, except \\boldsymbol defined below\n \"\\\\mathrm\", \"\\\\mathit\", \"\\\\mathbf\", \"\\\\mathnormal\", // families\n \"\\\\mathbb\", \"\\\\mathcal\", \"\\\\mathfrak\", \"\\\\mathscr\", \"\\\\mathsf\", \"\\\\mathtt\", // aliases, except \\bm defined below\n \"\\\\Bbb\", \"\\\\bold\", \"\\\\frak\"],\n props: {\n numArgs: 1,\n allowedInArgument: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var body = normalizeArgument(args[0]);\n var func = funcName;\n\n if (func in fontAliases) {\n func = fontAliases[func];\n }\n\n return {\n type: \"font\",\n mode: parser.mode,\n font: func.slice(1),\n body\n };\n },\n htmlBuilder: htmlBuilder$5,\n mathmlBuilder: mathmlBuilder$4\n});\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\boldsymbol\", \"\\\\bm\"],\n props: {\n numArgs: 1\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var body = args[0];\n var isCharacterBox = utils.isCharacterBox(body); // amsbsy.sty's \\boldsymbol uses \\binrel spacing to inherit the\n // argument's bin|rel|ord status\n\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(body),\n body: [{\n type: \"font\",\n mode: parser.mode,\n font: \"boldsymbol\",\n body\n }],\n isCharacterBox: isCharacterBox\n };\n }\n}); // Old font changing functions\n\ndefineFunction({\n type: \"font\",\n names: [\"\\\\rm\", \"\\\\sf\", \"\\\\tt\", \"\\\\bf\", \"\\\\it\", \"\\\\cal\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: (_ref3, args) => {\n var {\n parser,\n funcName,\n breakOnTokenText\n } = _ref3;\n var {\n mode\n } = parser;\n var body = parser.parseExpression(true, breakOnTokenText);\n var style = \"math\" + funcName.slice(1);\n return {\n type: \"font\",\n mode: mode,\n font: style,\n body: {\n type: \"ordgroup\",\n mode: parser.mode,\n body\n }\n };\n },\n htmlBuilder: htmlBuilder$5,\n mathmlBuilder: mathmlBuilder$4\n});\n\nvar adjustStyle = (size, originalStyle) => {\n // Figure out what style this fraction should be in based on the\n // function used\n var style = originalStyle;\n\n if (size === \"display\") {\n // Get display style as a default.\n // If incoming style is sub/sup, use style.text() to get correct size.\n style = style.id >= Style$1.SCRIPT.id ? style.text() : Style$1.DISPLAY;\n } else if (size === \"text\" && style.size === Style$1.DISPLAY.size) {\n // We're in a \\tfrac but incoming style is displaystyle, so:\n style = Style$1.TEXT;\n } else if (size === \"script\") {\n style = Style$1.SCRIPT;\n } else if (size === \"scriptscript\") {\n style = Style$1.SCRIPTSCRIPT;\n }\n\n return style;\n};\n\nvar htmlBuilder$4 = (group, options) => {\n // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n var style = adjustStyle(group.size, options.style);\n var nstyle = style.fracNum();\n var dstyle = style.fracDen();\n var newOptions;\n newOptions = options.havingStyle(nstyle);\n var numerm = buildGroup$1(group.numer, newOptions, options);\n\n if (group.continued) {\n // \\cfrac inserts a \\strut into the numerator.\n // Get \\strut dimensions from TeXbook page 353.\n var hStrut = 8.5 / options.fontMetrics().ptPerEm;\n var dStrut = 3.5 / options.fontMetrics().ptPerEm;\n numerm.height = numerm.height < hStrut ? hStrut : numerm.height;\n numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth;\n }\n\n newOptions = options.havingStyle(dstyle);\n var denomm = buildGroup$1(group.denom, newOptions, options);\n var rule;\n var ruleWidth;\n var ruleSpacing;\n\n if (group.hasBarLine) {\n if (group.barSize) {\n ruleWidth = calculateSize(group.barSize, options);\n rule = buildCommon.makeLineSpan(\"frac-line\", options, ruleWidth);\n } else {\n rule = buildCommon.makeLineSpan(\"frac-line\", options);\n }\n\n ruleWidth = rule.height;\n ruleSpacing = rule.height;\n } else {\n rule = null;\n ruleWidth = 0;\n ruleSpacing = options.fontMetrics().defaultRuleThickness;\n } // Rule 15b\n\n\n var numShift;\n var clearance;\n var denomShift;\n\n if (style.size === Style$1.DISPLAY.size || group.size === \"display\") {\n numShift = options.fontMetrics().num1;\n\n if (ruleWidth > 0) {\n clearance = 3 * ruleSpacing;\n } else {\n clearance = 7 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom1;\n } else {\n if (ruleWidth > 0) {\n numShift = options.fontMetrics().num2;\n clearance = ruleSpacing;\n } else {\n numShift = options.fontMetrics().num3;\n clearance = 3 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom2;\n }\n\n var frac;\n\n if (!rule) {\n // Rule 15c\n var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);\n\n if (candidateClearance < clearance) {\n numShift += 0.5 * (clearance - candidateClearance);\n denomShift += 0.5 * (clearance - candidateClearance);\n }\n\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } else {\n // Rule 15d\n var axisHeight = options.fontMetrics().axisHeight;\n\n if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) {\n numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth));\n }\n\n if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) {\n denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift));\n }\n\n var midShift = -(axisHeight - 0.5 * ruleWidth);\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: rule,\n shift: midShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n // account for the possible size change here.\n\n\n newOptions = options.havingStyle(style);\n frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier;\n frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier; // Rule 15e\n\n var delimSize;\n\n if (style.size === Style$1.DISPLAY.size) {\n delimSize = options.fontMetrics().delim1;\n } else if (style.size === Style$1.SCRIPTSCRIPT.size) {\n delimSize = options.havingStyle(Style$1.SCRIPT).fontMetrics().delim2;\n } else {\n delimSize = options.fontMetrics().delim2;\n }\n\n var leftDelim;\n var rightDelim;\n\n if (group.leftDelim == null) {\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n leftDelim = delimiter.customSizedDelim(group.leftDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mopen\"]);\n }\n\n if (group.continued) {\n rightDelim = buildCommon.makeSpan([]); // zero width for \\cfrac\n } else if (group.rightDelim == null) {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n rightDelim = delimiter.customSizedDelim(group.rightDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mclose\"]);\n }\n\n return buildCommon.makeSpan([\"mord\"].concat(newOptions.sizingClasses(options)), [leftDelim, buildCommon.makeSpan([\"mfrac\"], [frac]), rightDelim], options);\n};\n\nvar mathmlBuilder$3 = (group, options) => {\n var node = new mathMLTree.MathNode(\"mfrac\", [buildGroup(group.numer, options), buildGroup(group.denom, options)]);\n\n if (!group.hasBarLine) {\n node.setAttribute(\"linethickness\", \"0px\");\n } else if (group.barSize) {\n var ruleWidth = calculateSize(group.barSize, options);\n node.setAttribute(\"linethickness\", makeEm(ruleWidth));\n }\n\n var style = adjustStyle(group.size, options.style);\n\n if (style.size !== options.style.size) {\n node = new mathMLTree.MathNode(\"mstyle\", [node]);\n var isDisplay = style.size === Style$1.DISPLAY.size ? \"true\" : \"false\";\n node.setAttribute(\"displaystyle\", isDisplay);\n node.setAttribute(\"scriptlevel\", \"0\");\n }\n\n if (group.leftDelim != null || group.rightDelim != null) {\n var withDelims = [];\n\n if (group.leftDelim != null) {\n var leftOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.leftDelim.replace(\"\\\\\", \"\"))]);\n leftOp.setAttribute(\"fence\", \"true\");\n withDelims.push(leftOp);\n }\n\n withDelims.push(node);\n\n if (group.rightDelim != null) {\n var rightOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.rightDelim.replace(\"\\\\\", \"\"))]);\n rightOp.setAttribute(\"fence\", \"true\");\n withDelims.push(rightOp);\n }\n\n return makeRow(withDelims);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\dfrac\", \"\\\\frac\", \"\\\\tfrac\", \"\\\\dbinom\", \"\\\\binom\", \"\\\\tbinom\", \"\\\\\\\\atopfrac\", // can’t be entered directly\n \"\\\\\\\\bracefrac\", \"\\\\\\\\brackfrac\" // ditto\n ],\n props: {\n numArgs: 2,\n allowedInArgument: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var numer = args[0];\n var denom = args[1];\n var hasBarLine;\n var leftDelim = null;\n var rightDelim = null;\n var size = \"auto\";\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\frac\":\n case \"\\\\tfrac\":\n hasBarLine = true;\n break;\n\n case \"\\\\\\\\atopfrac\":\n hasBarLine = false;\n break;\n\n case \"\\\\dbinom\":\n case \"\\\\binom\":\n case \"\\\\tbinom\":\n hasBarLine = false;\n leftDelim = \"(\";\n rightDelim = \")\";\n break;\n\n case \"\\\\\\\\bracefrac\":\n hasBarLine = false;\n leftDelim = \"\\\\{\";\n rightDelim = \"\\\\}\";\n break;\n\n case \"\\\\\\\\brackfrac\":\n hasBarLine = false;\n leftDelim = \"[\";\n rightDelim = \"]\";\n break;\n\n default:\n throw new Error(\"Unrecognized genfrac command\");\n }\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\dbinom\":\n size = \"display\";\n break;\n\n case \"\\\\tfrac\":\n case \"\\\\tbinom\":\n size = \"text\";\n break;\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: false,\n numer,\n denom,\n hasBarLine,\n leftDelim,\n rightDelim,\n size,\n barSize: null\n };\n },\n htmlBuilder: htmlBuilder$4,\n mathmlBuilder: mathmlBuilder$3\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\cfrac\"],\n props: {\n numArgs: 2\n },\n handler: (_ref2, args) => {\n var {\n parser,\n funcName\n } = _ref2;\n var numer = args[0];\n var denom = args[1];\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: true,\n numer,\n denom,\n hasBarLine: true,\n leftDelim: null,\n rightDelim: null,\n size: \"display\",\n barSize: null\n };\n }\n}); // Infix generalized fractions -- these are not rendered directly, but replaced\n// immediately by one of the variants above.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\over\", \"\\\\choose\", \"\\\\atop\", \"\\\\brace\", \"\\\\brack\"],\n props: {\n numArgs: 0,\n infix: true\n },\n\n handler(_ref3) {\n var {\n parser,\n funcName,\n token\n } = _ref3;\n var replaceWith;\n\n switch (funcName) {\n case \"\\\\over\":\n replaceWith = \"\\\\frac\";\n break;\n\n case \"\\\\choose\":\n replaceWith = \"\\\\binom\";\n break;\n\n case \"\\\\atop\":\n replaceWith = \"\\\\\\\\atopfrac\";\n break;\n\n case \"\\\\brace\":\n replaceWith = \"\\\\\\\\bracefrac\";\n break;\n\n case \"\\\\brack\":\n replaceWith = \"\\\\\\\\brackfrac\";\n break;\n\n default:\n throw new Error(\"Unrecognized infix genfrac command\");\n }\n\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith,\n token\n };\n }\n\n});\nvar stylArray = [\"display\", \"text\", \"script\", \"scriptscript\"];\n\nvar delimFromValue = function delimFromValue(delimString) {\n var delim = null;\n\n if (delimString.length > 0) {\n delim = delimString;\n delim = delim === \".\" ? null : delim;\n }\n\n return delim;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\genfrac\"],\n props: {\n numArgs: 6,\n allowedInArgument: true,\n argTypes: [\"math\", \"math\", \"size\", \"text\", \"math\", \"math\"]\n },\n\n handler(_ref4, args) {\n var {\n parser\n } = _ref4;\n var numer = args[4];\n var denom = args[5]; // Look into the parse nodes to get the desired delimiters.\n\n var leftNode = normalizeArgument(args[0]);\n var leftDelim = leftNode.type === \"atom\" && leftNode.family === \"open\" ? delimFromValue(leftNode.text) : null;\n var rightNode = normalizeArgument(args[1]);\n var rightDelim = rightNode.type === \"atom\" && rightNode.family === \"close\" ? delimFromValue(rightNode.text) : null;\n var barNode = assertNodeType(args[2], \"size\");\n var hasBarLine;\n var barSize = null;\n\n if (barNode.isBlank) {\n // \\genfrac acts differently than \\above.\n // \\genfrac treats an empty size group as a signal to use a\n // standard bar size. \\above would see size = 0 and omit the bar.\n hasBarLine = true;\n } else {\n barSize = barNode.value;\n hasBarLine = barSize.number > 0;\n } // Find out if we want displaystyle, textstyle, etc.\n\n\n var size = \"auto\";\n var styl = args[3];\n\n if (styl.type === \"ordgroup\") {\n if (styl.body.length > 0) {\n var textOrd = assertNodeType(styl.body[0], \"textord\");\n size = stylArray[Number(textOrd.text)];\n }\n } else {\n styl = assertNodeType(styl, \"textord\");\n size = stylArray[Number(styl.text)];\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer,\n denom,\n continued: false,\n hasBarLine,\n barSize,\n leftDelim,\n rightDelim,\n size\n };\n },\n\n htmlBuilder: htmlBuilder$4,\n mathmlBuilder: mathmlBuilder$3\n}); // \\above is an infix fraction that also defines a fraction bar size.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\above\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n infix: true\n },\n\n handler(_ref5, args) {\n var {\n parser,\n funcName,\n token\n } = _ref5;\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith: \"\\\\\\\\abovefrac\",\n size: assertNodeType(args[0], \"size\").value,\n token\n };\n }\n\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\\\\\abovefrac\"],\n props: {\n numArgs: 3,\n argTypes: [\"math\", \"size\", \"math\"]\n },\n handler: (_ref6, args) => {\n var {\n parser,\n funcName\n } = _ref6;\n var numer = args[0];\n var barSize = assert(assertNodeType(args[1], \"infix\").size);\n var denom = args[2];\n var hasBarLine = barSize.number > 0;\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer,\n denom,\n continued: false,\n hasBarLine,\n barSize,\n leftDelim: null,\n rightDelim: null,\n size: \"auto\"\n };\n },\n htmlBuilder: htmlBuilder$4,\n mathmlBuilder: mathmlBuilder$3\n});\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"horizBrace\", but\n// also \"supsub\" since an over/underbrace can affect super/subscripting.\nvar htmlBuilder$3 = (grp, options) => {\n var style = options.style; // Pull out the `ParseNode<\"horizBrace\">` if `grp` is a \"supsub\" node.\n\n var supSubGroup;\n var group;\n\n if (grp.type === \"supsub\") {\n // Ref: LaTeX source2e: }}}}\\limits}\n // i.e. LaTeX treats the brace similar to an op and passes it\n // with \\limits, so we need to assign supsub style.\n supSubGroup = grp.sup ? buildGroup$1(grp.sup, options.havingStyle(style.sup()), options) : buildGroup$1(grp.sub, options.havingStyle(style.sub()), options);\n group = assertNodeType(grp.base, \"horizBrace\");\n } else {\n group = assertNodeType(grp, \"horizBrace\");\n } // Build the base group\n\n\n var body = buildGroup$1(group.base, options.havingBaseStyle(Style$1.DISPLAY)); // Create the stretchy element\n\n var braceBody = stretchy.svgSpan(group, options); // Generate the vlist, with the appropriate kerns â”â”â”â”â”â”â”â”â”┓\n // This first vlist contains the content and the brace: equation\n\n var vlist;\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: braceBody\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: body.depth + 0.1 + braceBody.height,\n children: [{\n type: \"elem\",\n elem: braceBody\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: body\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[0].classes.push(\"svg-align\");\n }\n\n if (supSubGroup) {\n // To write the supsub, wrap the first vlist in another vlist:\n // They can't all go in the same vlist, because the note might be\n // wider than the equation. We want the equation to control the\n // brace width.\n // note long note long note\n // â”â”â”â”â”â”â”â”â”┓ or â”â”â”â”┓ not â”â”â”â”â”â”â”â”â”â”┓\n // equation eqn eqn\n var vSpan = buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: vSpan\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: supSubGroup\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: vSpan.depth + 0.2 + supSubGroup.height + supSubGroup.depth,\n children: [{\n type: \"elem\",\n elem: supSubGroup\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: vSpan\n }]\n }, options);\n }\n }\n\n return buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n};\n\nvar mathmlBuilder$2 = (group, options) => {\n var accentNode = stretchy.mathMLnode(group.label);\n return new mathMLTree.MathNode(group.isOver ? \"mover\" : \"munder\", [buildGroup(group.base, options), accentNode]);\n}; // Horizontal stretchy braces\n\n\ndefineFunction({\n type: \"horizBrace\",\n names: [\"\\\\overbrace\", \"\\\\underbrace\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n return {\n type: \"horizBrace\",\n mode: parser.mode,\n label: funcName,\n isOver: /^\\\\over/.test(funcName),\n base: args[0]\n };\n },\n\n htmlBuilder: htmlBuilder$3,\n mathmlBuilder: mathmlBuilder$2\n});\n\ndefineFunction({\n type: \"href\",\n names: [\"\\\\href\"],\n props: {\n numArgs: 2,\n argTypes: [\"url\", \"original\"],\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n var body = args[1];\n var href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\href\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\href\");\n }\n\n return {\n type: \"href\",\n mode: parser.mode,\n href,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.body, options, false);\n return buildCommon.makeAnchor(group.href, [], elements, options);\n },\n mathmlBuilder: (group, options) => {\n var math = buildExpressionRow(group.body, options);\n\n if (!(math instanceof MathNode)) {\n math = new MathNode(\"mrow\", [math]);\n }\n\n math.setAttribute(\"href\", group.href);\n return math;\n }\n});\ndefineFunction({\n type: \"href\",\n names: [\"\\\\url\"],\n props: {\n numArgs: 1,\n argTypes: [\"url\"],\n allowedInText: true\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\url\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\url\");\n }\n\n var chars = [];\n\n for (var i = 0; i < href.length; i++) {\n var c = href[i];\n\n if (c === \"~\") {\n c = \"\\\\textasciitilde\";\n }\n\n chars.push({\n type: \"textord\",\n mode: \"text\",\n text: c\n });\n }\n\n var body = {\n type: \"text\",\n mode: parser.mode,\n font: \"\\\\texttt\",\n body: chars\n };\n return {\n type: \"href\",\n mode: parser.mode,\n href,\n body: ordargument(body)\n };\n }\n});\n\n// In LaTeX, \\vcenter can act only on a box, as in\n// \\vcenter{\\hbox{$\\frac{a+b}{\\dfrac{c}{d}}$}}\n// This function by itself doesn't do anything but prevent a soft line break.\n\ndefineFunction({\n type: \"hbox\",\n names: [\"\\\\hbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"hbox\",\n mode: parser.mode,\n body: ordargument(args[0])\n };\n },\n\n htmlBuilder(group, options) {\n var elements = buildExpression$1(group.body, options, false);\n return buildCommon.makeFragment(elements);\n },\n\n mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", buildExpression(group.body, options));\n }\n\n});\n\ndefineFunction({\n type: \"html\",\n names: [\"\\\\htmlClass\", \"\\\\htmlId\", \"\\\\htmlStyle\", \"\\\\htmlData\"],\n props: {\n numArgs: 2,\n argTypes: [\"raw\", \"original\"],\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName,\n token\n } = _ref;\n var value = assertNodeType(args[0], \"raw\").string;\n var body = args[1];\n\n if (parser.settings.strict) {\n parser.settings.reportNonstrict(\"htmlExtension\", \"HTML extension is disabled on strict mode\");\n }\n\n var trustContext;\n var attributes = {};\n\n switch (funcName) {\n case \"\\\\htmlClass\":\n attributes.class = value;\n trustContext = {\n command: \"\\\\htmlClass\",\n class: value\n };\n break;\n\n case \"\\\\htmlId\":\n attributes.id = value;\n trustContext = {\n command: \"\\\\htmlId\",\n id: value\n };\n break;\n\n case \"\\\\htmlStyle\":\n attributes.style = value;\n trustContext = {\n command: \"\\\\htmlStyle\",\n style: value\n };\n break;\n\n case \"\\\\htmlData\":\n {\n var data = value.split(\",\");\n\n for (var i = 0; i < data.length; i++) {\n var keyVal = data[i].split(\"=\");\n\n if (keyVal.length !== 2) {\n throw new ParseError(\"Error parsing key-value for \\\\htmlData\");\n }\n\n attributes[\"data-\" + keyVal[0].trim()] = keyVal[1].trim();\n }\n\n trustContext = {\n command: \"\\\\htmlData\",\n attributes\n };\n break;\n }\n\n default:\n throw new Error(\"Unrecognized html command\");\n }\n\n if (!parser.settings.isTrusted(trustContext)) {\n return parser.formatUnsupportedCmd(funcName);\n }\n\n return {\n type: \"html\",\n mode: parser.mode,\n attributes,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.body, options, false);\n var classes = [\"enclosing\"];\n\n if (group.attributes.class) {\n classes.push(...group.attributes.class.trim().split(/\\s+/));\n }\n\n var span = buildCommon.makeSpan(classes, elements, options);\n\n for (var attr in group.attributes) {\n if (attr !== \"class\" && group.attributes.hasOwnProperty(attr)) {\n span.setAttribute(attr, group.attributes[attr]);\n }\n }\n\n return span;\n },\n mathmlBuilder: (group, options) => {\n return buildExpressionRow(group.body, options);\n }\n});\n\ndefineFunction({\n type: \"htmlmathml\",\n names: [\"\\\\html@mathml\"],\n props: {\n numArgs: 2,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n return {\n type: \"htmlmathml\",\n mode: parser.mode,\n html: ordargument(args[0]),\n mathml: ordargument(args[1])\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.html, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n return buildExpressionRow(group.mathml, options);\n }\n});\n\nvar sizeData = function sizeData(str) {\n if (/^[-+]? *(\\d+(\\.\\d*)?|\\.\\d+)$/.test(str)) {\n // str is a number with no unit specified.\n // default unit is bp, per graphix package.\n return {\n number: +str,\n unit: \"bp\"\n };\n } else {\n var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(str);\n\n if (!match) {\n throw new ParseError(\"Invalid size: '\" + str + \"' in \\\\includegraphics\");\n }\n\n var data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new ParseError(\"Invalid unit: '\" + data.unit + \"' in \\\\includegraphics.\");\n }\n\n return data;\n }\n};\n\ndefineFunction({\n type: \"includegraphics\",\n names: [\"\\\\includegraphics\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n argTypes: [\"raw\", \"url\"],\n allowedInText: false\n },\n handler: (_ref, args, optArgs) => {\n var {\n parser\n } = _ref;\n var width = {\n number: 0,\n unit: \"em\"\n };\n var height = {\n number: 0.9,\n unit: \"em\"\n }; // sorta character sized.\n\n var totalheight = {\n number: 0,\n unit: \"em\"\n };\n var alt = \"\";\n\n if (optArgs[0]) {\n var attributeStr = assertNodeType(optArgs[0], \"raw\").string; // Parser.js does not parse key/value pairs. We get a string.\n\n var attributes = attributeStr.split(\",\");\n\n for (var i = 0; i < attributes.length; i++) {\n var keyVal = attributes[i].split(\"=\");\n\n if (keyVal.length === 2) {\n var str = keyVal[1].trim();\n\n switch (keyVal[0].trim()) {\n case \"alt\":\n alt = str;\n break;\n\n case \"width\":\n width = sizeData(str);\n break;\n\n case \"height\":\n height = sizeData(str);\n break;\n\n case \"totalheight\":\n totalheight = sizeData(str);\n break;\n\n default:\n throw new ParseError(\"Invalid key: '\" + keyVal[0] + \"' in \\\\includegraphics.\");\n }\n }\n }\n }\n\n var src = assertNodeType(args[0], \"url\").url;\n\n if (alt === \"\") {\n // No alt given. Use the file name. Strip away the path.\n alt = src;\n alt = alt.replace(/^.*[\\\\/]/, '');\n alt = alt.substring(0, alt.lastIndexOf('.'));\n }\n\n if (!parser.settings.isTrusted({\n command: \"\\\\includegraphics\",\n url: src\n })) {\n return parser.formatUnsupportedCmd(\"\\\\includegraphics\");\n }\n\n return {\n type: \"includegraphics\",\n mode: parser.mode,\n alt: alt,\n width: width,\n height: height,\n totalheight: totalheight,\n src: src\n };\n },\n htmlBuilder: (group, options) => {\n var height = calculateSize(group.height, options);\n var depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n }\n\n var width = 0;\n\n if (group.width.number > 0) {\n width = calculateSize(group.width, options);\n }\n\n var style = {\n height: makeEm(height + depth)\n };\n\n if (width > 0) {\n style.width = makeEm(width);\n }\n\n if (depth > 0) {\n style.verticalAlign = makeEm(-depth);\n }\n\n var node = new Img(group.src, group.alt, style);\n node.height = height;\n node.depth = depth;\n return node;\n },\n mathmlBuilder: (group, options) => {\n var node = new mathMLTree.MathNode(\"mglyph\", []);\n node.setAttribute(\"alt\", group.alt);\n var height = calculateSize(group.height, options);\n var depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n node.setAttribute(\"valign\", makeEm(-depth));\n }\n\n node.setAttribute(\"height\", makeEm(height + depth));\n\n if (group.width.number > 0) {\n var width = calculateSize(group.width, options);\n node.setAttribute(\"width\", makeEm(width));\n }\n\n node.setAttribute(\"src\", group.src);\n return node;\n }\n});\n\n// Horizontal spacing commands\n\ndefineFunction({\n type: \"kern\",\n names: [\"\\\\kern\", \"\\\\mkern\", \"\\\\hskip\", \"\\\\mskip\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n primitive: true,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var size = assertNodeType(args[0], \"size\");\n\n if (parser.settings.strict) {\n var mathFunction = funcName[1] === 'm'; // \\mkern, \\mskip\n\n var muUnit = size.value.unit === 'mu';\n\n if (mathFunction) {\n if (!muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" supports only mu units, \" + (\"not \" + size.value.unit + \" units\"));\n }\n\n if (parser.mode !== \"math\") {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" works only in math mode\");\n }\n } else {\n // !mathFunction\n if (muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" doesn't support mu units\");\n }\n }\n }\n\n return {\n type: \"kern\",\n mode: parser.mode,\n dimension: size.value\n };\n },\n\n htmlBuilder(group, options) {\n return buildCommon.makeGlue(group.dimension, options);\n },\n\n mathmlBuilder(group, options) {\n var dimension = calculateSize(group.dimension, options);\n return new mathMLTree.SpaceNode(dimension);\n }\n\n});\n\n// Horizontal overlap functions\ndefineFunction({\n type: \"lap\",\n names: [\"\\\\mathllap\", \"\\\\mathrlap\", \"\\\\mathclap\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"lap\",\n mode: parser.mode,\n alignment: funcName.slice(5),\n body\n };\n },\n htmlBuilder: (group, options) => {\n // mathllap, mathrlap, mathclap\n var inner;\n\n if (group.alignment === \"clap\") {\n // ref: https://www.math.lsu.edu/~aperlis/publications/mathclap/\n inner = buildCommon.makeSpan([], [buildGroup$1(group.body, options)]); // wrap, since CSS will center a .clap > .inner > span\n\n inner = buildCommon.makeSpan([\"inner\"], [inner], options);\n } else {\n inner = buildCommon.makeSpan([\"inner\"], [buildGroup$1(group.body, options)]);\n }\n\n var fix = buildCommon.makeSpan([\"fix\"], []);\n var node = buildCommon.makeSpan([group.alignment], [inner, fix], options); // At this point, we have correctly set horizontal alignment of the\n // two items involved in the lap.\n // Next, use a strut to set the height of the HTML bounding box.\n // Otherwise, a tall argument may be misplaced.\n // This code resolved issue #1153\n\n var strut = buildCommon.makeSpan([\"strut\"]);\n strut.style.height = makeEm(node.height + node.depth);\n\n if (node.depth) {\n strut.style.verticalAlign = makeEm(-node.depth);\n }\n\n node.children.unshift(strut); // Next, prevent vertical misplacement when next to something tall.\n // This code resolves issue #1234\n\n node = buildCommon.makeSpan([\"thinbox\"], [node], options);\n return buildCommon.makeSpan([\"mord\", \"vbox\"], [node], options);\n },\n mathmlBuilder: (group, options) => {\n // mathllap, mathrlap, mathclap\n var node = new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)]);\n\n if (group.alignment !== \"rlap\") {\n var offset = group.alignment === \"llap\" ? \"-1\" : \"-0.5\";\n node.setAttribute(\"lspace\", offset + \"width\");\n }\n\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\(\", \"$\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n\n handler(_ref, args) {\n var {\n funcName,\n parser\n } = _ref;\n var outerMode = parser.mode;\n parser.switchMode(\"math\");\n var close = funcName === \"\\\\(\" ? \"\\\\)\" : \"$\";\n var body = parser.parseExpression(false, close);\n parser.expect(close);\n parser.switchMode(outerMode);\n return {\n type: \"styling\",\n mode: parser.mode,\n style: \"text\",\n body\n };\n }\n\n}); // Check for extra closing math delimiters\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\)\", \"\\\\]\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n\n handler(context, args) {\n throw new ParseError(\"Mismatched \" + context.funcName);\n }\n\n});\n\nvar chooseMathStyle = (group, options) => {\n switch (options.style.size) {\n case Style$1.DISPLAY.size:\n return group.display;\n\n case Style$1.TEXT.size:\n return group.text;\n\n case Style$1.SCRIPT.size:\n return group.script;\n\n case Style$1.SCRIPTSCRIPT.size:\n return group.scriptscript;\n\n default:\n return group.text;\n }\n};\n\ndefineFunction({\n type: \"mathchoice\",\n names: [\"\\\\mathchoice\"],\n props: {\n numArgs: 4,\n primitive: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n return {\n type: \"mathchoice\",\n mode: parser.mode,\n display: ordargument(args[0]),\n text: ordargument(args[1]),\n script: ordargument(args[2]),\n scriptscript: ordargument(args[3])\n };\n },\n htmlBuilder: (group, options) => {\n var body = chooseMathStyle(group, options);\n var elements = buildExpression$1(body, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n var body = chooseMathStyle(group, options);\n return buildExpressionRow(body, options);\n }\n});\n\nvar assembleSupSub = (base, supGroup, subGroup, options, style, slant, baseShift) => {\n base = buildCommon.makeSpan([], [base]);\n var subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup);\n var sub;\n var sup; // We manually have to handle the superscripts and subscripts. This,\n // aside from the kern calculations, is copied from supsub.\n\n if (supGroup) {\n var elem = buildGroup$1(supGroup, options.havingStyle(style.sup()), options);\n sup = {\n elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth)\n };\n }\n\n if (subGroup) {\n var _elem = buildGroup$1(subGroup, options.havingStyle(style.sub()), options);\n\n sub = {\n elem: _elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - _elem.height)\n };\n } // Build the final group as a vlist of the possible subscript, base,\n // and possible superscript.\n\n\n var finalGroup;\n\n if (sup && sub) {\n var bottom = options.fontMetrics().bigOpSpacing5 + sub.elem.height + sub.elem.depth + sub.kern + base.depth + baseShift;\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: bottom,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: makeEm(-slant)\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: makeEm(slant)\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else if (sub) {\n var top = base.height - baseShift; // Shift the limits by the slant of the symbol. Note\n // that we are supposed to shift the limits by 1/2 of the slant,\n // but since we are centering the limits adding a full slant of\n // margin will shift by 1/2 that.\n\n finalGroup = buildCommon.makeVList({\n positionType: \"top\",\n positionData: top,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: makeEm(-slant)\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }]\n }, options);\n } else if (sup) {\n var _bottom = base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: _bottom,\n children: [{\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: makeEm(slant)\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else {\n // This case probably shouldn't occur (this would mean the\n // supsub was sending us a group with no superscript or\n // subscript) but be safe.\n return base;\n }\n\n var parts = [finalGroup];\n\n if (sub && slant !== 0 && !subIsSingleCharacter) {\n // A negative margin-left was applied to the lower limit.\n // Avoid an overlap by placing a spacer on the left on the group.\n var spacer = buildCommon.makeSpan([\"mspace\"], [], options);\n spacer.style.marginRight = makeEm(slant);\n parts.unshift(spacer);\n }\n\n return buildCommon.makeSpan([\"mop\", \"op-limits\"], parts, options);\n};\n\n// Limits, symbols\n// Most operators have a large successor symbol, but these don't.\nvar noSuccessor = [\"\\\\smallint\"]; // NOTE: Unlike most `htmlBuilder`s, this one handles not only \"op\", but also\n// \"supsub\" since some of them (like \\int) can affect super/subscripting.\n\nvar htmlBuilder$2 = (grp, options) => {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n var group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"op\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"op\");\n }\n\n var style = options.style;\n var large = false;\n\n if (style.size === Style$1.DISPLAY.size && group.symbol && !utils.contains(noSuccessor, group.name)) {\n // Most symbol operators get larger in displaystyle (rule 13)\n large = true;\n }\n\n var base;\n\n if (group.symbol) {\n // If this is a symbol, create the symbol.\n var fontName = large ? \"Size2-Regular\" : \"Size1-Regular\";\n var stash = \"\";\n\n if (group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") {\n // No font glyphs yet, so use a glyph w/o the oval.\n // TODO: When font glyphs are available, delete this code.\n stash = group.name.slice(1);\n group.name = stash === \"oiint\" ? \"\\\\iint\" : \"\\\\iiint\";\n }\n\n base = buildCommon.makeSymbol(group.name, fontName, \"math\", options, [\"mop\", \"op-symbol\", large ? \"large-op\" : \"small-op\"]);\n\n if (stash.length > 0) {\n // We're in \\oiint or \\oiiint. Overlay the oval.\n // TODO: When font glyphs are available, delete this code.\n var italic = base.italic;\n var oval = buildCommon.staticSvg(stash + \"Size\" + (large ? \"2\" : \"1\"), options);\n base = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: base,\n shift: 0\n }, {\n type: \"elem\",\n elem: oval,\n shift: large ? 0.08 : 0\n }]\n }, options);\n group.name = \"\\\\\" + stash;\n base.classes.unshift(\"mop\"); // $FlowFixMe\n\n base.italic = italic;\n }\n } else if (group.body) {\n // If this is a list, compose that list.\n var inner = buildExpression$1(group.body, options, true);\n\n if (inner.length === 1 && inner[0] instanceof SymbolNode) {\n base = inner[0];\n base.classes[0] = \"mop\"; // replace old mclass\n } else {\n base = buildCommon.makeSpan([\"mop\"], inner, options);\n }\n } else {\n // Otherwise, this is a text operator. Build the text from the\n // operator's name.\n var output = [];\n\n for (var i = 1; i < group.name.length; i++) {\n output.push(buildCommon.mathsym(group.name[i], group.mode, options));\n }\n\n base = buildCommon.makeSpan([\"mop\"], output, options);\n } // If content of op is a single symbol, shift it vertically.\n\n\n var baseShift = 0;\n var slant = 0;\n\n if ((base instanceof SymbolNode || group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") && !group.suppressBaseShift) {\n // We suppress the shift of the base of \\overset and \\underset. Otherwise,\n // shift the symbol so its center lies on the axis (rule 13). It\n // appears that our fonts have the centers of the symbols already\n // almost on the axis, so these numbers are very small. Note we\n // don't actually apply this here, but instead it is used either in\n // the vlist creation or separately when there are no limits.\n baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight; // The slant of the symbol is just its italic correction.\n // $FlowFixMe\n\n slant = base.italic;\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift);\n } else {\n if (baseShift) {\n base.style.position = \"relative\";\n base.style.top = makeEm(baseShift);\n }\n\n return base;\n }\n};\n\nvar mathmlBuilder$1 = (group, options) => {\n var node;\n\n if (group.symbol) {\n // This is a symbol. Just add the symbol.\n node = new MathNode(\"mo\", [makeText(group.name, group.mode)]);\n\n if (utils.contains(noSuccessor, group.name)) {\n node.setAttribute(\"largeop\", \"false\");\n }\n } else if (group.body) {\n // This is an operator with children. Add them.\n node = new MathNode(\"mo\", buildExpression(group.body, options));\n } else {\n // This is a text operator. Add all of the characters from the\n // operator's name.\n node = new MathNode(\"mi\", [new TextNode(group.name.slice(1))]); // Append an <mo>⁡</mo>.\n // ref: https://www.w3.org/TR/REC-MathML/chap3_2.html#sec3.2.4\n\n var operator = new MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n node = new MathNode(\"mrow\", [node, operator]);\n } else {\n node = newDocumentFragment([node, operator]);\n }\n }\n\n return node;\n};\n\nvar singleCharBigOps = {\n \"\\u220F\": \"\\\\prod\",\n \"\\u2210\": \"\\\\coprod\",\n \"\\u2211\": \"\\\\sum\",\n \"\\u22c0\": \"\\\\bigwedge\",\n \"\\u22c1\": \"\\\\bigvee\",\n \"\\u22c2\": \"\\\\bigcap\",\n \"\\u22c3\": \"\\\\bigcup\",\n \"\\u2a00\": \"\\\\bigodot\",\n \"\\u2a01\": \"\\\\bigoplus\",\n \"\\u2a02\": \"\\\\bigotimes\",\n \"\\u2a04\": \"\\\\biguplus\",\n \"\\u2a06\": \"\\\\bigsqcup\"\n};\ndefineFunction({\n type: \"op\",\n names: [\"\\\\coprod\", \"\\\\bigvee\", \"\\\\bigwedge\", \"\\\\biguplus\", \"\\\\bigcap\", \"\\\\bigcup\", \"\\\\intop\", \"\\\\prod\", \"\\\\sum\", \"\\\\bigotimes\", \"\\\\bigoplus\", \"\\\\bigodot\", \"\\\\bigsqcup\", \"\\\\smallint\", \"\\u220F\", \"\\u2210\", \"\\u2211\", \"\\u22c0\", \"\\u22c1\", \"\\u22c2\", \"\\u22c3\", \"\\u2a00\", \"\\u2a01\", \"\\u2a02\", \"\\u2a04\", \"\\u2a06\"],\n props: {\n numArgs: 0\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharBigOps[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // Note: calling defineFunction with a type that's already been defined only\n// works because the same htmlBuilder and mathmlBuilder are being used.\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\mathop\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var body = args[0];\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n body: ordargument(body)\n };\n },\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // There are 2 flags for operators; whether they produce limits in\n// displaystyle, and whether they are symbols and should grow in\n// displaystyle. These four groups cover the four possible choices.\n\nvar singleCharIntegrals = {\n \"\\u222b\": \"\\\\int\",\n \"\\u222c\": \"\\\\iint\",\n \"\\u222d\": \"\\\\iiint\",\n \"\\u222e\": \"\\\\oint\",\n \"\\u222f\": \"\\\\oiint\",\n \"\\u2230\": \"\\\\oiiint\"\n}; // No limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\arcsin\", \"\\\\arccos\", \"\\\\arctan\", \"\\\\arctg\", \"\\\\arcctg\", \"\\\\arg\", \"\\\\ch\", \"\\\\cos\", \"\\\\cosec\", \"\\\\cosh\", \"\\\\cot\", \"\\\\cotg\", \"\\\\coth\", \"\\\\csc\", \"\\\\ctg\", \"\\\\cth\", \"\\\\deg\", \"\\\\dim\", \"\\\\exp\", \"\\\\hom\", \"\\\\ker\", \"\\\\lg\", \"\\\\ln\", \"\\\\log\", \"\\\\sec\", \"\\\\sin\", \"\\\\sinh\", \"\\\\sh\", \"\\\\tan\", \"\\\\tanh\", \"\\\\tg\", \"\\\\th\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref3) {\n var {\n parser,\n funcName\n } = _ref3;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // Limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\det\", \"\\\\gcd\", \"\\\\inf\", \"\\\\lim\", \"\\\\max\", \"\\\\min\", \"\\\\Pr\", \"\\\\sup\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref4) {\n var {\n parser,\n funcName\n } = _ref4;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // No limits, symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\int\", \"\\\\iint\", \"\\\\iiint\", \"\\\\oint\", \"\\\\oiint\", \"\\\\oiiint\", \"\\u222b\", \"\\u222c\", \"\\u222d\", \"\\u222e\", \"\\u222f\", \"\\u2230\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref5) {\n var {\n parser,\n funcName\n } = _ref5;\n var fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharIntegrals[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n});\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only\n// \"operatorname\", but also \"supsub\" since \\operatorname* can\n// affect super/subscripting.\nvar htmlBuilder$1 = (grp, options) => {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n var group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"operatorname\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"operatorname\");\n }\n\n var base;\n\n if (group.body.length > 0) {\n var body = group.body.map(child => {\n // $FlowFixMe: Check if the node has a string `text` property.\n var childText = child.text;\n\n if (typeof childText === \"string\") {\n return {\n type: \"textord\",\n mode: child.mode,\n text: childText\n };\n } else {\n return child;\n }\n }); // Consolidate function names into symbol characters.\n\n var expression = buildExpression$1(body, options.withFont(\"mathrm\"), true);\n\n for (var i = 0; i < expression.length; i++) {\n var child = expression[i];\n\n if (child instanceof SymbolNode) {\n // Per amsopn package,\n // change minus to hyphen and \\ast to asterisk\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n }\n }\n\n base = buildCommon.makeSpan([\"mop\"], expression, options);\n } else {\n base = buildCommon.makeSpan([\"mop\"], [], options);\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, options.style, 0, 0);\n } else {\n return base;\n }\n};\n\nvar mathmlBuilder = (group, options) => {\n // The steps taken here are similar to the html version.\n var expression = buildExpression(group.body, options.withFont(\"mathrm\")); // Is expression a string or has it something like a fraction?\n\n var isAllString = true; // default\n\n for (var i = 0; i < expression.length; i++) {\n var node = expression[i];\n\n if (node instanceof mathMLTree.SpaceNode) ; else if (node instanceof mathMLTree.MathNode) {\n switch (node.type) {\n case \"mi\":\n case \"mn\":\n case \"ms\":\n case \"mspace\":\n case \"mtext\":\n break;\n // Do nothing yet.\n\n case \"mo\":\n {\n var child = node.children[0];\n\n if (node.children.length === 1 && child instanceof mathMLTree.TextNode) {\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n } else {\n isAllString = false;\n }\n\n break;\n }\n\n default:\n isAllString = false;\n }\n } else {\n isAllString = false;\n }\n }\n\n if (isAllString) {\n // Write a single TextNode instead of multiple nested tags.\n var word = expression.map(node => node.toText()).join(\"\");\n expression = [new mathMLTree.TextNode(word)];\n }\n\n var identifier = new mathMLTree.MathNode(\"mi\", expression);\n identifier.setAttribute(\"mathvariant\", \"normal\"); // \\u2061 is the same as ⁡\n // ref: https://www.w3schools.com/charsets/ref_html_entities_a.asp\n\n var operator = new mathMLTree.MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n return new mathMLTree.MathNode(\"mrow\", [identifier, operator]);\n } else {\n return mathMLTree.newDocumentFragment([identifier, operator]);\n }\n}; // \\operatorname\n// amsopn.dtx: \\mathop{#1\\kern\\z@\\operator@font#3}\\newmcodes@\n\n\ndefineFunction({\n type: \"operatorname\",\n names: [\"\\\\operatorname@\", \"\\\\operatornamewithlimits\"],\n props: {\n numArgs: 1\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"operatorname\",\n mode: parser.mode,\n body: ordargument(body),\n alwaysHandleSupSub: funcName === \"\\\\operatornamewithlimits\",\n limits: false,\n parentIsSupSub: false\n };\n },\n htmlBuilder: htmlBuilder$1,\n mathmlBuilder\n});\ndefineMacro(\"\\\\operatorname\", \"\\\\@ifstar\\\\operatornamewithlimits\\\\operatorname@\");\n\ndefineFunctionBuilders({\n type: \"ordgroup\",\n\n htmlBuilder(group, options) {\n if (group.semisimple) {\n return buildCommon.makeFragment(buildExpression$1(group.body, options, false));\n }\n\n return buildCommon.makeSpan([\"mord\"], buildExpression$1(group.body, options, true), options);\n },\n\n mathmlBuilder(group, options) {\n return buildExpressionRow(group.body, options, true);\n }\n\n});\n\ndefineFunction({\n type: \"overline\",\n names: [\"\\\\overline\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var body = args[0];\n return {\n type: \"overline\",\n mode: parser.mode,\n body\n };\n },\n\n htmlBuilder(group, options) {\n // Overlines are handled in the TeXbook pg 443, Rule 9.\n // Build the inner group in the cramped style.\n var innerGroup = buildGroup$1(group.body, options.havingCrampedStyle()); // Create the line above the body\n\n var line = buildCommon.makeLineSpan(\"overline-line\", options); // Generate the vlist, with the appropriate kerns\n\n var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n var vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: innerGroup\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: defaultRuleThickness\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"overline\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n var operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n var node = new mathMLTree.MathNode(\"mover\", [buildGroup(group.body, options), operator]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n }\n\n});\n\ndefineFunction({\n type: \"phantom\",\n names: [\"\\\\phantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n var body = args[0];\n return {\n type: \"phantom\",\n mode: parser.mode,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.body, options.withPhantom(), false); // \\phantom isn't supposed to affect the elements it contains.\n // See \"color\" for more details.\n\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n var inner = buildExpression(group.body, options);\n return new mathMLTree.MathNode(\"mphantom\", inner);\n }\n});\ndefineFunction({\n type: \"hphantom\",\n names: [\"\\\\hphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var body = args[0];\n return {\n type: \"hphantom\",\n mode: parser.mode,\n body\n };\n },\n htmlBuilder: (group, options) => {\n var node = buildCommon.makeSpan([], [buildGroup$1(group.body, options.withPhantom())]);\n node.height = 0;\n node.depth = 0;\n\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n node.children[i].depth = 0;\n }\n } // See smash for comment re: use of makeVList\n\n\n node = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\smash as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [node], options);\n },\n mathmlBuilder: (group, options) => {\n var inner = buildExpression(ordargument(group.body), options);\n var phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n var node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"height\", \"0px\");\n node.setAttribute(\"depth\", \"0px\");\n return node;\n }\n});\ndefineFunction({\n type: \"vphantom\",\n names: [\"\\\\vphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref3, args) => {\n var {\n parser\n } = _ref3;\n var body = args[0];\n return {\n type: \"vphantom\",\n mode: parser.mode,\n body\n };\n },\n htmlBuilder: (group, options) => {\n var inner = buildCommon.makeSpan([\"inner\"], [buildGroup$1(group.body, options.withPhantom())]);\n var fix = buildCommon.makeSpan([\"fix\"], []);\n return buildCommon.makeSpan([\"mord\", \"rlap\"], [inner, fix], options);\n },\n mathmlBuilder: (group, options) => {\n var inner = buildExpression(ordargument(group.body), options);\n var phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n var node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n\ndefineFunction({\n type: \"raisebox\",\n names: [\"\\\\raisebox\"],\n props: {\n numArgs: 2,\n argTypes: [\"size\", \"hbox\"],\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var amount = assertNodeType(args[0], \"size\").value;\n var body = args[1];\n return {\n type: \"raisebox\",\n mode: parser.mode,\n dy: amount,\n body\n };\n },\n\n htmlBuilder(group, options) {\n var body = buildGroup$1(group.body, options);\n var dy = calculateSize(group.dy, options);\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)]);\n var dy = group.dy.number + group.dy.unit;\n node.setAttribute(\"voffset\", dy);\n return node;\n }\n\n});\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\relax\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(_ref) {\n var {\n parser\n } = _ref;\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n});\n\ndefineFunction({\n type: \"rule\",\n names: [\"\\\\rule\"],\n props: {\n numArgs: 2,\n numOptionalArgs: 1,\n argTypes: [\"size\", \"size\", \"size\"]\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser\n } = _ref;\n var shift = optArgs[0];\n var width = assertNodeType(args[0], \"size\");\n var height = assertNodeType(args[1], \"size\");\n return {\n type: \"rule\",\n mode: parser.mode,\n shift: shift && assertNodeType(shift, \"size\").value,\n width: width.value,\n height: height.value\n };\n },\n\n htmlBuilder(group, options) {\n // Make an empty span for the rule\n var rule = buildCommon.makeSpan([\"mord\", \"rule\"], [], options); // Calculate the shift, width, and height of the rule, and account for units\n\n var width = calculateSize(group.width, options);\n var height = calculateSize(group.height, options);\n var shift = group.shift ? calculateSize(group.shift, options) : 0; // Style the rule to the right size\n\n rule.style.borderRightWidth = makeEm(width);\n rule.style.borderTopWidth = makeEm(height);\n rule.style.bottom = makeEm(shift); // Record the height and width\n\n rule.width = width;\n rule.height = height + shift;\n rule.depth = -shift; // Font size is the number large enough that the browser will\n // reserve at least `absHeight` space above the baseline.\n // The 1.125 factor was empirically determined\n\n rule.maxFontSize = height * 1.125 * options.sizeMultiplier;\n return rule;\n },\n\n mathmlBuilder(group, options) {\n var width = calculateSize(group.width, options);\n var height = calculateSize(group.height, options);\n var shift = group.shift ? calculateSize(group.shift, options) : 0;\n var color = options.color && options.getColor() || \"black\";\n var rule = new mathMLTree.MathNode(\"mspace\");\n rule.setAttribute(\"mathbackground\", color);\n rule.setAttribute(\"width\", makeEm(width));\n rule.setAttribute(\"height\", makeEm(height));\n var wrapper = new mathMLTree.MathNode(\"mpadded\", [rule]);\n\n if (shift >= 0) {\n wrapper.setAttribute(\"height\", makeEm(shift));\n } else {\n wrapper.setAttribute(\"height\", makeEm(shift));\n wrapper.setAttribute(\"depth\", makeEm(-shift));\n }\n\n wrapper.setAttribute(\"voffset\", makeEm(shift));\n return wrapper;\n }\n\n});\n\nfunction sizingGroup(value, options, baseOptions) {\n var inner = buildExpression$1(value, options, false);\n var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; // Add size-resetting classes to the inner list and set maxFontSize\n // manually. Handle nested size changes.\n\n for (var i = 0; i < inner.length; i++) {\n var pos = inner[i].classes.indexOf(\"sizing\");\n\n if (pos < 0) {\n Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions));\n } else if (inner[i].classes[pos + 1] === \"reset-size\" + options.size) {\n // This is a nested size change: e.g., inner[i] is the \"b\" in\n // `\\Huge a \\small b`. Override the old size (the `reset-` class)\n // but not the new size.\n inner[i].classes[pos + 1] = \"reset-size\" + baseOptions.size;\n }\n\n inner[i].height *= multiplier;\n inner[i].depth *= multiplier;\n }\n\n return buildCommon.makeFragment(inner);\n}\nvar sizeFuncs = [\"\\\\tiny\", \"\\\\sixptsize\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\", \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\"];\nvar htmlBuilder = (group, options) => {\n // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n // these functions inside of math expressions, so we do some special\n // handling.\n var newOptions = options.havingSize(group.size);\n return sizingGroup(group.body, newOptions, options);\n};\ndefineFunction({\n type: \"sizing\",\n names: sizeFuncs,\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n breakOnTokenText,\n funcName,\n parser\n } = _ref;\n var body = parser.parseExpression(false, breakOnTokenText);\n return {\n type: \"sizing\",\n mode: parser.mode,\n // Figure out what size to use based on the list of functions above\n size: sizeFuncs.indexOf(funcName) + 1,\n body\n };\n },\n htmlBuilder,\n mathmlBuilder: (group, options) => {\n var newOptions = options.havingSize(group.size);\n var inner = buildExpression(group.body, newOptions);\n var node = new mathMLTree.MathNode(\"mstyle\", inner); // TODO(emily): This doesn't produce the correct size for nested size\n // changes, because we don't keep state of what style we're currently\n // in, so we can't reset the size to normal before changing it. Now\n // that we're passing an options parameter we should be able to fix\n // this.\n\n node.setAttribute(\"mathsize\", makeEm(newOptions.sizeMultiplier));\n return node;\n }\n});\n\n// smash, with optional [tb], as in AMS\ndefineFunction({\n type: \"smash\",\n names: [\"\\\\smash\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args, optArgs) => {\n var {\n parser\n } = _ref;\n var smashHeight = false;\n var smashDepth = false;\n var tbArg = optArgs[0] && assertNodeType(optArgs[0], \"ordgroup\");\n\n if (tbArg) {\n // Optional [tb] argument is engaged.\n // ref: amsmath: \\renewcommand{\\smash}[1][tb]{%\n // def\\mb@t{\\ht}\\def\\mb@b{\\dp}\\def\\mb@tb{\\ht\\z@\\z@\\dp}%\n var letter = \"\";\n\n for (var i = 0; i < tbArg.body.length; ++i) {\n var node = tbArg.body[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n letter = node.text;\n\n if (letter === \"t\") {\n smashHeight = true;\n } else if (letter === \"b\") {\n smashDepth = true;\n } else {\n smashHeight = false;\n smashDepth = false;\n break;\n }\n }\n } else {\n smashHeight = true;\n smashDepth = true;\n }\n\n var body = args[0];\n return {\n type: \"smash\",\n mode: parser.mode,\n body,\n smashHeight,\n smashDepth\n };\n },\n htmlBuilder: (group, options) => {\n var node = buildCommon.makeSpan([], [buildGroup$1(group.body, options)]);\n\n if (!group.smashHeight && !group.smashDepth) {\n return node;\n }\n\n if (group.smashHeight) {\n node.height = 0; // In order to influence makeVList, we have to reset the children.\n\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n }\n }\n }\n\n if (group.smashDepth) {\n node.depth = 0;\n\n if (node.children) {\n for (var _i = 0; _i < node.children.length; _i++) {\n node.children[_i].depth = 0;\n }\n }\n } // At this point, we've reset the TeX-like height and depth values.\n // But the span still has an HTML line height.\n // makeVList applies \"display: table-cell\", which prevents the browser\n // from acting on that line height. So we'll call makeVList now.\n\n\n var smashedNode = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\hphantom as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [smashedNode], options);\n },\n mathmlBuilder: (group, options) => {\n var node = new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)]);\n\n if (group.smashHeight) {\n node.setAttribute(\"height\", \"0px\");\n }\n\n if (group.smashDepth) {\n node.setAttribute(\"depth\", \"0px\");\n }\n\n return node;\n }\n});\n\ndefineFunction({\n type: \"sqrt\",\n names: [\"\\\\sqrt\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser\n } = _ref;\n var index = optArgs[0];\n var body = args[0];\n return {\n type: \"sqrt\",\n mode: parser.mode,\n body,\n index\n };\n },\n\n htmlBuilder(group, options) {\n // Square roots are handled in the TeXbook pg. 443, Rule 11.\n // First, we do the same steps as in overline to build the inner group\n // and line\n var inner = buildGroup$1(group.body, options.havingCrampedStyle());\n\n if (inner.height === 0) {\n // Render a small surd.\n inner.height = options.fontMetrics().xHeight;\n } // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n\n inner = buildCommon.wrapFragment(inner, options); // Calculate the minimum size for the \\surd delimiter\n\n var metrics = options.fontMetrics();\n var theta = metrics.defaultRuleThickness;\n var phi = theta;\n\n if (options.style.id < Style$1.TEXT.id) {\n phi = options.fontMetrics().xHeight;\n } // Calculate the clearance between the body and line\n\n\n var lineClearance = theta + phi / 4;\n var minDelimiterHeight = inner.height + inner.depth + lineClearance + theta; // Create a sqrt SVG of the required minimum size\n\n var {\n span: img,\n ruleWidth,\n advanceWidth\n } = delimiter.sqrtImage(minDelimiterHeight, options);\n var delimDepth = img.height - ruleWidth; // Adjust the clearance based on the delimiter size\n\n if (delimDepth > inner.height + inner.depth + lineClearance) {\n lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n } // Shift the sqrt image\n\n\n var imgShift = img.height - inner.height - lineClearance - ruleWidth;\n inner.style.paddingLeft = makeEm(advanceWidth); // Overlay the image and the argument.\n\n var body = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: inner,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: -(inner.height + imgShift)\n }, {\n type: \"elem\",\n elem: img\n }, {\n type: \"kern\",\n size: ruleWidth\n }]\n }, options);\n\n if (!group.index) {\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [body], options);\n } else {\n // Handle the optional root index\n // The index is always in scriptscript style\n var newOptions = options.havingStyle(Style$1.SCRIPTSCRIPT);\n var rootm = buildGroup$1(group.index, newOptions, options); // The amount the index is shifted by. This is taken from the TeX\n // source, in the definition of `\\r@@t`.\n\n var toShift = 0.6 * (body.height - body.depth); // Build a VList with the superscript shifted up correctly\n\n var rootVList = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -toShift,\n children: [{\n type: \"elem\",\n elem: rootm\n }]\n }, options); // Add a class surrounding it so we can add on the appropriate\n // kerning\n\n var rootVListWrap = buildCommon.makeSpan([\"root\"], [rootVList]);\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [rootVListWrap, body], options);\n }\n },\n\n mathmlBuilder(group, options) {\n var {\n body,\n index\n } = group;\n return index ? new mathMLTree.MathNode(\"mroot\", [buildGroup(body, options), buildGroup(index, options)]) : new mathMLTree.MathNode(\"msqrt\", [buildGroup(body, options)]);\n }\n\n});\n\nvar styleMap = {\n \"display\": Style$1.DISPLAY,\n \"text\": Style$1.TEXT,\n \"script\": Style$1.SCRIPT,\n \"scriptscript\": Style$1.SCRIPTSCRIPT\n};\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref, args) {\n var {\n breakOnTokenText,\n funcName,\n parser\n } = _ref;\n // parse out the implicit body\n var body = parser.parseExpression(true, breakOnTokenText); // TODO: Refactor to avoid duplicating styleMap in multiple places (e.g.\n // here and in buildHTML and de-dupe the enumeration of all the styles).\n // $FlowFixMe: The names above exactly match the styles.\n\n var style = funcName.slice(1, funcName.length - 5);\n return {\n type: \"styling\",\n mode: parser.mode,\n // Figure out what style to use by pulling out the style from\n // the function name\n style,\n body\n };\n },\n\n htmlBuilder(group, options) {\n // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n var newStyle = styleMap[group.style];\n var newOptions = options.havingStyle(newStyle).withFont('');\n return sizingGroup(group.body, newOptions, options);\n },\n\n mathmlBuilder(group, options) {\n // Figure out what style we're changing to.\n var newStyle = styleMap[group.style];\n var newOptions = options.havingStyle(newStyle);\n var inner = buildExpression(group.body, newOptions);\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n var styleAttributes = {\n \"display\": [\"0\", \"true\"],\n \"text\": [\"0\", \"false\"],\n \"script\": [\"1\", \"false\"],\n \"scriptscript\": [\"2\", \"false\"]\n };\n var attr = styleAttributes[group.style];\n node.setAttribute(\"scriptlevel\", attr[0]);\n node.setAttribute(\"displaystyle\", attr[1]);\n return node;\n }\n\n});\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * Sometimes, groups perform special rules when they have superscripts or\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nvar htmlBuilderDelegate = function htmlBuilderDelegate(group, options) {\n var base = group.base;\n\n if (!base) {\n return null;\n } else if (base.type === \"op\") {\n // Operators handle supsubs differently when they have limits\n // (e.g. `\\displaystyle\\sum_2^3`)\n var delegate = base.limits && (options.style.size === Style$1.DISPLAY.size || base.alwaysHandleSupSub);\n return delegate ? htmlBuilder$2 : null;\n } else if (base.type === \"operatorname\") {\n var _delegate = base.alwaysHandleSupSub && (options.style.size === Style$1.DISPLAY.size || base.limits);\n\n return _delegate ? htmlBuilder$1 : null;\n } else if (base.type === \"accent\") {\n return utils.isCharacterBox(base.base) ? htmlBuilder$a : null;\n } else if (base.type === \"horizBrace\") {\n var isSup = !group.sub;\n return isSup === base.isOver ? htmlBuilder$3 : null;\n } else {\n return null;\n }\n}; // Super scripts and subscripts, whose precise placement can depend on other\n// functions that precede them.\n\n\ndefineFunctionBuilders({\n type: \"supsub\",\n\n htmlBuilder(group, options) {\n // Superscript and subscripts are handled in the TeXbook on page\n // 445-446, rules 18(a-f).\n // Here is where we defer to the inner group if it should handle\n // superscripts and subscripts itself.\n var builderDelegate = htmlBuilderDelegate(group, options);\n\n if (builderDelegate) {\n return builderDelegate(group, options);\n }\n\n var {\n base: valueBase,\n sup: valueSup,\n sub: valueSub\n } = group;\n var base = buildGroup$1(valueBase, options);\n var supm;\n var subm;\n var metrics = options.fontMetrics(); // Rule 18a\n\n var supShift = 0;\n var subShift = 0;\n var isCharacterBox = valueBase && utils.isCharacterBox(valueBase);\n\n if (valueSup) {\n var newOptions = options.havingStyle(options.style.sup());\n supm = buildGroup$1(valueSup, newOptions, options);\n\n if (!isCharacterBox) {\n supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n if (valueSub) {\n var _newOptions = options.havingStyle(options.style.sub());\n\n subm = buildGroup$1(valueSub, _newOptions, options);\n\n if (!isCharacterBox) {\n subShift = base.depth + _newOptions.fontMetrics().subDrop * _newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n } // Rule 18c\n\n\n var minSupShift;\n\n if (options.style === Style$1.DISPLAY) {\n minSupShift = metrics.sup1;\n } else if (options.style.cramped) {\n minSupShift = metrics.sup3;\n } else {\n minSupShift = metrics.sup2;\n } // scriptspace is a font-size-independent size, so scale it\n // appropriately for use as the marginRight.\n\n\n var multiplier = options.sizeMultiplier;\n var marginRight = makeEm(0.5 / metrics.ptPerEm / multiplier);\n var marginLeft = null;\n\n if (subm) {\n // Subscripts shouldn't be shifted by the base's italic correction.\n // Account for that by shifting the subscript back the appropriate\n // amount. Note we only do this when the base is a single symbol.\n var isOiint = group.base && group.base.type === \"op\" && group.base.name && (group.base.name === \"\\\\oiint\" || group.base.name === \"\\\\oiiint\");\n\n if (base instanceof SymbolNode || isOiint) {\n // $FlowFixMe\n marginLeft = makeEm(-base.italic);\n }\n }\n\n var supsub;\n\n if (supm && subm) {\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n subShift = Math.max(subShift, metrics.sub2);\n var ruleWidth = metrics.defaultRuleThickness; // Rule 18e\n\n var maxWidth = 4 * ruleWidth;\n\n if (supShift - supm.depth - (subm.height - subShift) < maxWidth) {\n subShift = maxWidth - (supShift - supm.depth) + subm.height;\n var psi = 0.8 * metrics.xHeight - (supShift - supm.depth);\n\n if (psi > 0) {\n supShift += psi;\n subShift -= psi;\n }\n }\n\n var vlistElem = [{\n type: \"elem\",\n elem: subm,\n shift: subShift,\n marginRight,\n marginLeft\n }, {\n type: \"elem\",\n elem: supm,\n shift: -supShift,\n marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vlistElem\n }, options);\n } else if (subm) {\n // Rule 18b\n subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight);\n var _vlistElem = [{\n type: \"elem\",\n elem: subm,\n marginLeft,\n marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: subShift,\n children: _vlistElem\n }, options);\n } else if (supm) {\n // Rule 18c, d\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -supShift,\n children: [{\n type: \"elem\",\n elem: supm,\n marginRight\n }]\n }, options);\n } else {\n throw new Error(\"supsub must have either sup or sub.\");\n } // Wrap the supsub vlist in a span.msupsub to reset text-align.\n\n\n var mclass = getTypeOfDomTree(base, \"right\") || \"mord\";\n return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan([\"msupsub\"], [supsub])], options);\n },\n\n mathmlBuilder(group, options) {\n // Is the inner group a relevant horizonal brace?\n var isBrace = false;\n var isOver;\n var isSup;\n\n if (group.base && group.base.type === \"horizBrace\") {\n isSup = !!group.sup;\n\n if (isSup === group.base.isOver) {\n isBrace = true;\n isOver = group.base.isOver;\n }\n }\n\n if (group.base && (group.base.type === \"op\" || group.base.type === \"operatorname\")) {\n group.base.parentIsSupSub = true;\n }\n\n var children = [buildGroup(group.base, options)];\n\n if (group.sub) {\n children.push(buildGroup(group.sub, options));\n }\n\n if (group.sup) {\n children.push(buildGroup(group.sup, options));\n }\n\n var nodeType;\n\n if (isBrace) {\n nodeType = isOver ? \"mover\" : \"munder\";\n } else if (!group.sub) {\n var base = group.base;\n\n if (base && base.type === \"op\" && base.limits && (options.style === Style$1.DISPLAY || base.alwaysHandleSupSub)) {\n nodeType = \"mover\";\n } else if (base && base.type === \"operatorname\" && base.alwaysHandleSupSub && (base.limits || options.style === Style$1.DISPLAY)) {\n nodeType = \"mover\";\n } else {\n nodeType = \"msup\";\n }\n } else if (!group.sup) {\n var _base = group.base;\n\n if (_base && _base.type === \"op\" && _base.limits && (options.style === Style$1.DISPLAY || _base.alwaysHandleSupSub)) {\n nodeType = \"munder\";\n } else if (_base && _base.type === \"operatorname\" && _base.alwaysHandleSupSub && (_base.limits || options.style === Style$1.DISPLAY)) {\n nodeType = \"munder\";\n } else {\n nodeType = \"msub\";\n }\n } else {\n var _base2 = group.base;\n\n if (_base2 && _base2.type === \"op\" && _base2.limits && options.style === Style$1.DISPLAY) {\n nodeType = \"munderover\";\n } else if (_base2 && _base2.type === \"operatorname\" && _base2.alwaysHandleSupSub && (options.style === Style$1.DISPLAY || _base2.limits)) {\n nodeType = \"munderover\";\n } else {\n nodeType = \"msubsup\";\n }\n }\n\n return new mathMLTree.MathNode(nodeType, children);\n }\n\n});\n\ndefineFunctionBuilders({\n type: \"atom\",\n\n htmlBuilder(group, options) {\n return buildCommon.mathsym(group.text, group.mode, options, [\"m\" + group.family]);\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mo\", [makeText(group.text, group.mode)]);\n\n if (group.family === \"bin\") {\n var variant = getVariant(group, options);\n\n if (variant === \"bold-italic\") {\n node.setAttribute(\"mathvariant\", variant);\n }\n } else if (group.family === \"punct\") {\n node.setAttribute(\"separator\", \"true\");\n } else if (group.family === \"open\" || group.family === \"close\") {\n // Delims built here should not stretch vertically.\n // See delimsizing.js for stretchy delims.\n node.setAttribute(\"stretchy\", \"false\");\n }\n\n return node;\n }\n\n});\n\n// \"mathord\" and \"textord\" ParseNodes created in Parser.js from symbol Groups in\n// src/symbols.js.\nvar defaultVariant = {\n \"mi\": \"italic\",\n \"mn\": \"normal\",\n \"mtext\": \"normal\"\n};\ndefineFunctionBuilders({\n type: \"mathord\",\n\n htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"mathord\");\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mi\", [makeText(group.text, group.mode, options)]);\n var variant = getVariant(group, options) || \"italic\";\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n\n});\ndefineFunctionBuilders({\n type: \"textord\",\n\n htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"textord\");\n },\n\n mathmlBuilder(group, options) {\n var text = makeText(group.text, group.mode, options);\n var variant = getVariant(group, options) || \"normal\";\n var node;\n\n if (group.mode === 'text') {\n node = new mathMLTree.MathNode(\"mtext\", [text]);\n } else if (/[0-9]/.test(group.text)) {\n node = new mathMLTree.MathNode(\"mn\", [text]);\n } else if (group.text === \"\\\\prime\") {\n node = new mathMLTree.MathNode(\"mo\", [text]);\n } else {\n node = new mathMLTree.MathNode(\"mi\", [text]);\n }\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n\n});\n\nvar cssSpace = {\n \"\\\\nobreak\": \"nobreak\",\n \"\\\\allowbreak\": \"allowbreak\"\n}; // A lookup table to determine whether a spacing function/symbol should be\n// treated like a regular space character. If a symbol or command is a key\n// in this table, then it should be a regular space character. Furthermore,\n// the associated value may have a `className` specifying an extra CSS class\n// to add to the created `span`.\n\nvar regularSpace = {\n \" \": {},\n \"\\\\ \": {},\n \"~\": {\n className: \"nobreak\"\n },\n \"\\\\space\": {},\n \"\\\\nobreakspace\": {\n className: \"nobreak\"\n }\n}; // ParseNode<\"spacing\"> created in Parser.js from the \"spacing\" symbol Groups in\n// src/symbols.js.\n\ndefineFunctionBuilders({\n type: \"spacing\",\n\n htmlBuilder(group, options) {\n if (regularSpace.hasOwnProperty(group.text)) {\n var className = regularSpace[group.text].className || \"\"; // Spaces are generated by adding an actual space. Each of these\n // things has an entry in the symbols table, so these will be turned\n // into appropriate outputs.\n\n if (group.mode === \"text\") {\n var ord = buildCommon.makeOrd(group, options, \"textord\");\n ord.classes.push(className);\n return ord;\n } else {\n return buildCommon.makeSpan([\"mspace\", className], [buildCommon.mathsym(group.text, group.mode, options)], options);\n }\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // Spaces based on just a CSS class.\n return buildCommon.makeSpan([\"mspace\", cssSpace[group.text]], [], options);\n } else {\n throw new ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n },\n\n mathmlBuilder(group, options) {\n var node;\n\n if (regularSpace.hasOwnProperty(group.text)) {\n node = new mathMLTree.MathNode(\"mtext\", [new mathMLTree.TextNode(\"\\u00a0\")]);\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // CSS-based MathML spaces (\\nobreak, \\allowbreak) are ignored\n return new mathMLTree.MathNode(\"mspace\");\n } else {\n throw new ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n\n return node;\n }\n\n});\n\nvar pad = () => {\n var padNode = new mathMLTree.MathNode(\"mtd\", []);\n padNode.setAttribute(\"width\", \"50%\");\n return padNode;\n};\n\ndefineFunctionBuilders({\n type: \"tag\",\n\n mathmlBuilder(group, options) {\n var table = new mathMLTree.MathNode(\"mtable\", [new mathMLTree.MathNode(\"mtr\", [pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.body, options)]), pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.tag, options)])])]);\n table.setAttribute(\"width\", \"100%\");\n return table; // TODO: Left-aligned tags.\n // Currently, the group and options passed here do not contain\n // enough info to set tag alignment. `leqno` is in Settings but it is\n // not passed to Options. On the HTML side, leqno is\n // set by a CSS class applied in buildTree.js. That would have worked\n // in MathML if browsers supported <mlabeledtr>. Since they don't, we\n // need to rewrite the way this function is called.\n }\n\n});\n\nvar textFontFamilies = {\n \"\\\\text\": undefined,\n \"\\\\textrm\": \"textrm\",\n \"\\\\textsf\": \"textsf\",\n \"\\\\texttt\": \"texttt\",\n \"\\\\textnormal\": \"textrm\"\n};\nvar textFontWeights = {\n \"\\\\textbf\": \"textbf\",\n \"\\\\textmd\": \"textmd\"\n};\nvar textFontShapes = {\n \"\\\\textit\": \"textit\",\n \"\\\\textup\": \"textup\"\n};\n\nvar optionsWithFont = (group, options) => {\n var font = group.font; // Checks if the argument is a font family or a font style.\n\n if (!font) {\n return options;\n } else if (textFontFamilies[font]) {\n return options.withTextFontFamily(textFontFamilies[font]);\n } else if (textFontWeights[font]) {\n return options.withTextFontWeight(textFontWeights[font]);\n } else {\n return options.withTextFontShape(textFontShapes[font]);\n }\n};\n\ndefineFunction({\n type: \"text\",\n names: [// Font families\n \"\\\\text\", \"\\\\textrm\", \"\\\\textsf\", \"\\\\texttt\", \"\\\\textnormal\", // Font weights\n \"\\\\textbf\", \"\\\\textmd\", // Font Shapes\n \"\\\\textit\", \"\\\\textup\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInArgument: true,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"text\",\n mode: parser.mode,\n body: ordargument(body),\n font: funcName\n };\n },\n\n htmlBuilder(group, options) {\n var newOptions = optionsWithFont(group, options);\n var inner = buildExpression$1(group.body, newOptions, true);\n return buildCommon.makeSpan([\"mord\", \"text\"], inner, newOptions);\n },\n\n mathmlBuilder(group, options) {\n var newOptions = optionsWithFont(group, options);\n return buildExpressionRow(group.body, newOptions);\n }\n\n});\n\ndefineFunction({\n type: \"underline\",\n names: [\"\\\\underline\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"underline\",\n mode: parser.mode,\n body: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n // Underlines are handled in the TeXbook pg 443, Rule 10.\n // Build the inner group.\n var innerGroup = buildGroup$1(group.body, options); // Create the line to go below the body\n\n var line = buildCommon.makeLineSpan(\"underline-line\", options); // Generate the vlist, with the appropriate kerns\n\n var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n var vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"kern\",\n size: defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"underline\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n var operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n var node = new mathMLTree.MathNode(\"munder\", [buildGroup(group.body, options), operator]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n\n});\n\ndefineFunction({\n type: \"vcenter\",\n names: [\"\\\\vcenter\"],\n props: {\n numArgs: 1,\n argTypes: [\"original\"],\n // In LaTeX, \\vcenter can act only on a box.\n allowedInText: false\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"vcenter\",\n mode: parser.mode,\n body: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n var body = buildGroup$1(group.body, options);\n var axisHeight = options.fontMetrics().axisHeight;\n var dy = 0.5 * (body.height - axisHeight - (body.depth + axisHeight));\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n\n mathmlBuilder(group, options) {\n // There is no way to do this in MathML.\n // Write a class as a breadcrumb in case some post-processor wants\n // to perform a vcenter adjustment.\n return new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)], [\"vcenter\"]);\n }\n\n});\n\ndefineFunction({\n type: \"verb\",\n names: [\"\\\\verb\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(context, args, optArgs) {\n // \\verb and \\verb* are dealt with directly in Parser.js.\n // If we end up here, it's because of a failure to match the two delimiters\n // in the regex in Lexer.js. LaTeX raises the following error when \\verb is\n // terminated by end of line (or file).\n throw new ParseError(\"\\\\verb ended by end of line instead of matching delimiter\");\n },\n\n htmlBuilder(group, options) {\n var text = makeVerb(group);\n var body = []; // \\verb enters text mode and therefore is sized like \\textstyle\n\n var newOptions = options.havingStyle(options.style.text());\n\n for (var i = 0; i < text.length; i++) {\n var c = text[i];\n\n if (c === '~') {\n c = '\\\\textasciitilde';\n }\n\n body.push(buildCommon.makeSymbol(c, \"Typewriter-Regular\", group.mode, newOptions, [\"mord\", \"texttt\"]));\n }\n\n return buildCommon.makeSpan([\"mord\", \"text\"].concat(newOptions.sizingClasses(options)), buildCommon.tryCombineChars(body), newOptions);\n },\n\n mathmlBuilder(group, options) {\n var text = new mathMLTree.TextNode(makeVerb(group));\n var node = new mathMLTree.MathNode(\"mtext\", [text]);\n node.setAttribute(\"mathvariant\", \"monospace\");\n return node;\n }\n\n});\n/**\n * Converts verb group into body string.\n *\n * \\verb* replaces each space with an open box \\u2423\n * \\verb replaces each space with a no-break space \\xA0\n */\n\nvar makeVerb = group => group.body.replace(/ /g, group.star ? '\\u2423' : '\\xA0');\n\n/** Include this to ensure that all functions are defined. */\nvar functions = _functions;\n\n/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more whitespace characters\n * - matches a backslash followed by one or more letters then whitespace\n * - matches a backslash followed by any BMP character\n * Capturing groups:\n * [1] regular whitespace\n * [2] backslash followed by whitespace\n * [3] anything else, which may include:\n * [4] left character of \\verb*\n * [5] left character of \\verb\n * [6] backslash followed by word, excluding any trailing whitespace\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar spaceRegexString = \"[ \\r\\n\\t]\";\nvar controlWordRegexString = \"\\\\\\\\[a-zA-Z@]+\";\nvar controlSymbolRegexString = \"\\\\\\\\[^\\uD800-\\uDFFF]\";\nvar controlWordWhitespaceRegexString = \"(\" + controlWordRegexString + \")\" + spaceRegexString + \"*\";\nvar controlSpaceRegexString = \"\\\\\\\\(\\n|[ \\r\\t]+\\n?)[ \\r\\t]*\";\nvar combiningDiacriticalMarkString = \"[\\u0300-\\u036f]\";\nvar combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + \"+$\");\nvar tokenRegexString = \"(\" + spaceRegexString + \"+)|\" + ( // whitespace\ncontrolSpaceRegexString + \"|\") + // \\whitespace\n\"([!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + ( // single codepoint\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + ( // surrogate pair\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|\\\\\\\\verb\\\\*([^]).*?\\\\4\" + // \\verb*\n\"|\\\\\\\\verb([^*a-zA-Z]).*?\\\\5\" + ( // \\verb unstarred\n\"|\" + controlWordWhitespaceRegexString) + ( // \\macroName + spaces\n\"|\" + controlSymbolRegexString + \")\"); // \\\\, \\', etc.\n\n/** Main Lexer class */\n\nclass Lexer {\n // Category codes. The lexer only supports comment characters (14) for now.\n // MacroExpander additionally distinguishes active (13).\n constructor(input, settings) {\n this.input = void 0;\n this.settings = void 0;\n this.tokenRegex = void 0;\n this.catcodes = void 0;\n // Separate accents from characters\n this.input = input;\n this.settings = settings;\n this.tokenRegex = new RegExp(tokenRegexString, 'g');\n this.catcodes = {\n \"%\": 14,\n // comment character\n \"~\": 13 // active character\n\n };\n }\n\n setCatcode(char, code) {\n this.catcodes[char] = code;\n }\n /**\n * This function lexes a single token.\n */\n\n\n lex() {\n var input = this.input;\n var pos = this.tokenRegex.lastIndex;\n\n if (pos === input.length) {\n return new Token(\"EOF\", new SourceLocation(this, pos, pos));\n }\n\n var match = this.tokenRegex.exec(input);\n\n if (match === null || match.index !== pos) {\n throw new ParseError(\"Unexpected character: '\" + input[pos] + \"'\", new Token(input[pos], new SourceLocation(this, pos, pos + 1)));\n }\n\n var text = match[6] || match[3] || (match[2] ? \"\\\\ \" : \" \");\n\n if (this.catcodes[text] === 14) {\n // comment character\n var nlIndex = input.indexOf('\\n', this.tokenRegex.lastIndex);\n\n if (nlIndex === -1) {\n this.tokenRegex.lastIndex = input.length; // EOF\n\n this.settings.reportNonstrict(\"commentAtEnd\", \"% comment has no terminating newline; LaTeX would \" + \"fail because of commenting the end of math mode (e.g. $)\");\n } else {\n this.tokenRegex.lastIndex = nlIndex + 1;\n }\n\n return this.lex();\n }\n\n return new Token(text, new SourceLocation(this, pos, this.tokenRegex.lastIndex));\n }\n\n}\n\n/**\n * A `Namespace` refers to a space of nameable things like macros or lengths,\n * which can be `set` either globally or local to a nested group, using an\n * undo stack similar to how TeX implements this functionality.\n * Performance-wise, `get` and local `set` take constant time, while global\n * `set` takes time proportional to the depth of group nesting.\n */\nclass Namespace {\n /**\n * Both arguments are optional. The first argument is an object of\n * built-in mappings which never change. The second argument is an object\n * of initial (global-level) mappings, which will constantly change\n * according to any global/top-level `set`s done.\n */\n constructor(builtins, globalMacros) {\n if (builtins === void 0) {\n builtins = {};\n }\n\n if (globalMacros === void 0) {\n globalMacros = {};\n }\n\n this.current = void 0;\n this.builtins = void 0;\n this.undefStack = void 0;\n this.current = globalMacros;\n this.builtins = builtins;\n this.undefStack = [];\n }\n /**\n * Start a new nested group, affecting future local `set`s.\n */\n\n\n beginGroup() {\n this.undefStack.push({});\n }\n /**\n * End current nested group, restoring values before the group began.\n */\n\n\n endGroup() {\n if (this.undefStack.length === 0) {\n throw new ParseError(\"Unbalanced namespace destruction: attempt \" + \"to pop global namespace; please report this as a bug\");\n }\n\n var undefs = this.undefStack.pop();\n\n for (var undef in undefs) {\n if (undefs.hasOwnProperty(undef)) {\n if (undefs[undef] == null) {\n delete this.current[undef];\n } else {\n this.current[undef] = undefs[undef];\n }\n }\n }\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n\n\n endGroups() {\n while (this.undefStack.length > 0) {\n this.endGroup();\n }\n }\n /**\n * Detect whether `name` has a definition. Equivalent to\n * `get(name) != null`.\n */\n\n\n has(name) {\n return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);\n }\n /**\n * Get the current value of a name, or `undefined` if there is no value.\n *\n * Note: Do not use `if (namespace.get(...))` to detect whether a macro\n * is defined, as the definition may be the empty string which evaluates\n * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or\n * `if (namespace.has(...))`.\n */\n\n\n get(name) {\n if (this.current.hasOwnProperty(name)) {\n return this.current[name];\n } else {\n return this.builtins[name];\n }\n }\n /**\n * Set the current value of a name, and optionally set it globally too.\n * Local set() sets the current value and (when appropriate) adds an undo\n * operation to the undo stack. Global set() may change the undo\n * operation at every level, so takes time linear in their number.\n * A value of undefined means to delete existing definitions.\n */\n\n\n set(name, value, global) {\n if (global === void 0) {\n global = false;\n }\n\n if (global) {\n // Global set is equivalent to setting in all groups. Simulate this\n // by destroying any undos currently scheduled for this name,\n // and adding an undo with the *new* value (in case it later gets\n // locally reset within this environment).\n for (var i = 0; i < this.undefStack.length; i++) {\n delete this.undefStack[i][name];\n }\n\n if (this.undefStack.length > 0) {\n this.undefStack[this.undefStack.length - 1][name] = value;\n }\n } else {\n // Undo this set at end of this group (possibly to `undefined`),\n // unless an undo is already in place, in which case that older\n // value is the correct one.\n var top = this.undefStack[this.undefStack.length - 1];\n\n if (top && !top.hasOwnProperty(name)) {\n top[name] = this.current[name];\n }\n }\n\n if (value == null) {\n delete this.current[name];\n } else {\n this.current[name] = value;\n }\n }\n\n}\n\n/**\n * Predefined macros for KaTeX.\n * This can be used to define some commands in terms of others.\n */\nvar macros = _macros;\n// macro tools\n\ndefineMacro(\"\\\\noexpand\", function (context) {\n // The expansion is the token itself; but that token is interpreted\n // as if its meaning were ‘\\relax’ if it is a control sequence that\n // would ordinarily be expanded by TeX’s expansion rules.\n var t = context.popToken();\n\n if (context.isExpandable(t.text)) {\n t.noexpand = true;\n t.treatAsRelax = true;\n }\n\n return {\n tokens: [t],\n numArgs: 0\n };\n});\ndefineMacro(\"\\\\expandafter\", function (context) {\n // TeX first reads the token that comes immediately after \\expandafter,\n // without expanding it; let’s call this token t. Then TeX reads the\n // token that comes after t (and possibly more tokens, if that token\n // has an argument), replacing it by its expansion. Finally TeX puts\n // t back in front of that expansion.\n var t = context.popToken();\n context.expandOnce(true); // expand only an expandable token\n\n return {\n tokens: [t],\n numArgs: 0\n };\n}); // LaTeX's \\@firstoftwo{#1}{#2} expands to #1, skipping #2\n// TeX source: \\long\\def\\@firstoftwo#1#2{#1}\n\ndefineMacro(\"\\\\@firstoftwo\", function (context) {\n var args = context.consumeArgs(2);\n return {\n tokens: args[0],\n numArgs: 0\n };\n}); // LaTeX's \\@secondoftwo{#1}{#2} expands to #2, skipping #1\n// TeX source: \\long\\def\\@secondoftwo#1#2{#2}\n\ndefineMacro(\"\\\\@secondoftwo\", function (context) {\n var args = context.consumeArgs(2);\n return {\n tokens: args[1],\n numArgs: 0\n };\n}); // LaTeX's \\@ifnextchar{#1}{#2}{#3} looks ahead to the next (unexpanded)\n// symbol that isn't a space, consuming any spaces but not consuming the\n// first nonspace character. If that nonspace character matches #1, then\n// the macro expands to #2; otherwise, it expands to #3.\n\ndefineMacro(\"\\\\@ifnextchar\", function (context) {\n var args = context.consumeArgs(3); // symbol, if, else\n\n context.consumeSpaces();\n var nextToken = context.future();\n\n if (args[0].length === 1 && args[0][0].text === nextToken.text) {\n return {\n tokens: args[1],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[2],\n numArgs: 0\n };\n }\n}); // LaTeX's \\@ifstar{#1}{#2} looks ahead to the next (unexpanded) symbol.\n// If it is `*`, then it consumes the symbol, and the macro expands to #1;\n// otherwise, the macro expands to #2 (without consuming the symbol).\n// TeX source: \\def\\@ifstar#1{\\@ifnextchar *{\\@firstoftwo{#1}}}\n\ndefineMacro(\"\\\\@ifstar\", \"\\\\@ifnextchar *{\\\\@firstoftwo{#1}}\"); // LaTeX's \\TextOrMath{#1}{#2} expands to #1 in text mode, #2 in math mode\n\ndefineMacro(\"\\\\TextOrMath\", function (context) {\n var args = context.consumeArgs(2);\n\n if (context.mode === 'text') {\n return {\n tokens: args[0],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[1],\n numArgs: 0\n };\n }\n}); // Lookup table for parsing numbers in base 8 through 16\n\nvar digitToNumber = {\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n \"a\": 10,\n \"A\": 10,\n \"b\": 11,\n \"B\": 11,\n \"c\": 12,\n \"C\": 12,\n \"d\": 13,\n \"D\": 13,\n \"e\": 14,\n \"E\": 14,\n \"f\": 15,\n \"F\": 15\n}; // TeX \\char makes a literal character (catcode 12) using the following forms:\n// (see The TeXBook, p. 43)\n// \\char123 -- decimal\n// \\char'123 -- octal\n// \\char\"123 -- hex\n// \\char`x -- character that can be written (i.e. isn't active)\n// \\char`\\x -- character that cannot be written (e.g. %)\n// These all refer to characters from the font, so we turn them into special\n// calls to a function \\@char dealt with in the Parser.\n\ndefineMacro(\"\\\\char\", function (context) {\n var token = context.popToken();\n var base;\n var number = '';\n\n if (token.text === \"'\") {\n base = 8;\n token = context.popToken();\n } else if (token.text === '\"') {\n base = 16;\n token = context.popToken();\n } else if (token.text === \"`\") {\n token = context.popToken();\n\n if (token.text[0] === \"\\\\\") {\n number = token.text.charCodeAt(1);\n } else if (token.text === \"EOF\") {\n throw new ParseError(\"\\\\char` missing argument\");\n } else {\n number = token.text.charCodeAt(0);\n }\n } else {\n base = 10;\n }\n\n if (base) {\n // Parse a number in the given base, starting with first `token`.\n number = digitToNumber[token.text];\n\n if (number == null || number >= base) {\n throw new ParseError(\"Invalid base-\" + base + \" digit \" + token.text);\n }\n\n var digit;\n\n while ((digit = digitToNumber[context.future().text]) != null && digit < base) {\n number *= base;\n number += digit;\n context.popToken();\n }\n }\n\n return \"\\\\@char{\" + number + \"}\";\n}); // \\newcommand{\\macro}[args]{definition}\n// \\renewcommand{\\macro}[args]{definition}\n// TODO: Optional arguments: \\newcommand{\\macro}[args][default]{definition}\n\nvar newcommand = (context, existsOK, nonexistsOK) => {\n var arg = context.consumeArg().tokens;\n\n if (arg.length !== 1) {\n throw new ParseError(\"\\\\newcommand's first argument must be a macro name\");\n }\n\n var name = arg[0].text;\n var exists = context.isDefined(name);\n\n if (exists && !existsOK) {\n throw new ParseError(\"\\\\newcommand{\" + name + \"} attempting to redefine \" + (name + \"; use \\\\renewcommand\"));\n }\n\n if (!exists && !nonexistsOK) {\n throw new ParseError(\"\\\\renewcommand{\" + name + \"} when command \" + name + \" \" + \"does not yet exist; use \\\\newcommand\");\n }\n\n var numArgs = 0;\n arg = context.consumeArg().tokens;\n\n if (arg.length === 1 && arg[0].text === \"[\") {\n var argText = '';\n var token = context.expandNextToken();\n\n while (token.text !== \"]\" && token.text !== \"EOF\") {\n // TODO: Should properly expand arg, e.g., ignore {}s\n argText += token.text;\n token = context.expandNextToken();\n }\n\n if (!argText.match(/^\\s*[0-9]+\\s*$/)) {\n throw new ParseError(\"Invalid number of arguments: \" + argText);\n }\n\n numArgs = parseInt(argText);\n arg = context.consumeArg().tokens;\n } // Final arg is the expansion of the macro\n\n\n context.macros.set(name, {\n tokens: arg,\n numArgs\n });\n return '';\n};\n\ndefineMacro(\"\\\\newcommand\", context => newcommand(context, false, true));\ndefineMacro(\"\\\\renewcommand\", context => newcommand(context, true, false));\ndefineMacro(\"\\\\providecommand\", context => newcommand(context, true, true)); // terminal (console) tools\n\ndefineMacro(\"\\\\message\", context => {\n var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.log(arg.reverse().map(token => token.text).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\errmessage\", context => {\n var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.error(arg.reverse().map(token => token.text).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\show\", context => {\n var tok = context.popToken();\n var name = tok.text; // eslint-disable-next-line no-console\n\n console.log(tok, context.macros.get(name), functions[name], symbols.math[name], symbols.text[name]);\n return '';\n}); //////////////////////////////////////////////////////////////////////\n// Grouping\n// \\let\\bgroup={ \\let\\egroup=}\n\ndefineMacro(\"\\\\bgroup\", \"{\");\ndefineMacro(\"\\\\egroup\", \"}\"); // Symbols from latex.ltx:\n// \\def~{\\nobreakspace{}}\n// \\def\\lq{`}\n// \\def\\rq{'}\n// \\def \\aa {\\r a}\n// \\def \\AA {\\r A}\n\ndefineMacro(\"~\", \"\\\\nobreakspace\");\ndefineMacro(\"\\\\lq\", \"`\");\ndefineMacro(\"\\\\rq\", \"'\");\ndefineMacro(\"\\\\aa\", \"\\\\r a\");\ndefineMacro(\"\\\\AA\", \"\\\\r A\"); // Copyright (C) and registered (R) symbols. Use raw symbol in MathML.\n// \\DeclareTextCommandDefault{\\textcopyright}{\\textcircled{c}}\n// \\DeclareTextCommandDefault{\\textregistered}{\\textcircled{%\n// \\check@mathfonts\\fontsize\\sf@size\\z@\\math@fontsfalse\\selectfont R}}\n// \\DeclareRobustCommand{\\copyright}{%\n// \\ifmmode{\\nfss@text{\\textcopyright}}\\else\\textcopyright\\fi}\n\ndefineMacro(\"\\\\textcopyright\", \"\\\\html@mathml{\\\\textcircled{c}}{\\\\char`©}\");\ndefineMacro(\"\\\\copyright\", \"\\\\TextOrMath{\\\\textcopyright}{\\\\text{\\\\textcopyright}}\");\ndefineMacro(\"\\\\textregistered\", \"\\\\html@mathml{\\\\textcircled{\\\\scriptsize R}}{\\\\char`®}\"); // Characters omitted from Unicode range 1D400–1D7FF\n\ndefineMacro(\"\\u212C\", \"\\\\mathscr{B}\"); // script\n\ndefineMacro(\"\\u2130\", \"\\\\mathscr{E}\");\ndefineMacro(\"\\u2131\", \"\\\\mathscr{F}\");\ndefineMacro(\"\\u210B\", \"\\\\mathscr{H}\");\ndefineMacro(\"\\u2110\", \"\\\\mathscr{I}\");\ndefineMacro(\"\\u2112\", \"\\\\mathscr{L}\");\ndefineMacro(\"\\u2133\", \"\\\\mathscr{M}\");\ndefineMacro(\"\\u211B\", \"\\\\mathscr{R}\");\ndefineMacro(\"\\u212D\", \"\\\\mathfrak{C}\"); // Fraktur\n\ndefineMacro(\"\\u210C\", \"\\\\mathfrak{H}\");\ndefineMacro(\"\\u2128\", \"\\\\mathfrak{Z}\"); // Define \\Bbbk with a macro that works in both HTML and MathML.\n\ndefineMacro(\"\\\\Bbbk\", \"\\\\Bbb{k}\"); // Unicode middle dot\n// The KaTeX fonts do not contain U+00B7. Instead, \\cdotp displays\n// the dot at U+22C5 and gives it punct spacing.\n\ndefineMacro(\"\\u00b7\", \"\\\\cdotp\"); // \\llap and \\rlap render their contents in text mode\n\ndefineMacro(\"\\\\llap\", \"\\\\mathllap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\rlap\", \"\\\\mathrlap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\clap\", \"\\\\mathclap{\\\\textrm{#1}}\"); // \\mathstrut from the TeXbook, p 360\n\ndefineMacro(\"\\\\mathstrut\", \"\\\\vphantom{(}\"); // \\underbar from TeXbook p 353\n\ndefineMacro(\"\\\\underbar\", \"\\\\underline{\\\\text{#1}}\"); // \\not is defined by base/fontmath.ltx via\n// \\DeclareMathSymbol{\\not}{\\mathrel}{symbols}{\"36}\n// It's thus treated like a \\mathrel, but defined by a symbol that has zero\n// width but extends to the right. We use \\rlap to get that spacing.\n// For MathML we write U+0338 here. buildMathML.js will then do the overlay.\n\ndefineMacro(\"\\\\not\", '\\\\html@mathml{\\\\mathrel{\\\\mathrlap\\\\@not}}{\\\\char\"338}'); // Negated symbols from base/fontmath.ltx:\n// \\def\\neq{\\not=} \\let\\ne=\\neq\n// \\DeclareRobustCommand\n// \\notin{\\mathrel{\\m@th\\mathpalette\\c@ncel\\in}}\n// \\def\\c@ncel#1#2{\\m@th\\ooalign{$\\hfil#1\\mkern1mu/\\hfil$\\crcr$#1#2$}}\n\ndefineMacro(\"\\\\neq\", \"\\\\html@mathml{\\\\mathrel{\\\\not=}}{\\\\mathrel{\\\\char`≠}}\");\ndefineMacro(\"\\\\ne\", \"\\\\neq\");\ndefineMacro(\"\\u2260\", \"\\\\neq\");\ndefineMacro(\"\\\\notin\", \"\\\\html@mathml{\\\\mathrel{{\\\\in}\\\\mathllap{/\\\\mskip1mu}}}\" + \"{\\\\mathrel{\\\\char`∉}}\");\ndefineMacro(\"\\u2209\", \"\\\\notin\"); // Unicode stacked relations\n\ndefineMacro(\"\\u2258\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\kern{-1em}\\\\raisebox{0.4em}{$\\\\scriptsize\\\\frown$}}\" + \"}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u2259\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\wedge}{=}}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u225A\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\vee}{=}}{\\\\mathrel{\\\\char`\\u225A}}\");\ndefineMacro(\"\\u225B\", \"\\\\html@mathml{\\\\stackrel{\\\\scriptsize\\\\star}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225B}}\");\ndefineMacro(\"\\u225D\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{def}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225D}}\");\ndefineMacro(\"\\u225E\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{m}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225E}}\");\ndefineMacro(\"\\u225F\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny?}{=}}{\\\\mathrel{\\\\char`\\u225F}}\"); // Misc Unicode\n\ndefineMacro(\"\\u27C2\", \"\\\\perp\");\ndefineMacro(\"\\u203C\", \"\\\\mathclose{!\\\\mkern-0.8mu!}\");\ndefineMacro(\"\\u220C\", \"\\\\notni\");\ndefineMacro(\"\\u231C\", \"\\\\ulcorner\");\ndefineMacro(\"\\u231D\", \"\\\\urcorner\");\ndefineMacro(\"\\u231E\", \"\\\\llcorner\");\ndefineMacro(\"\\u231F\", \"\\\\lrcorner\");\ndefineMacro(\"\\u00A9\", \"\\\\copyright\");\ndefineMacro(\"\\u00AE\", \"\\\\textregistered\");\ndefineMacro(\"\\uFE0F\", \"\\\\textregistered\"); // The KaTeX fonts have corners at codepoints that don't match Unicode.\n// For MathML purposes, use the Unicode code point.\n\ndefineMacro(\"\\\\ulcorner\", \"\\\\html@mathml{\\\\@ulcorner}{\\\\mathop{\\\\char\\\"231c}}\");\ndefineMacro(\"\\\\urcorner\", \"\\\\html@mathml{\\\\@urcorner}{\\\\mathop{\\\\char\\\"231d}}\");\ndefineMacro(\"\\\\llcorner\", \"\\\\html@mathml{\\\\@llcorner}{\\\\mathop{\\\\char\\\"231e}}\");\ndefineMacro(\"\\\\lrcorner\", \"\\\\html@mathml{\\\\@lrcorner}{\\\\mathop{\\\\char\\\"231f}}\"); //////////////////////////////////////////////////////////////////////\n// LaTeX_2ε\n// \\vdots{\\vbox{\\baselineskip4\\p@ \\lineskiplimit\\z@\n// \\kern6\\p@\\hbox{.}\\hbox{.}\\hbox{.}}}\n// We'll call \\varvdots, which gets a glyph from symbols.js.\n// The zero-width rule gets us an equivalent to the vertical 6pt kern.\n\ndefineMacro(\"\\\\vdots\", \"\\\\mathord{\\\\varvdots\\\\rule{0pt}{15pt}}\");\ndefineMacro(\"\\u22ee\", \"\\\\vdots\"); //////////////////////////////////////////////////////////////////////\n// amsmath.sty\n// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf\n// Italic Greek capital letters. AMS defines these with \\DeclareMathSymbol,\n// but they are equivalent to \\mathit{\\Letter}.\n\ndefineMacro(\"\\\\varGamma\", \"\\\\mathit{\\\\Gamma}\");\ndefineMacro(\"\\\\varDelta\", \"\\\\mathit{\\\\Delta}\");\ndefineMacro(\"\\\\varTheta\", \"\\\\mathit{\\\\Theta}\");\ndefineMacro(\"\\\\varLambda\", \"\\\\mathit{\\\\Lambda}\");\ndefineMacro(\"\\\\varXi\", \"\\\\mathit{\\\\Xi}\");\ndefineMacro(\"\\\\varPi\", \"\\\\mathit{\\\\Pi}\");\ndefineMacro(\"\\\\varSigma\", \"\\\\mathit{\\\\Sigma}\");\ndefineMacro(\"\\\\varUpsilon\", \"\\\\mathit{\\\\Upsilon}\");\ndefineMacro(\"\\\\varPhi\", \"\\\\mathit{\\\\Phi}\");\ndefineMacro(\"\\\\varPsi\", \"\\\\mathit{\\\\Psi}\");\ndefineMacro(\"\\\\varOmega\", \"\\\\mathit{\\\\Omega}\"); //\\newcommand{\\substack}[1]{\\subarray{c}#1\\endsubarray}\n\ndefineMacro(\"\\\\substack\", \"\\\\begin{subarray}{c}#1\\\\end{subarray}\"); // \\renewcommand{\\colon}{\\nobreak\\mskip2mu\\mathpunct{}\\nonscript\n// \\mkern-\\thinmuskip{:}\\mskip6muplus1mu\\relax}\n\ndefineMacro(\"\\\\colon\", \"\\\\nobreak\\\\mskip2mu\\\\mathpunct{}\" + \"\\\\mathchoice{\\\\mkern-3mu}{\\\\mkern-3mu}{}{}{:}\\\\mskip6mu\\\\relax\"); // \\newcommand{\\boxed}[1]{\\fbox{\\m@th$\\displaystyle#1$}}\n\ndefineMacro(\"\\\\boxed\", \"\\\\fbox{$\\\\displaystyle{#1}$}\"); // \\def\\iff{\\DOTSB\\;\\Longleftrightarrow\\;}\n// \\def\\implies{\\DOTSB\\;\\Longrightarrow\\;}\n// \\def\\impliedby{\\DOTSB\\;\\Longleftarrow\\;}\n\ndefineMacro(\"\\\\iff\", \"\\\\DOTSB\\\\;\\\\Longleftrightarrow\\\\;\");\ndefineMacro(\"\\\\implies\", \"\\\\DOTSB\\\\;\\\\Longrightarrow\\\\;\");\ndefineMacro(\"\\\\impliedby\", \"\\\\DOTSB\\\\;\\\\Longleftarrow\\\\;\"); // AMSMath's automatic \\dots, based on \\mdots@@ macro.\n\nvar dotsByToken = {\n ',': '\\\\dotsc',\n '\\\\not': '\\\\dotsb',\n // \\keybin@ checks for the following:\n '+': '\\\\dotsb',\n '=': '\\\\dotsb',\n '<': '\\\\dotsb',\n '>': '\\\\dotsb',\n '-': '\\\\dotsb',\n '*': '\\\\dotsb',\n ':': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSB:\n '\\\\DOTSB': '\\\\dotsb',\n '\\\\coprod': '\\\\dotsb',\n '\\\\bigvee': '\\\\dotsb',\n '\\\\bigwedge': '\\\\dotsb',\n '\\\\biguplus': '\\\\dotsb',\n '\\\\bigcap': '\\\\dotsb',\n '\\\\bigcup': '\\\\dotsb',\n '\\\\prod': '\\\\dotsb',\n '\\\\sum': '\\\\dotsb',\n '\\\\bigotimes': '\\\\dotsb',\n '\\\\bigoplus': '\\\\dotsb',\n '\\\\bigodot': '\\\\dotsb',\n '\\\\bigsqcup': '\\\\dotsb',\n '\\\\And': '\\\\dotsb',\n '\\\\longrightarrow': '\\\\dotsb',\n '\\\\Longrightarrow': '\\\\dotsb',\n '\\\\longleftarrow': '\\\\dotsb',\n '\\\\Longleftarrow': '\\\\dotsb',\n '\\\\longleftrightarrow': '\\\\dotsb',\n '\\\\Longleftrightarrow': '\\\\dotsb',\n '\\\\mapsto': '\\\\dotsb',\n '\\\\longmapsto': '\\\\dotsb',\n '\\\\hookrightarrow': '\\\\dotsb',\n '\\\\doteq': '\\\\dotsb',\n // Symbols whose definition starts with \\mathbin:\n '\\\\mathbin': '\\\\dotsb',\n // Symbols whose definition starts with \\mathrel:\n '\\\\mathrel': '\\\\dotsb',\n '\\\\relbar': '\\\\dotsb',\n '\\\\Relbar': '\\\\dotsb',\n '\\\\xrightarrow': '\\\\dotsb',\n '\\\\xleftarrow': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSI:\n '\\\\DOTSI': '\\\\dotsi',\n '\\\\int': '\\\\dotsi',\n '\\\\oint': '\\\\dotsi',\n '\\\\iint': '\\\\dotsi',\n '\\\\iiint': '\\\\dotsi',\n '\\\\iiiint': '\\\\dotsi',\n '\\\\idotsint': '\\\\dotsi',\n // Symbols whose definition starts with \\DOTSX:\n '\\\\DOTSX': '\\\\dotsx'\n};\ndefineMacro(\"\\\\dots\", function (context) {\n // TODO: If used in text mode, should expand to \\textellipsis.\n // However, in KaTeX, \\textellipsis and \\ldots behave the same\n // (in text mode), and it's unlikely we'd see any of the math commands\n // that affect the behavior of \\dots when in text mode. So fine for now\n // (until we support \\ifmmode ... \\else ... \\fi).\n var thedots = '\\\\dotso';\n var next = context.expandAfterFuture().text;\n\n if (next in dotsByToken) {\n thedots = dotsByToken[next];\n } else if (next.slice(0, 4) === '\\\\not') {\n thedots = '\\\\dotsb';\n } else if (next in symbols.math) {\n if (utils.contains(['bin', 'rel'], symbols.math[next].group)) {\n thedots = '\\\\dotsb';\n }\n }\n\n return thedots;\n});\nvar spaceAfterDots = {\n // \\rightdelim@ checks for the following:\n ')': true,\n ']': true,\n '\\\\rbrack': true,\n '\\\\}': true,\n '\\\\rbrace': true,\n '\\\\rangle': true,\n '\\\\rceil': true,\n '\\\\rfloor': true,\n '\\\\rgroup': true,\n '\\\\rmoustache': true,\n '\\\\right': true,\n '\\\\bigr': true,\n '\\\\biggr': true,\n '\\\\Bigr': true,\n '\\\\Biggr': true,\n // \\extra@ also tests for the following:\n '$': true,\n // \\extrap@ checks for the following:\n ';': true,\n '.': true,\n ',': true\n};\ndefineMacro(\"\\\\dotso\", function (context) {\n var next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\dotsc\", function (context) {\n var next = context.future().text; // \\dotsc uses \\extra@ but not \\extrap@, instead specially checking for\n // ';' and '.', but doesn't check for ','.\n\n if (next in spaceAfterDots && next !== ',') {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\cdots\", function (context) {\n var next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\@cdots\\\\,\";\n } else {\n return \"\\\\@cdots\";\n }\n});\ndefineMacro(\"\\\\dotsb\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsm\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsi\", \"\\\\!\\\\cdots\"); // amsmath doesn't actually define \\dotsx, but \\dots followed by a macro\n// starting with \\DOTSX implies \\dotso, and then \\extra@ detects this case\n// and forces the added `\\,`.\n\ndefineMacro(\"\\\\dotsx\", \"\\\\ldots\\\\,\"); // \\let\\DOTSI\\relax\n// \\let\\DOTSB\\relax\n// \\let\\DOTSX\\relax\n\ndefineMacro(\"\\\\DOTSI\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSB\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSX\", \"\\\\relax\"); // Spacing, based on amsmath.sty's override of LaTeX defaults\n// \\DeclareRobustCommand{\\tmspace}[3]{%\n// \\ifmmode\\mskip#1#2\\else\\kern#1#3\\fi\\relax}\n\ndefineMacro(\"\\\\tmspace\", \"\\\\TextOrMath{\\\\kern#1#3}{\\\\mskip#1#2}\\\\relax\"); // \\renewcommand{\\,}{\\tmspace+\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\,\", \"\\\\tmspace+{3mu}{.1667em}\"); // \\let\\thinspace\\,\n\ndefineMacro(\"\\\\thinspace\", \"\\\\,\"); // \\def\\>{\\mskip\\medmuskip}\n// \\renewcommand{\\:}{\\tmspace+\\medmuskip{.2222em}}\n// TODO: \\> and math mode of \\: should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\>\", \"\\\\mskip{4mu}\");\ndefineMacro(\"\\\\:\", \"\\\\tmspace+{4mu}{.2222em}\"); // \\let\\medspace\\:\n\ndefineMacro(\"\\\\medspace\", \"\\\\:\"); // \\renewcommand{\\;}{\\tmspace+\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip = 5mu plus 5mu\n\ndefineMacro(\"\\\\;\", \"\\\\tmspace+{5mu}{.2777em}\"); // \\let\\thickspace\\;\n\ndefineMacro(\"\\\\thickspace\", \"\\\\;\"); // \\renewcommand{\\!}{\\tmspace-\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\!\", \"\\\\tmspace-{3mu}{.1667em}\"); // \\let\\negthinspace\\!\n\ndefineMacro(\"\\\\negthinspace\", \"\\\\!\"); // \\newcommand{\\negmedspace}{\\tmspace-\\medmuskip{.2222em}}\n// TODO: math mode should use \\medmuskip\n\ndefineMacro(\"\\\\negmedspace\", \"\\\\tmspace-{4mu}{.2222em}\"); // \\newcommand{\\negthickspace}{\\tmspace-\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip\n\ndefineMacro(\"\\\\negthickspace\", \"\\\\tmspace-{5mu}{.277em}\"); // \\def\\enspace{\\kern.5em }\n\ndefineMacro(\"\\\\enspace\", \"\\\\kern.5em \"); // \\def\\enskip{\\hskip.5em\\relax}\n\ndefineMacro(\"\\\\enskip\", \"\\\\hskip.5em\\\\relax\"); // \\def\\quad{\\hskip1em\\relax}\n\ndefineMacro(\"\\\\quad\", \"\\\\hskip1em\\\\relax\"); // \\def\\qquad{\\hskip2em\\relax}\n\ndefineMacro(\"\\\\qquad\", \"\\\\hskip2em\\\\relax\"); // \\tag@in@display form of \\tag\n\ndefineMacro(\"\\\\tag\", \"\\\\@ifstar\\\\tag@literal\\\\tag@paren\");\ndefineMacro(\"\\\\tag@paren\", \"\\\\tag@literal{({#1})}\");\ndefineMacro(\"\\\\tag@literal\", context => {\n if (context.macros.get(\"\\\\df@tag\")) {\n throw new ParseError(\"Multiple \\\\tag\");\n }\n\n return \"\\\\gdef\\\\df@tag{\\\\text{#1}}\";\n}); // \\renewcommand{\\bmod}{\\nonscript\\mskip-\\medmuskip\\mkern5mu\\mathbin\n// {\\operator@font mod}\\penalty900\n// \\mkern5mu\\nonscript\\mskip-\\medmuskip}\n// \\newcommand{\\pod}[1]{\\allowbreak\n// \\if@display\\mkern18mu\\else\\mkern8mu\\fi(#1)}\n// \\renewcommand{\\pmod}[1]{\\pod{{\\operator@font mod}\\mkern6mu#1}}\n// \\newcommand{\\mod}[1]{\\allowbreak\\if@display\\mkern18mu\n// \\else\\mkern12mu\\fi{\\operator@font mod}\\,\\,#1}\n// TODO: math mode should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\bmod\", \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\" + \"\\\\mathbin{\\\\rm mod}\" + \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\");\ndefineMacro(\"\\\\pod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern8mu}{\\\\mkern8mu}{\\\\mkern8mu}(#1)\");\ndefineMacro(\"\\\\pmod\", \"\\\\pod{{\\\\rm mod}\\\\mkern6mu#1}\");\ndefineMacro(\"\\\\mod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern12mu}{\\\\mkern12mu}{\\\\mkern12mu}\" + \"{\\\\rm mod}\\\\,\\\\,#1\"); //////////////////////////////////////////////////////////////////////\n// LaTeX source2e\n// \\expandafter\\let\\expandafter\\@normalcr\n// \\csname\\expandafter\\@gobble\\string\\\\ \\endcsname\n// \\DeclareRobustCommand\\newline{\\@normalcr\\relax}\n\ndefineMacro(\"\\\\newline\", \"\\\\\\\\\\\\relax\"); // \\def\\TeX{T\\kern-.1667em\\lower.5ex\\hbox{E}\\kern-.125emX\\@}\n// TODO: Doesn't normally work in math mode because \\@ fails. KaTeX doesn't\n// support \\@ yet, so that's omitted, and we add \\text so that the result\n// doesn't look funny in math mode.\n\ndefineMacro(\"\\\\TeX\", \"\\\\textrm{\\\\html@mathml{\" + \"T\\\\kern-.1667em\\\\raisebox{-.5ex}{E}\\\\kern-.125emX\" + \"}{TeX}}\"); // \\DeclareRobustCommand{\\LaTeX}{L\\kern-.36em%\n// {\\sbox\\z@ T%\n// \\vbox to\\ht\\z@{\\hbox{\\check@mathfonts\n// \\fontsize\\sf@size\\z@\n// \\math@fontsfalse\\selectfont\n// A}%\n// \\vss}%\n// }%\n// \\kern-.15em%\n// \\TeX}\n// This code aligns the top of the A with the T (from the perspective of TeX's\n// boxes, though visually the A appears to extend above slightly).\n// We compute the corresponding \\raisebox when A is rendered in \\normalsize\n// \\scriptstyle, which has a scale factor of 0.7 (see Options.js).\n\nvar latexRaiseA = makeEm(fontMetricsData['Main-Regular'][\"T\".charCodeAt(0)][1] - 0.7 * fontMetricsData['Main-Regular'][\"A\".charCodeAt(0)][1]);\ndefineMacro(\"\\\\LaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"L\\\\kern-.36em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{LaTeX}}\"); // New KaTeX logo based on tweaking LaTeX logo\n\ndefineMacro(\"\\\\KaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"K\\\\kern-.17em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{KaTeX}}\"); // \\DeclareRobustCommand\\hspace{\\@ifstar\\@hspacer\\@hspace}\n// \\def\\@hspace#1{\\hskip #1\\relax}\n// \\def\\@hspacer#1{\\vrule \\@width\\z@\\nobreak\n// \\hskip #1\\hskip \\z@skip}\n\ndefineMacro(\"\\\\hspace\", \"\\\\@ifstar\\\\@hspacer\\\\@hspace\");\ndefineMacro(\"\\\\@hspace\", \"\\\\hskip #1\\\\relax\");\ndefineMacro(\"\\\\@hspacer\", \"\\\\rule{0pt}{0pt}\\\\hskip #1\\\\relax\"); //////////////////////////////////////////////////////////////////////\n// mathtools.sty\n//\\providecommand\\ordinarycolon{:}\n\ndefineMacro(\"\\\\ordinarycolon\", \":\"); //\\def\\vcentcolon{\\mathrel{\\mathop\\ordinarycolon}}\n//TODO(edemaine): Not yet centered. Fix via \\raisebox or #726\n\ndefineMacro(\"\\\\vcentcolon\", \"\\\\mathrel{\\\\mathop\\\\ordinarycolon}\"); // \\providecommand*\\dblcolon{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}\n\ndefineMacro(\"\\\\dblcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-.9mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2237}}\"); // \\providecommand*\\coloneqq{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2254}}\"); // ≔\n// \\providecommand*\\Coloneqq{\\dblcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\Coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"3d}}\"); // \\providecommand*\\coloneq{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2212}}\"); // \\providecommand*\\Coloneq{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\Coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2212}}\"); // \\providecommand*\\eqqcolon{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2255}}\"); // ≕\n// \\providecommand*\\Eqqcolon{=\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"3d\\\\char\\\"2237}}\"); // \\providecommand*\\eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2239}}\"); // \\providecommand*\\Eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"2212\\\\char\\\"2237}}\"); // \\providecommand*\\colonapprox{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2248}}\"); // \\providecommand*\\Colonapprox{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\Colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2248}}\"); // \\providecommand*\\colonsim{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"223c}}\"); // \\providecommand*\\Colonsim{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\Colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"223c}}\"); // Some Unicode characters are implemented with macros to mathtools functions.\n\ndefineMacro(\"\\u2237\", \"\\\\dblcolon\"); // ::\n\ndefineMacro(\"\\u2239\", \"\\\\eqcolon\"); // -:\n\ndefineMacro(\"\\u2254\", \"\\\\coloneqq\"); // :=\n\ndefineMacro(\"\\u2255\", \"\\\\eqqcolon\"); // =:\n\ndefineMacro(\"\\u2A74\", \"\\\\Coloneqq\"); // ::=\n//////////////////////////////////////////////////////////////////////\n// colonequals.sty\n// Alternate names for mathtools's macros:\n\ndefineMacro(\"\\\\ratio\", \"\\\\vcentcolon\");\ndefineMacro(\"\\\\coloncolon\", \"\\\\dblcolon\");\ndefineMacro(\"\\\\colonequals\", \"\\\\coloneqq\");\ndefineMacro(\"\\\\coloncolonequals\", \"\\\\Coloneqq\");\ndefineMacro(\"\\\\equalscolon\", \"\\\\eqqcolon\");\ndefineMacro(\"\\\\equalscoloncolon\", \"\\\\Eqqcolon\");\ndefineMacro(\"\\\\colonminus\", \"\\\\coloneq\");\ndefineMacro(\"\\\\coloncolonminus\", \"\\\\Coloneq\");\ndefineMacro(\"\\\\minuscolon\", \"\\\\eqcolon\");\ndefineMacro(\"\\\\minuscoloncolon\", \"\\\\Eqcolon\"); // \\colonapprox name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonapprox\", \"\\\\Colonapprox\"); // \\colonsim name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonsim\", \"\\\\Colonsim\"); // Additional macros, implemented by analogy with mathtools definitions:\n\ndefineMacro(\"\\\\simcolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\simcoloncolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\");\ndefineMacro(\"\\\\approxcolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\approxcoloncolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\"); // Present in newtxmath, pxfonts and txfonts\n\ndefineMacro(\"\\\\notni\", \"\\\\html@mathml{\\\\not\\\\ni}{\\\\mathrel{\\\\char`\\u220C}}\");\ndefineMacro(\"\\\\limsup\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,sup}\");\ndefineMacro(\"\\\\liminf\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,inf}\"); //////////////////////////////////////////////////////////////////////\n// From amsopn.sty\n\ndefineMacro(\"\\\\injlim\", \"\\\\DOTSB\\\\operatorname*{inj\\\\,lim}\");\ndefineMacro(\"\\\\projlim\", \"\\\\DOTSB\\\\operatorname*{proj\\\\,lim}\");\ndefineMacro(\"\\\\varlimsup\", \"\\\\DOTSB\\\\operatorname*{\\\\overline{lim}}\");\ndefineMacro(\"\\\\varliminf\", \"\\\\DOTSB\\\\operatorname*{\\\\underline{lim}}\");\ndefineMacro(\"\\\\varinjlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underrightarrow{lim}}\");\ndefineMacro(\"\\\\varprojlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underleftarrow{lim}}\"); //////////////////////////////////////////////////////////////////////\n// MathML alternates for KaTeX glyphs in the Unicode private area\n\ndefineMacro(\"\\\\gvertneqq\", \"\\\\html@mathml{\\\\@gvertneqq}{\\u2269}\");\ndefineMacro(\"\\\\lvertneqq\", \"\\\\html@mathml{\\\\@lvertneqq}{\\u2268}\");\ndefineMacro(\"\\\\ngeqq\", \"\\\\html@mathml{\\\\@ngeqq}{\\u2271}\");\ndefineMacro(\"\\\\ngeqslant\", \"\\\\html@mathml{\\\\@ngeqslant}{\\u2271}\");\ndefineMacro(\"\\\\nleqq\", \"\\\\html@mathml{\\\\@nleqq}{\\u2270}\");\ndefineMacro(\"\\\\nleqslant\", \"\\\\html@mathml{\\\\@nleqslant}{\\u2270}\");\ndefineMacro(\"\\\\nshortmid\", \"\\\\html@mathml{\\\\@nshortmid}{∤}\");\ndefineMacro(\"\\\\nshortparallel\", \"\\\\html@mathml{\\\\@nshortparallel}{∦}\");\ndefineMacro(\"\\\\nsubseteqq\", \"\\\\html@mathml{\\\\@nsubseteqq}{\\u2288}\");\ndefineMacro(\"\\\\nsupseteqq\", \"\\\\html@mathml{\\\\@nsupseteqq}{\\u2289}\");\ndefineMacro(\"\\\\varsubsetneq\", \"\\\\html@mathml{\\\\@varsubsetneq}{⊊}\");\ndefineMacro(\"\\\\varsubsetneqq\", \"\\\\html@mathml{\\\\@varsubsetneqq}{â«‹}\");\ndefineMacro(\"\\\\varsupsetneq\", \"\\\\html@mathml{\\\\@varsupsetneq}{⊋}\");\ndefineMacro(\"\\\\varsupsetneqq\", \"\\\\html@mathml{\\\\@varsupsetneqq}{â«Œ}\");\ndefineMacro(\"\\\\imath\", \"\\\\html@mathml{\\\\@imath}{\\u0131}\");\ndefineMacro(\"\\\\jmath\", \"\\\\html@mathml{\\\\@jmath}{\\u0237}\"); //////////////////////////////////////////////////////////////////////\n// stmaryrd and semantic\n// The stmaryrd and semantic packages render the next four items by calling a\n// glyph. Those glyphs do not exist in the KaTeX fonts. Hence the macros.\n\ndefineMacro(\"\\\\llbracket\", \"\\\\html@mathml{\" + \"\\\\mathopen{[\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u27e6}}\");\ndefineMacro(\"\\\\rrbracket\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu]}}\" + \"{\\\\mathclose{\\\\char`\\u27e7}}\");\ndefineMacro(\"\\u27e6\", \"\\\\llbracket\"); // blackboard bold [\n\ndefineMacro(\"\\u27e7\", \"\\\\rrbracket\"); // blackboard bold ]\n\ndefineMacro(\"\\\\lBrace\", \"\\\\html@mathml{\" + \"\\\\mathopen{\\\\{\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u2983}}\");\ndefineMacro(\"\\\\rBrace\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu\\\\}}}\" + \"{\\\\mathclose{\\\\char`\\u2984}}\");\ndefineMacro(\"\\u2983\", \"\\\\lBrace\"); // blackboard bold {\n\ndefineMacro(\"\\u2984\", \"\\\\rBrace\"); // blackboard bold }\n// TODO: Create variable sized versions of the last two items. I believe that\n// will require new font glyphs.\n// The stmaryrd function `\\minuso` provides a \"Plimsoll\" symbol that\n// superimposes the characters \\circ and \\mathminus. Used in chemistry.\n\ndefineMacro(\"\\\\minuso\", \"\\\\mathbin{\\\\html@mathml{\" + \"{\\\\mathrlap{\\\\mathchoice{\\\\kern{0.145em}}{\\\\kern{0.145em}}\" + \"{\\\\kern{0.1015em}}{\\\\kern{0.0725em}}\\\\circ}{-}}}\" + \"{\\\\char`⦵}}\");\ndefineMacro(\"⦵\", \"\\\\minuso\"); //////////////////////////////////////////////////////////////////////\n// texvc.sty\n// The texvc package contains macros available in mediawiki pages.\n// We omit the functions deprecated at\n// https://en.wikipedia.org/wiki/Help:Displaying_a_formula#Deprecated_syntax\n// We also omit texvc's \\O, which conflicts with \\text{\\O}\n\ndefineMacro(\"\\\\darr\", \"\\\\downarrow\");\ndefineMacro(\"\\\\dArr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\Darr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\lang\", \"\\\\langle\");\ndefineMacro(\"\\\\rang\", \"\\\\rangle\");\ndefineMacro(\"\\\\uarr\", \"\\\\uparrow\");\ndefineMacro(\"\\\\uArr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\Uarr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\N\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\R\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Z\", \"\\\\mathbb{Z}\");\ndefineMacro(\"\\\\alef\", \"\\\\aleph\");\ndefineMacro(\"\\\\alefsym\", \"\\\\aleph\");\ndefineMacro(\"\\\\Alpha\", \"\\\\mathrm{A}\");\ndefineMacro(\"\\\\Beta\", \"\\\\mathrm{B}\");\ndefineMacro(\"\\\\bull\", \"\\\\bullet\");\ndefineMacro(\"\\\\Chi\", \"\\\\mathrm{X}\");\ndefineMacro(\"\\\\clubs\", \"\\\\clubsuit\");\ndefineMacro(\"\\\\cnums\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Complex\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Dagger\", \"\\\\ddagger\");\ndefineMacro(\"\\\\diamonds\", \"\\\\diamondsuit\");\ndefineMacro(\"\\\\empty\", \"\\\\emptyset\");\ndefineMacro(\"\\\\Epsilon\", \"\\\\mathrm{E}\");\ndefineMacro(\"\\\\Eta\", \"\\\\mathrm{H}\");\ndefineMacro(\"\\\\exist\", \"\\\\exists\");\ndefineMacro(\"\\\\harr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\hArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Harr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\hearts\", \"\\\\heartsuit\");\ndefineMacro(\"\\\\image\", \"\\\\Im\");\ndefineMacro(\"\\\\infin\", \"\\\\infty\");\ndefineMacro(\"\\\\Iota\", \"\\\\mathrm{I}\");\ndefineMacro(\"\\\\isin\", \"\\\\in\");\ndefineMacro(\"\\\\Kappa\", \"\\\\mathrm{K}\");\ndefineMacro(\"\\\\larr\", \"\\\\leftarrow\");\ndefineMacro(\"\\\\lArr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\Larr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\lrarr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\lrArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Lrarr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Mu\", \"\\\\mathrm{M}\");\ndefineMacro(\"\\\\natnums\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\Nu\", \"\\\\mathrm{N}\");\ndefineMacro(\"\\\\Omicron\", \"\\\\mathrm{O}\");\ndefineMacro(\"\\\\plusmn\", \"\\\\pm\");\ndefineMacro(\"\\\\rarr\", \"\\\\rightarrow\");\ndefineMacro(\"\\\\rArr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\Rarr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\real\", \"\\\\Re\");\ndefineMacro(\"\\\\reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Rho\", \"\\\\mathrm{P}\");\ndefineMacro(\"\\\\sdot\", \"\\\\cdot\");\ndefineMacro(\"\\\\sect\", \"\\\\S\");\ndefineMacro(\"\\\\spades\", \"\\\\spadesuit\");\ndefineMacro(\"\\\\sub\", \"\\\\subset\");\ndefineMacro(\"\\\\sube\", \"\\\\subseteq\");\ndefineMacro(\"\\\\supe\", \"\\\\supseteq\");\ndefineMacro(\"\\\\Tau\", \"\\\\mathrm{T}\");\ndefineMacro(\"\\\\thetasym\", \"\\\\vartheta\"); // TODO: defineMacro(\"\\\\varcoppa\", \"\\\\\\mbox{\\\\coppa}\");\n\ndefineMacro(\"\\\\weierp\", \"\\\\wp\");\ndefineMacro(\"\\\\Zeta\", \"\\\\mathrm{Z}\"); //////////////////////////////////////////////////////////////////////\n// statmath.sty\n// https://ctan.math.illinois.edu/macros/latex/contrib/statmath/statmath.pdf\n\ndefineMacro(\"\\\\argmin\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,min}\");\ndefineMacro(\"\\\\argmax\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,max}\");\ndefineMacro(\"\\\\plim\", \"\\\\DOTSB\\\\mathop{\\\\operatorname{plim}}\\\\limits\"); //////////////////////////////////////////////////////////////////////\n// braket.sty\n// http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/braket/braket.pdf\n\ndefineMacro(\"\\\\bra\", \"\\\\mathinner{\\\\langle{#1}|}\");\ndefineMacro(\"\\\\ket\", \"\\\\mathinner{|{#1}\\\\rangle}\");\ndefineMacro(\"\\\\braket\", \"\\\\mathinner{\\\\langle{#1}\\\\rangle}\");\ndefineMacro(\"\\\\Bra\", \"\\\\left\\\\langle#1\\\\right|\");\ndefineMacro(\"\\\\Ket\", \"\\\\left|#1\\\\right\\\\rangle\");\n\nvar braketHelper = one => context => {\n var left = context.consumeArg().tokens;\n var middle = context.consumeArg().tokens;\n var middleDouble = context.consumeArg().tokens;\n var right = context.consumeArg().tokens;\n var oldMiddle = context.macros.get(\"|\");\n var oldMiddleDouble = context.macros.get(\"\\\\|\");\n context.macros.beginGroup();\n\n var midMacro = double => context => {\n if (one) {\n // Only modify the first instance of | or \\|\n context.macros.set(\"|\", oldMiddle);\n\n if (middleDouble.length) {\n context.macros.set(\"\\\\|\", oldMiddleDouble);\n }\n }\n\n var doubled = double;\n\n if (!double && middleDouble.length) {\n // Mimic \\@ifnextchar\n var nextToken = context.future();\n\n if (nextToken.text === \"|\") {\n context.popToken();\n doubled = true;\n }\n }\n\n return {\n tokens: doubled ? middleDouble : middle,\n numArgs: 0\n };\n };\n\n context.macros.set(\"|\", midMacro(false));\n\n if (middleDouble.length) {\n context.macros.set(\"\\\\|\", midMacro(true));\n }\n\n var arg = context.consumeArg().tokens;\n var expanded = context.expandTokens([...right, ...arg, ...left // reversed\n ]);\n context.macros.endGroup();\n return {\n tokens: expanded.reverse(),\n numArgs: 0\n };\n};\n\ndefineMacro(\"\\\\bra@ket\", braketHelper(false));\ndefineMacro(\"\\\\bra@set\", braketHelper(true));\ndefineMacro(\"\\\\Braket\", \"\\\\bra@ket{\\\\left\\\\langle}\" + \"{\\\\,\\\\middle\\\\vert\\\\,}{\\\\,\\\\middle\\\\vert\\\\,}{\\\\right\\\\rangle}\");\ndefineMacro(\"\\\\Set\", \"\\\\bra@set{\\\\left\\\\{\\\\:}\" + \"{\\\\;\\\\middle\\\\vert\\\\;}{\\\\;\\\\middle\\\\Vert\\\\;}{\\\\:\\\\right\\\\}}\");\ndefineMacro(\"\\\\set\", \"\\\\bra@set{\\\\{\\\\,}{\\\\mid}{}{\\\\,\\\\}}\"); // has no support for special || or \\|\n//////////////////////////////////////////////////////////////////////\n// actuarialangle.dtx\n\ndefineMacro(\"\\\\angln\", \"{\\\\angl n}\"); // Custom Khan Academy colors, should be moved to an optional package\n\ndefineMacro(\"\\\\blue\", \"\\\\textcolor{##6495ed}{#1}\");\ndefineMacro(\"\\\\orange\", \"\\\\textcolor{##ffa500}{#1}\");\ndefineMacro(\"\\\\pink\", \"\\\\textcolor{##ff00af}{#1}\");\ndefineMacro(\"\\\\red\", \"\\\\textcolor{##df0030}{#1}\");\ndefineMacro(\"\\\\green\", \"\\\\textcolor{##28ae7b}{#1}\");\ndefineMacro(\"\\\\gray\", \"\\\\textcolor{gray}{#1}\");\ndefineMacro(\"\\\\purple\", \"\\\\textcolor{##9d38bd}{#1}\");\ndefineMacro(\"\\\\blueA\", \"\\\\textcolor{##ccfaff}{#1}\");\ndefineMacro(\"\\\\blueB\", \"\\\\textcolor{##80f6ff}{#1}\");\ndefineMacro(\"\\\\blueC\", \"\\\\textcolor{##63d9ea}{#1}\");\ndefineMacro(\"\\\\blueD\", \"\\\\textcolor{##11accd}{#1}\");\ndefineMacro(\"\\\\blueE\", \"\\\\textcolor{##0c7f99}{#1}\");\ndefineMacro(\"\\\\tealA\", \"\\\\textcolor{##94fff5}{#1}\");\ndefineMacro(\"\\\\tealB\", \"\\\\textcolor{##26edd5}{#1}\");\ndefineMacro(\"\\\\tealC\", \"\\\\textcolor{##01d1c1}{#1}\");\ndefineMacro(\"\\\\tealD\", \"\\\\textcolor{##01a995}{#1}\");\ndefineMacro(\"\\\\tealE\", \"\\\\textcolor{##208170}{#1}\");\ndefineMacro(\"\\\\greenA\", \"\\\\textcolor{##b6ffb0}{#1}\");\ndefineMacro(\"\\\\greenB\", \"\\\\textcolor{##8af281}{#1}\");\ndefineMacro(\"\\\\greenC\", \"\\\\textcolor{##74cf70}{#1}\");\ndefineMacro(\"\\\\greenD\", \"\\\\textcolor{##1fab54}{#1}\");\ndefineMacro(\"\\\\greenE\", \"\\\\textcolor{##0d923f}{#1}\");\ndefineMacro(\"\\\\goldA\", \"\\\\textcolor{##ffd0a9}{#1}\");\ndefineMacro(\"\\\\goldB\", \"\\\\textcolor{##ffbb71}{#1}\");\ndefineMacro(\"\\\\goldC\", \"\\\\textcolor{##ff9c39}{#1}\");\ndefineMacro(\"\\\\goldD\", \"\\\\textcolor{##e07d10}{#1}\");\ndefineMacro(\"\\\\goldE\", \"\\\\textcolor{##a75a05}{#1}\");\ndefineMacro(\"\\\\redA\", \"\\\\textcolor{##fca9a9}{#1}\");\ndefineMacro(\"\\\\redB\", \"\\\\textcolor{##ff8482}{#1}\");\ndefineMacro(\"\\\\redC\", \"\\\\textcolor{##f9685d}{#1}\");\ndefineMacro(\"\\\\redD\", \"\\\\textcolor{##e84d39}{#1}\");\ndefineMacro(\"\\\\redE\", \"\\\\textcolor{##bc2612}{#1}\");\ndefineMacro(\"\\\\maroonA\", \"\\\\textcolor{##ffbde0}{#1}\");\ndefineMacro(\"\\\\maroonB\", \"\\\\textcolor{##ff92c6}{#1}\");\ndefineMacro(\"\\\\maroonC\", \"\\\\textcolor{##ed5fa6}{#1}\");\ndefineMacro(\"\\\\maroonD\", \"\\\\textcolor{##ca337c}{#1}\");\ndefineMacro(\"\\\\maroonE\", \"\\\\textcolor{##9e034e}{#1}\");\ndefineMacro(\"\\\\purpleA\", \"\\\\textcolor{##ddd7ff}{#1}\");\ndefineMacro(\"\\\\purpleB\", \"\\\\textcolor{##c6b9fc}{#1}\");\ndefineMacro(\"\\\\purpleC\", \"\\\\textcolor{##aa87ff}{#1}\");\ndefineMacro(\"\\\\purpleD\", \"\\\\textcolor{##7854ab}{#1}\");\ndefineMacro(\"\\\\purpleE\", \"\\\\textcolor{##543b78}{#1}\");\ndefineMacro(\"\\\\mintA\", \"\\\\textcolor{##f5f9e8}{#1}\");\ndefineMacro(\"\\\\mintB\", \"\\\\textcolor{##edf2df}{#1}\");\ndefineMacro(\"\\\\mintC\", \"\\\\textcolor{##e0e5cc}{#1}\");\ndefineMacro(\"\\\\grayA\", \"\\\\textcolor{##f6f7f7}{#1}\");\ndefineMacro(\"\\\\grayB\", \"\\\\textcolor{##f0f1f2}{#1}\");\ndefineMacro(\"\\\\grayC\", \"\\\\textcolor{##e3e5e6}{#1}\");\ndefineMacro(\"\\\\grayD\", \"\\\\textcolor{##d6d8da}{#1}\");\ndefineMacro(\"\\\\grayE\", \"\\\\textcolor{##babec2}{#1}\");\ndefineMacro(\"\\\\grayF\", \"\\\\textcolor{##888d93}{#1}\");\ndefineMacro(\"\\\\grayG\", \"\\\\textcolor{##626569}{#1}\");\ndefineMacro(\"\\\\grayH\", \"\\\\textcolor{##3b3e40}{#1}\");\ndefineMacro(\"\\\\grayI\", \"\\\\textcolor{##21242c}{#1}\");\ndefineMacro(\"\\\\kaBlue\", \"\\\\textcolor{##314453}{#1}\");\ndefineMacro(\"\\\\kaGreen\", \"\\\\textcolor{##71B307}{#1}\");\n\n/**\n * This file contains the “gullet†where macros are expanded\n * until only non-macro tokens remain.\n */\n// List of commands that act like macros but aren't defined as a macro,\n// function, or symbol. Used in `isDefined`.\nvar implicitCommands = {\n \"^\": true,\n // Parser.js\n \"_\": true,\n // Parser.js\n \"\\\\limits\": true,\n // Parser.js\n \"\\\\nolimits\": true // Parser.js\n\n};\nclass MacroExpander {\n constructor(input, settings, mode) {\n this.settings = void 0;\n this.expansionCount = void 0;\n this.lexer = void 0;\n this.macros = void 0;\n this.stack = void 0;\n this.mode = void 0;\n this.settings = settings;\n this.expansionCount = 0;\n this.feed(input); // Make new global namespace\n\n this.macros = new Namespace(macros, settings.macros);\n this.mode = mode;\n this.stack = []; // contains tokens in REVERSE order\n }\n /**\n * Feed a new input string to the same MacroExpander\n * (with existing macros etc.).\n */\n\n\n feed(input) {\n this.lexer = new Lexer(input, this.settings);\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n\n\n switchMode(newMode) {\n this.mode = newMode;\n }\n /**\n * Start a new group nesting within all namespaces.\n */\n\n\n beginGroup() {\n this.macros.beginGroup();\n }\n /**\n * End current group nesting within all namespaces.\n */\n\n\n endGroup() {\n this.macros.endGroup();\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n\n\n endGroups() {\n this.macros.endGroups();\n }\n /**\n * Returns the topmost token on the stack, without expanding it.\n * Similar in behavior to TeX's `\\futurelet`.\n */\n\n\n future() {\n if (this.stack.length === 0) {\n this.pushToken(this.lexer.lex());\n }\n\n return this.stack[this.stack.length - 1];\n }\n /**\n * Remove and return the next unexpanded token.\n */\n\n\n popToken() {\n this.future(); // ensure non-empty stack\n\n return this.stack.pop();\n }\n /**\n * Add a given token to the token stack. In particular, this get be used\n * to put back a token returned from one of the other methods.\n */\n\n\n pushToken(token) {\n this.stack.push(token);\n }\n /**\n * Append an array of tokens to the token stack.\n */\n\n\n pushTokens(tokens) {\n this.stack.push(...tokens);\n }\n /**\n * Find an macro argument without expanding tokens and append the array of\n * tokens to the token stack. Uses Token as a container for the result.\n */\n\n\n scanArgument(isOptional) {\n var start;\n var end;\n var tokens;\n\n if (isOptional) {\n this.consumeSpaces(); // \\@ifnextchar gobbles any space following it\n\n if (this.future().text !== \"[\") {\n return null;\n }\n\n start = this.popToken(); // don't include [ in tokens\n\n ({\n tokens,\n end\n } = this.consumeArg([\"]\"]));\n } else {\n ({\n tokens,\n start,\n end\n } = this.consumeArg());\n } // indicate the end of an argument\n\n\n this.pushToken(new Token(\"EOF\", end.loc));\n this.pushTokens(tokens);\n return start.range(end, \"\");\n }\n /**\n * Consume all following space tokens, without expansion.\n */\n\n\n consumeSpaces() {\n for (;;) {\n var token = this.future();\n\n if (token.text === \" \") {\n this.stack.pop();\n } else {\n break;\n }\n }\n }\n /**\n * Consume an argument from the token stream, and return the resulting array\n * of tokens and start/end token.\n */\n\n\n consumeArg(delims) {\n // The argument for a delimited parameter is the shortest (possibly\n // empty) sequence of tokens with properly nested {...} groups that is\n // followed ... by this particular list of non-parameter tokens.\n // The argument for an undelimited parameter is the next nonblank\n // token, unless that token is ‘{’, when the argument will be the\n // entire {...} group that follows.\n var tokens = [];\n var isDelimited = delims && delims.length > 0;\n\n if (!isDelimited) {\n // Ignore spaces between arguments. As the TeXbook says:\n // \"After you have said ‘\\def\\row#1#2{...}’, you are allowed to\n // put spaces between the arguments (e.g., ‘\\row x n’), because\n // TeX doesn’t use single spaces as undelimited arguments.\"\n this.consumeSpaces();\n }\n\n var start = this.future();\n var tok;\n var depth = 0;\n var match = 0;\n\n do {\n tok = this.popToken();\n tokens.push(tok);\n\n if (tok.text === \"{\") {\n ++depth;\n } else if (tok.text === \"}\") {\n --depth;\n\n if (depth === -1) {\n throw new ParseError(\"Extra }\", tok);\n }\n } else if (tok.text === \"EOF\") {\n throw new ParseError(\"Unexpected end of input in a macro argument\" + \", expected '\" + (delims && isDelimited ? delims[match] : \"}\") + \"'\", tok);\n }\n\n if (delims && isDelimited) {\n if ((depth === 0 || depth === 1 && delims[match] === \"{\") && tok.text === delims[match]) {\n ++match;\n\n if (match === delims.length) {\n // don't include delims in tokens\n tokens.splice(-match, match);\n break;\n }\n } else {\n match = 0;\n }\n }\n } while (depth !== 0 || isDelimited); // If the argument found ... has the form ‘{<nested tokens>}’,\n // ... the outermost braces enclosing the argument are removed\n\n\n if (start.text === \"{\" && tokens[tokens.length - 1].text === \"}\") {\n tokens.pop();\n tokens.shift();\n }\n\n tokens.reverse(); // to fit in with stack order\n\n return {\n tokens,\n start,\n end: tok\n };\n }\n /**\n * Consume the specified number of (delimited) arguments from the token\n * stream and return the resulting array of arguments.\n */\n\n\n consumeArgs(numArgs, delimiters) {\n if (delimiters) {\n if (delimiters.length !== numArgs + 1) {\n throw new ParseError(\"The length of delimiters doesn't match the number of args!\");\n }\n\n var delims = delimiters[0];\n\n for (var i = 0; i < delims.length; i++) {\n var tok = this.popToken();\n\n if (delims[i] !== tok.text) {\n throw new ParseError(\"Use of the macro doesn't match its definition\", tok);\n }\n }\n }\n\n var args = [];\n\n for (var _i = 0; _i < numArgs; _i++) {\n args.push(this.consumeArg(delimiters && delimiters[_i + 1]).tokens);\n }\n\n return args;\n }\n /**\n * Increment `expansionCount` by the specified amount.\n * Throw an error if it exceeds `maxExpand`.\n */\n\n\n countExpansion(amount) {\n this.expansionCount += amount;\n\n if (this.expansionCount > this.settings.maxExpand) {\n throw new ParseError(\"Too many expansions: infinite loop or \" + \"need to increase maxExpand setting\");\n }\n }\n /**\n * Expand the next token only once if possible.\n *\n * If the token is expanded, the resulting tokens will be pushed onto\n * the stack in reverse order, and the number of such tokens will be\n * returned. This number might be zero or positive.\n *\n * If not, the return value is `false`, and the next token remains at the\n * top of the stack.\n *\n * In either case, the next token will be on the top of the stack,\n * or the stack will be empty (in case of empty expansion\n * and no other tokens).\n *\n * Used to implement `expandAfterFuture` and `expandNextToken`.\n *\n * If expandableOnly, only expandable tokens are expanded and\n * an undefined control sequence results in an error.\n */\n\n\n expandOnce(expandableOnly) {\n var topToken = this.popToken();\n var name = topToken.text;\n var expansion = !topToken.noexpand ? this._getExpansion(name) : null;\n\n if (expansion == null || expandableOnly && expansion.unexpandable) {\n if (expandableOnly && expansion == null && name[0] === \"\\\\\" && !this.isDefined(name)) {\n throw new ParseError(\"Undefined control sequence: \" + name);\n }\n\n this.pushToken(topToken);\n return false;\n }\n\n this.countExpansion(1);\n var tokens = expansion.tokens;\n var args = this.consumeArgs(expansion.numArgs, expansion.delimiters);\n\n if (expansion.numArgs) {\n // paste arguments in place of the placeholders\n tokens = tokens.slice(); // make a shallow copy\n\n for (var i = tokens.length - 1; i >= 0; --i) {\n var tok = tokens[i];\n\n if (tok.text === \"#\") {\n if (i === 0) {\n throw new ParseError(\"Incomplete placeholder at end of macro body\", tok);\n }\n\n tok = tokens[--i]; // next token on stack\n\n if (tok.text === \"#\") {\n // ## → #\n tokens.splice(i + 1, 1); // drop first #\n } else if (/^[1-9]$/.test(tok.text)) {\n // replace the placeholder with the indicated argument\n tokens.splice(i, 2, ...args[+tok.text - 1]);\n } else {\n throw new ParseError(\"Not a valid argument number\", tok);\n }\n }\n }\n } // Concatenate expansion onto top of stack.\n\n\n this.pushTokens(tokens);\n return tokens.length;\n }\n /**\n * Expand the next token only once (if possible), and return the resulting\n * top token on the stack (without removing anything from the stack).\n * Similar in behavior to TeX's `\\expandafter\\futurelet`.\n * Equivalent to expandOnce() followed by future().\n */\n\n\n expandAfterFuture() {\n this.expandOnce();\n return this.future();\n }\n /**\n * Recursively expand first token, then return first non-expandable token.\n */\n\n\n expandNextToken() {\n for (;;) {\n if (this.expandOnce() === false) {\n // fully expanded\n var token = this.stack.pop(); // the token after \\noexpand is interpreted as if its meaning\n // were ‘\\relax’\n\n if (token.treatAsRelax) {\n token.text = \"\\\\relax\";\n }\n\n return token;\n }\n } // Flow unable to figure out that this pathway is impossible.\n // https://github.com/facebook/flow/issues/4808\n\n\n throw new Error(); // eslint-disable-line no-unreachable\n }\n /**\n * Fully expand the given macro name and return the resulting list of\n * tokens, or return `undefined` if no such macro is defined.\n */\n\n\n expandMacro(name) {\n return this.macros.has(name) ? this.expandTokens([new Token(name)]) : undefined;\n }\n /**\n * Fully expand the given token stream and return the resulting list of\n * tokens. Note that the input tokens are in reverse order, but the\n * output tokens are in forward order.\n */\n\n\n expandTokens(tokens) {\n var output = [];\n var oldStackLength = this.stack.length;\n this.pushTokens(tokens);\n\n while (this.stack.length > oldStackLength) {\n // Expand only expandable tokens\n if (this.expandOnce(true) === false) {\n // fully expanded\n var token = this.stack.pop();\n\n if (token.treatAsRelax) {\n // the expansion of \\noexpand is the token itself\n token.noexpand = false;\n token.treatAsRelax = false;\n }\n\n output.push(token);\n }\n } // Count all of these tokens as additional expansions, to prevent\n // exponential blowup from linearly many \\edef's.\n\n\n this.countExpansion(output.length);\n return output;\n }\n /**\n * Fully expand the given macro name and return the result as a string,\n * or return `undefined` if no such macro is defined.\n */\n\n\n expandMacroAsText(name) {\n var tokens = this.expandMacro(name);\n\n if (tokens) {\n return tokens.map(token => token.text).join(\"\");\n } else {\n return tokens;\n }\n }\n /**\n * Returns the expanded macro as a reversed array of tokens and a macro\n * argument count. Or returns `null` if no such macro.\n */\n\n\n _getExpansion(name) {\n var definition = this.macros.get(name);\n\n if (definition == null) {\n // mainly checking for undefined here\n return definition;\n } // If a single character has an associated catcode other than 13\n // (active character), then don't expand it.\n\n\n if (name.length === 1) {\n var catcode = this.lexer.catcodes[name];\n\n if (catcode != null && catcode !== 13) {\n return;\n }\n }\n\n var expansion = typeof definition === \"function\" ? definition(this) : definition;\n\n if (typeof expansion === \"string\") {\n var numArgs = 0;\n\n if (expansion.indexOf(\"#\") !== -1) {\n var stripped = expansion.replace(/##/g, \"\");\n\n while (stripped.indexOf(\"#\" + (numArgs + 1)) !== -1) {\n ++numArgs;\n }\n }\n\n var bodyLexer = new Lexer(expansion, this.settings);\n var tokens = [];\n var tok = bodyLexer.lex();\n\n while (tok.text !== \"EOF\") {\n tokens.push(tok);\n tok = bodyLexer.lex();\n }\n\n tokens.reverse(); // to fit in with stack using push and pop\n\n var expanded = {\n tokens,\n numArgs\n };\n return expanded;\n }\n\n return expansion;\n }\n /**\n * Determine whether a command is currently \"defined\" (has some\n * functionality), meaning that it's a macro (in the current group),\n * a function, a symbol, or one of the special commands listed in\n * `implicitCommands`.\n */\n\n\n isDefined(name) {\n return this.macros.has(name) || functions.hasOwnProperty(name) || symbols.math.hasOwnProperty(name) || symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);\n }\n /**\n * Determine whether a command is expandable.\n */\n\n\n isExpandable(name) {\n var macro = this.macros.get(name);\n return macro != null ? typeof macro === \"string\" || typeof macro === \"function\" || !macro.unexpandable : functions.hasOwnProperty(name) && !functions[name].primitive;\n }\n\n}\n\n// Helpers for Parser.js handling of Unicode (sub|super)script characters.\nvar unicodeSubRegEx = /^[â‚Šâ‚‹â‚Œâ‚â‚Žâ‚€â‚₂₃₄₅₆₇₈₉â‚ₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;\nvar uSubsAndSups = Object.freeze({\n 'â‚Š': '+',\n 'â‚‹': '-',\n 'â‚Œ': '=',\n 'â‚': '(',\n 'â‚Ž': ')',\n 'â‚€': '0',\n 'â‚': '1',\n 'â‚‚': '2',\n '₃': '3',\n 'â‚„': '4',\n 'â‚…': '5',\n '₆': '6',\n '₇': '7',\n '₈': '8',\n '₉': '9',\n '\\u2090': 'a',\n '\\u2091': 'e',\n '\\u2095': 'h',\n '\\u1D62': 'i',\n '\\u2C7C': 'j',\n '\\u2096': 'k',\n '\\u2097': 'l',\n '\\u2098': 'm',\n '\\u2099': 'n',\n '\\u2092': 'o',\n '\\u209A': 'p',\n '\\u1D63': 'r',\n '\\u209B': 's',\n '\\u209C': 't',\n '\\u1D64': 'u',\n '\\u1D65': 'v',\n '\\u2093': 'x',\n '\\u1D66': 'β',\n '\\u1D67': 'γ',\n '\\u1D68': 'Ï',\n '\\u1D69': '\\u03d5',\n '\\u1D6A': 'χ',\n 'âº': '+',\n 'â»': '-',\n 'â¼': '=',\n 'â½': '(',\n 'â¾': ')',\n 'â°': '0',\n '¹': '1',\n '²': '2',\n '³': '3',\n 'â´': '4',\n 'âµ': '5',\n 'â¶': '6',\n 'â·': '7',\n 'â¸': '8',\n 'â¹': '9',\n '\\u1D2C': 'A',\n '\\u1D2E': 'B',\n '\\u1D30': 'D',\n '\\u1D31': 'E',\n '\\u1D33': 'G',\n '\\u1D34': 'H',\n '\\u1D35': 'I',\n '\\u1D36': 'J',\n '\\u1D37': 'K',\n '\\u1D38': 'L',\n '\\u1D39': 'M',\n '\\u1D3A': 'N',\n '\\u1D3C': 'O',\n '\\u1D3E': 'P',\n '\\u1D3F': 'R',\n '\\u1D40': 'T',\n '\\u1D41': 'U',\n '\\u2C7D': 'V',\n '\\u1D42': 'W',\n '\\u1D43': 'a',\n '\\u1D47': 'b',\n '\\u1D9C': 'c',\n '\\u1D48': 'd',\n '\\u1D49': 'e',\n '\\u1DA0': 'f',\n '\\u1D4D': 'g',\n '\\u02B0': 'h',\n '\\u2071': 'i',\n '\\u02B2': 'j',\n '\\u1D4F': 'k',\n '\\u02E1': 'l',\n '\\u1D50': 'm',\n '\\u207F': 'n',\n '\\u1D52': 'o',\n '\\u1D56': 'p',\n '\\u02B3': 'r',\n '\\u02E2': 's',\n '\\u1D57': 't',\n '\\u1D58': 'u',\n '\\u1D5B': 'v',\n '\\u02B7': 'w',\n '\\u02E3': 'x',\n '\\u02B8': 'y',\n '\\u1DBB': 'z',\n '\\u1D5D': 'β',\n '\\u1D5E': 'γ',\n '\\u1D5F': 'δ',\n '\\u1D60': '\\u03d5',\n '\\u1D61': 'χ',\n '\\u1DBF': 'θ'\n});\n\n/* eslint no-constant-condition:0 */\n\nvar unicodeAccents = {\n \"Ì\": {\n \"text\": \"\\\\'\",\n \"math\": \"\\\\acute\"\n },\n \"Ì€\": {\n \"text\": \"\\\\`\",\n \"math\": \"\\\\grave\"\n },\n \"̈\": {\n \"text\": \"\\\\\\\"\",\n \"math\": \"\\\\ddot\"\n },\n \"̃\": {\n \"text\": \"\\\\~\",\n \"math\": \"\\\\tilde\"\n },\n \"Ì„\": {\n \"text\": \"\\\\=\",\n \"math\": \"\\\\bar\"\n },\n \"̆\": {\n \"text\": \"\\\\u\",\n \"math\": \"\\\\breve\"\n },\n \"ÌŒ\": {\n \"text\": \"\\\\v\",\n \"math\": \"\\\\check\"\n },\n \"Ì‚\": {\n \"text\": \"\\\\^\",\n \"math\": \"\\\\hat\"\n },\n \"̇\": {\n \"text\": \"\\\\.\",\n \"math\": \"\\\\dot\"\n },\n \"ÌŠ\": {\n \"text\": \"\\\\r\",\n \"math\": \"\\\\mathring\"\n },\n \"Ì‹\": {\n \"text\": \"\\\\H\"\n },\n \"̧\": {\n \"text\": \"\\\\c\"\n }\n};\nvar unicodeSymbols = {\n \"á\": \"aÌ\",\n \"à \": \"aÌ€\",\n \"ä\": \"ä\",\n \"ÇŸ\": \"ǟ\",\n \"ã\": \"ã\",\n \"Ä\": \"aÌ„\",\n \"ă\": \"ă\",\n \"ắ\": \"ăÌ\",\n \"ằ\": \"ằ\",\n \"ẵ\": \"ẵ\",\n \"ÇŽ\": \"aÌŒ\",\n \"â\": \"aÌ‚\",\n \"ấ\": \"aÌ‚Ì\",\n \"ầ\": \"aÌ‚Ì€\",\n \"ẫ\": \"ẫ\",\n \"ȧ\": \"ȧ\",\n \"Ç¡\": \"ǡ\",\n \"Ã¥\": \"aÌŠ\",\n \"Ç»\": \"aÌŠÌ\",\n \"ḃ\": \"ḃ\",\n \"ć\": \"cÌ\",\n \"ḉ\": \"çÌ\",\n \"Ä\": \"cÌŒ\",\n \"ĉ\": \"cÌ‚\",\n \"Ä‹\": \"ċ\",\n \"ç\": \"ç\",\n \"Ä\": \"dÌŒ\",\n \"ḋ\": \"ḋ\",\n \"ḑ\": \"ḑ\",\n \"é\": \"eÌ\",\n \"è\": \"eÌ€\",\n \"ë\": \"ë\",\n \"ẽ\": \"ẽ\",\n \"Ä“\": \"eÌ„\",\n \"ḗ\": \"eÌ„Ì\",\n \"ḕ\": \"eÌ„Ì€\",\n \"Ä•\": \"ĕ\",\n \"á¸\": \"ḝ\",\n \"Ä›\": \"eÌŒ\",\n \"ê\": \"eÌ‚\",\n \"ế\": \"eÌ‚Ì\",\n \"á»\": \"eÌ‚Ì€\",\n \"á»…\": \"ễ\",\n \"Ä—\": \"ė\",\n \"È©\": \"ȩ\",\n \"ḟ\": \"ḟ\",\n \"ǵ\": \"gÌ\",\n \"ḡ\": \"gÌ„\",\n \"ÄŸ\": \"ğ\",\n \"ǧ\": \"gÌŒ\",\n \"Ä\": \"gÌ‚\",\n \"Ä¡\": \"ġ\",\n \"Ä£\": \"ģ\",\n \"ḧ\": \"ḧ\",\n \"ÈŸ\": \"hÌŒ\",\n \"Ä¥\": \"hÌ‚\",\n \"ḣ\": \"ḣ\",\n \"ḩ\": \"ḩ\",\n \"Ã\": \"iÌ\",\n \"ì\": \"iÌ€\",\n \"ï\": \"ï\",\n \"ḯ\": \"ïÌ\",\n \"Ä©\": \"ĩ\",\n \"Ä«\": \"iÌ„\",\n \"Ä\": \"ĭ\",\n \"Ç\": \"iÌŒ\",\n \"î\": \"iÌ‚\",\n \"Ç°\": \"jÌŒ\",\n \"ĵ\": \"jÌ‚\",\n \"ḱ\": \"kÌ\",\n \"Ç©\": \"kÌŒ\",\n \"Ä·\": \"ķ\",\n \"ĺ\": \"lÌ\",\n \"ľ\": \"lÌŒ\",\n \"ļ\": \"ļ\",\n \"ḿ\": \"mÌ\",\n \"á¹\": \"ṁ\",\n \"Å„\": \"nÌ\",\n \"ǹ\": \"nÌ€\",\n \"ñ\": \"ñ\",\n \"ň\": \"nÌŒ\",\n \"á¹…\": \"ṅ\",\n \"ņ\": \"ņ\",\n \"ó\": \"oÌ\",\n \"ò\": \"oÌ€\",\n \"ö\": \"ö\",\n \"È«\": \"ȫ\",\n \"õ\": \"õ\",\n \"á¹\": \"õÌ\",\n \"á¹\": \"ṏ\",\n \"È\": \"ȭ\",\n \"Å\": \"oÌ„\",\n \"ṓ\": \"oÌ„Ì\",\n \"ṑ\": \"oÌ„Ì€\",\n \"Å\": \"ŏ\",\n \"Ç’\": \"oÌŒ\",\n \"ô\": \"oÌ‚\",\n \"ố\": \"oÌ‚Ì\",\n \"ồ\": \"oÌ‚Ì€\",\n \"á»—\": \"ỗ\",\n \"ȯ\": \"ȯ\",\n \"ȱ\": \"ȱ\",\n \"Å‘\": \"oÌ‹\",\n \"ṕ\": \"pÌ\",\n \"á¹—\": \"ṗ\",\n \"Å•\": \"rÌ\",\n \"Å™\": \"rÌŒ\",\n \"á¹™\": \"ṙ\",\n \"Å—\": \"ŗ\",\n \"Å›\": \"sÌ\",\n \"á¹¥\": \"sÌ̇\",\n \"Å¡\": \"sÌŒ\",\n \"ṧ\": \"ṧ\",\n \"Å\": \"sÌ‚\",\n \"ṡ\": \"ṡ\",\n \"ÅŸ\": \"ş\",\n \"ẗ\": \"ẗ\",\n \"Å¥\": \"tÌŒ\",\n \"ṫ\": \"ṫ\",\n \"Å£\": \"ţ\",\n \"ú\": \"uÌ\",\n \"ù\": \"uÌ€\",\n \"ü\": \"ü\",\n \"ǘ\": \"üÌ\",\n \"Çœ\": \"ǜ\",\n \"Ç–\": \"ǖ\",\n \"Çš\": \"ǚ\",\n \"Å©\": \"ũ\",\n \"á¹¹\": \"ũÌ\",\n \"Å«\": \"uÌ„\",\n \"á¹»\": \"ṻ\",\n \"Å\": \"ŭ\",\n \"Ç”\": \"uÌŒ\",\n \"û\": \"uÌ‚\",\n \"ů\": \"uÌŠ\",\n \"ű\": \"uÌ‹\",\n \"á¹½\": \"ṽ\",\n \"ẃ\": \"wÌ\",\n \"áº\": \"wÌ€\",\n \"ẅ\": \"ẅ\",\n \"ŵ\": \"wÌ‚\",\n \"ẇ\": \"ẇ\",\n \"ẘ\": \"wÌŠ\",\n \"áº\": \"ẍ\",\n \"ẋ\": \"ẋ\",\n \"ý\": \"yÌ\",\n \"ỳ\": \"yÌ€\",\n \"ÿ\": \"ÿ\",\n \"ỹ\": \"ỹ\",\n \"ȳ\": \"yÌ„\",\n \"Å·\": \"yÌ‚\",\n \"áº\": \"ẏ\",\n \"ẙ\": \"yÌŠ\",\n \"ź\": \"zÌ\",\n \"ž\": \"zÌŒ\",\n \"ẑ\": \"zÌ‚\",\n \"ż\": \"ż\",\n \"Ã\": \"AÌ\",\n \"À\": \"AÌ€\",\n \"Ä\": \"Ä\",\n \"Çž\": \"Ǟ\",\n \"Ã\": \"Ã\",\n \"Ä€\": \"AÌ„\",\n \"Ä‚\": \"Ă\",\n \"Ắ\": \"ĂÌ\",\n \"Ằ\": \"Ằ\",\n \"Ẵ\": \"Ẵ\",\n \"Ç\": \"AÌŒ\",\n \"Â\": \"AÌ‚\",\n \"Ấ\": \"AÌ‚Ì\",\n \"Ầ\": \"AÌ‚Ì€\",\n \"Ẫ\": \"Ẫ\",\n \"Ȧ\": \"Ȧ\",\n \"Ç \": \"Ǡ\",\n \"Ã…\": \"AÌŠ\",\n \"Ǻ\": \"AÌŠÌ\",\n \"Ḃ\": \"Ḃ\",\n \"Ć\": \"CÌ\",\n \"Ḉ\": \"ÇÌ\",\n \"ÄŒ\": \"CÌŒ\",\n \"Ĉ\": \"CÌ‚\",\n \"ÄŠ\": \"Ċ\",\n \"Ç\": \"Ç\",\n \"ÄŽ\": \"DÌŒ\",\n \"Ḋ\": \"Ḋ\",\n \"á¸\": \"Ḑ\",\n \"É\": \"EÌ\",\n \"È\": \"EÌ€\",\n \"Ë\": \"Ë\",\n \"Ẽ\": \"Ẽ\",\n \"Ä’\": \"EÌ„\",\n \"Ḗ\": \"EÌ„Ì\",\n \"Ḕ\": \"EÌ„Ì€\",\n \"Ä”\": \"Ĕ\",\n \"Ḝ\": \"Ḝ\",\n \"Äš\": \"EÌŒ\",\n \"Ê\": \"EÌ‚\",\n \"Ế\": \"EÌ‚Ì\",\n \"Ề\": \"EÌ‚Ì€\",\n \"Ễ\": \"Ễ\",\n \"Ä–\": \"Ė\",\n \"Ȩ\": \"Ȩ\",\n \"Ḟ\": \"Ḟ\",\n \"Ç´\": \"GÌ\",\n \"Ḡ\": \"GÌ„\",\n \"Äž\": \"Ğ\",\n \"Ǧ\": \"GÌŒ\",\n \"Äœ\": \"GÌ‚\",\n \"Ä \": \"Ġ\",\n \"Ä¢\": \"Ģ\",\n \"Ḧ\": \"Ḧ\",\n \"Èž\": \"HÌŒ\",\n \"Ĥ\": \"HÌ‚\",\n \"Ḣ\": \"Ḣ\",\n \"Ḩ\": \"Ḩ\",\n \"Ã\": \"IÌ\",\n \"ÃŒ\": \"IÌ€\",\n \"Ã\": \"Ï\",\n \"Ḯ\": \"ÏÌ\",\n \"Ĩ\": \"Ĩ\",\n \"Ī\": \"IÌ„\",\n \"Ĭ\": \"Ĭ\",\n \"Ç\": \"IÌŒ\",\n \"ÃŽ\": \"IÌ‚\",\n \"Ä°\": \"İ\",\n \"Ä´\": \"JÌ‚\",\n \"Ḱ\": \"KÌ\",\n \"Ǩ\": \"KÌŒ\",\n \"Ķ\": \"Ķ\",\n \"Ĺ\": \"LÌ\",\n \"Ľ\": \"LÌŒ\",\n \"Ä»\": \"Ļ\",\n \"Ḿ\": \"MÌ\",\n \"á¹€\": \"Ṁ\",\n \"Ń\": \"NÌ\",\n \"Ǹ\": \"NÌ€\",\n \"Ñ\": \"Ñ\",\n \"Ň\": \"NÌŒ\",\n \"Ṅ\": \"Ṅ\",\n \"Å…\": \"Ņ\",\n \"Ó\": \"OÌ\",\n \"Ã’\": \"OÌ€\",\n \"Ö\": \"Ö\",\n \"Ȫ\": \"Ȫ\",\n \"Õ\": \"Õ\",\n \"Ṍ\": \"ÕÌ\",\n \"Ṏ\": \"Ṏ\",\n \"Ȭ\": \"Ȭ\",\n \"ÅŒ\": \"OÌ„\",\n \"á¹’\": \"OÌ„Ì\",\n \"á¹\": \"OÌ„Ì€\",\n \"ÅŽ\": \"Ŏ\",\n \"Ç‘\": \"OÌŒ\",\n \"Ô\": \"OÌ‚\",\n \"á»\": \"OÌ‚Ì\",\n \"á»’\": \"OÌ‚Ì€\",\n \"á»–\": \"Ỗ\",\n \"È®\": \"Ȯ\",\n \"È°\": \"Ȱ\",\n \"Å\": \"OÌ‹\",\n \"á¹”\": \"PÌ\",\n \"á¹–\": \"Ṗ\",\n \"Å”\": \"RÌ\",\n \"Ř\": \"RÌŒ\",\n \"Ṙ\": \"Ṙ\",\n \"Å–\": \"Ŗ\",\n \"Åš\": \"SÌ\",\n \"Ṥ\": \"SÌ̇\",\n \"Å \": \"SÌŒ\",\n \"Ṧ\": \"Ṧ\",\n \"Åœ\": \"SÌ‚\",\n \"á¹ \": \"Ṡ\",\n \"Åž\": \"Ş\",\n \"Ť\": \"TÌŒ\",\n \"Ṫ\": \"Ṫ\",\n \"Å¢\": \"Ţ\",\n \"Ú\": \"UÌ\",\n \"Ù\": \"UÌ€\",\n \"Ãœ\": \"Ü\",\n \"Ç—\": \"ÜÌ\",\n \"Ç›\": \"Ǜ\",\n \"Ç•\": \"Ǖ\",\n \"Ç™\": \"Ǚ\",\n \"Ũ\": \"Ũ\",\n \"Ṹ\": \"ŨÌ\",\n \"Ū\": \"UÌ„\",\n \"Ṻ\": \"Ṻ\",\n \"Ŭ\": \"Ŭ\",\n \"Ç“\": \"UÌŒ\",\n \"Û\": \"UÌ‚\",\n \"Å®\": \"UÌŠ\",\n \"Å°\": \"UÌ‹\",\n \"á¹¼\": \"Ṽ\",\n \"Ẃ\": \"WÌ\",\n \"Ẁ\": \"WÌ€\",\n \"Ẅ\": \"Ẅ\",\n \"Å´\": \"WÌ‚\",\n \"Ẇ\": \"Ẇ\",\n \"Ẍ\": \"Ẍ\",\n \"Ẋ\": \"Ẋ\",\n \"Ã\": \"YÌ\",\n \"Ỳ\": \"YÌ€\",\n \"Ÿ\": \"Ÿ\",\n \"Ỹ\": \"Ỹ\",\n \"Ȳ\": \"YÌ„\",\n \"Ŷ\": \"YÌ‚\",\n \"Ẏ\": \"Ẏ\",\n \"Ź\": \"ZÌ\",\n \"Ž\": \"ZÌŒ\",\n \"áº\": \"ZÌ‚\",\n \"Å»\": \"Ż\",\n \"ά\": \"αÌ\",\n \"á½°\": \"ὰ\",\n \"á¾±\": \"ᾱ\",\n \"á¾°\": \"ᾰ\",\n \"Î\": \"εÌ\",\n \"á½²\": \"ὲ\",\n \"ή\": \"ηÌ\",\n \"á½´\": \"ὴ\",\n \"ί\": \"ιÌ\",\n \"ὶ\": \"ὶ\",\n \"ÏŠ\": \"ϊ\",\n \"Î\": \"ϊÌ\",\n \"á¿’\": \"ῒ\",\n \"á¿‘\": \"ῑ\",\n \"á¿\": \"ῐ\",\n \"ÏŒ\": \"οÌ\",\n \"ὸ\": \"ὸ\",\n \"Ï\": \"Ï…Ì\",\n \"ὺ\": \"Ï…Ì€\",\n \"Ï‹\": \"ϋ\",\n \"ΰ\": \"ϋÌ\",\n \"á¿¢\": \"ῢ\",\n \"á¿¡\": \"Ï…Ì„\",\n \"á¿ \": \"ῠ\",\n \"ÏŽ\": \"ωÌ\",\n \"á½¼\": \"ὼ\",\n \"ÎŽ\": \"Î¥Ì\",\n \"Ὺ\": \"Ὺ\",\n \"Ϋ\": \"Ϋ\",\n \"á¿©\": \"Ῡ\",\n \"Ῠ\": \"Ῠ\",\n \"Î\": \"ΩÌ\",\n \"Ὼ\": \"Ὼ\"\n};\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.gullet.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The functions return ParseNodes.\n */\nclass Parser {\n constructor(input, settings) {\n this.mode = void 0;\n this.gullet = void 0;\n this.settings = void 0;\n this.leftrightDepth = void 0;\n this.nextToken = void 0;\n // Start in math mode\n this.mode = \"math\"; // Create a new macro expander (gullet) and (indirectly via that) also a\n // new lexer (mouth) for this parser (stomach, in the language of TeX)\n\n this.gullet = new MacroExpander(input, settings, this.mode); // Store the settings for use in parsing\n\n this.settings = settings; // Count leftright depth (for \\middle errors)\n\n this.leftrightDepth = 0;\n }\n /**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n */\n\n\n expect(text, consume) {\n if (consume === void 0) {\n consume = true;\n }\n\n if (this.fetch().text !== text) {\n throw new ParseError(\"Expected '\" + text + \"', got '\" + this.fetch().text + \"'\", this.fetch());\n }\n\n if (consume) {\n this.consume();\n }\n }\n /**\n * Discards the current lookahead token, considering it consumed.\n */\n\n\n consume() {\n this.nextToken = null;\n }\n /**\n * Return the current lookahead token, or if there isn't one (at the\n * beginning, or if the previous lookahead token was consume()d),\n * fetch the next token as the new lookahead token and return it.\n */\n\n\n fetch() {\n if (this.nextToken == null) {\n this.nextToken = this.gullet.expandNextToken();\n }\n\n return this.nextToken;\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n\n\n switchMode(newMode) {\n this.mode = newMode;\n this.gullet.switchMode(newMode);\n }\n /**\n * Main parsing function, which parses an entire input.\n */\n\n\n parse() {\n if (!this.settings.globalGroup) {\n // Create a group namespace for the math expression.\n // (LaTeX creates a new group for every $...$, $$...$$, \\[...\\].)\n this.gullet.beginGroup();\n } // Use old \\color behavior (same as LaTeX's \\textcolor) if requested.\n // We do this within the group for the math expression, so it doesn't\n // pollute settings.macros.\n\n\n if (this.settings.colorIsTextColor) {\n this.gullet.macros.set(\"\\\\color\", \"\\\\textcolor\");\n }\n\n try {\n // Try to parse the input\n var parse = this.parseExpression(false); // If we succeeded, make sure there's an EOF at the end\n\n this.expect(\"EOF\"); // End the group namespace for the expression\n\n if (!this.settings.globalGroup) {\n this.gullet.endGroup();\n }\n\n return parse; // Close any leftover groups in case of a parse error.\n } finally {\n this.gullet.endGroups();\n }\n }\n /**\n * Fully parse a separate sequence of tokens as a separate job.\n * Tokens should be specified in reverse order, as in a MacroDefinition.\n */\n\n\n subparse(tokens) {\n // Save the next token from the current job.\n var oldToken = this.nextToken;\n this.consume(); // Run the new job, terminating it with an excess '}'\n\n this.gullet.pushToken(new Token(\"}\"));\n this.gullet.pushTokens(tokens);\n var parse = this.parseExpression(false);\n this.expect(\"}\"); // Restore the next token from the current job.\n\n this.nextToken = oldToken;\n return parse;\n }\n\n /**\n * Parses an \"expression\", which is a list of atoms.\n *\n * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This\n * happens when functions have higher precedence han infix\n * nodes in implicit parses.\n *\n * `breakOnTokenText`: The text of the token that the expression should end\n * with, or `null` if something else should end the\n * expression.\n */\n parseExpression(breakOnInfix, breakOnTokenText) {\n var body = []; // Keep adding atoms to the body until we can't parse any more atoms (either\n // we reached the end, a }, or a \\right)\n\n while (true) {\n // Ignore spaces in math mode\n if (this.mode === \"math\") {\n this.consumeSpaces();\n }\n\n var lex = this.fetch();\n\n if (Parser.endOfExpression.indexOf(lex.text) !== -1) {\n break;\n }\n\n if (breakOnTokenText && lex.text === breakOnTokenText) {\n break;\n }\n\n if (breakOnInfix && functions[lex.text] && functions[lex.text].infix) {\n break;\n }\n\n var atom = this.parseAtom(breakOnTokenText);\n\n if (!atom) {\n break;\n } else if (atom.type === \"internal\") {\n continue;\n }\n\n body.push(atom);\n }\n\n if (this.mode === \"text\") {\n this.formLigatures(body);\n }\n\n return this.handleInfixNodes(body);\n }\n /**\n * Rewrites infix operators such as \\over with corresponding commands such\n * as \\frac.\n *\n * There can only be one infix operator per group. If there's more than one\n * then the expression is ambiguous. This can be resolved by adding {}.\n */\n\n\n handleInfixNodes(body) {\n var overIndex = -1;\n var funcName;\n\n for (var i = 0; i < body.length; i++) {\n if (body[i].type === \"infix\") {\n if (overIndex !== -1) {\n throw new ParseError(\"only one infix operator per group\", body[i].token);\n }\n\n overIndex = i;\n funcName = body[i].replaceWith;\n }\n }\n\n if (overIndex !== -1 && funcName) {\n var numerNode;\n var denomNode;\n var numerBody = body.slice(0, overIndex);\n var denomBody = body.slice(overIndex + 1);\n\n if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n numerNode = numerBody[0];\n } else {\n numerNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: numerBody\n };\n }\n\n if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n denomNode = denomBody[0];\n } else {\n denomNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: denomBody\n };\n }\n\n var node;\n\n if (funcName === \"\\\\\\\\abovefrac\") {\n node = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []);\n } else {\n node = this.callFunction(funcName, [numerNode, denomNode], []);\n }\n\n return [node];\n } else {\n return body;\n }\n }\n /**\n * Handle a subscript or superscript with nice errors.\n */\n\n\n handleSupSubscript(name // For error reporting.\n ) {\n var symbolToken = this.fetch();\n var symbol = symbolToken.text;\n this.consume();\n this.consumeSpaces(); // ignore spaces before sup/subscript argument\n\n var group = this.parseGroup(name);\n\n if (!group) {\n throw new ParseError(\"Expected group after '\" + symbol + \"'\", symbolToken);\n }\n\n return group;\n }\n /**\n * Converts the textual input of an unsupported command into a text node\n * contained within a color node whose color is determined by errorColor\n */\n\n\n formatUnsupportedCmd(text) {\n var textordArray = [];\n\n for (var i = 0; i < text.length; i++) {\n textordArray.push({\n type: \"textord\",\n mode: \"text\",\n text: text[i]\n });\n }\n\n var textNode = {\n type: \"text\",\n mode: this.mode,\n body: textordArray\n };\n var colorNode = {\n type: \"color\",\n mode: this.mode,\n color: this.settings.errorColor,\n body: [textNode]\n };\n return colorNode;\n }\n /**\n * Parses a group with optional super/subscripts.\n */\n\n\n parseAtom(breakOnTokenText) {\n // The body of an atom is an implicit group, so that things like\n // \\left(x\\right)^2 work correctly.\n var base = this.parseGroup(\"atom\", breakOnTokenText); // In text mode, we don't have superscripts or subscripts\n\n if (this.mode === \"text\") {\n return base;\n } // Note that base may be empty (i.e. null) at this point.\n\n\n var superscript;\n var subscript;\n\n while (true) {\n // Guaranteed in math mode, so eat any spaces first.\n this.consumeSpaces(); // Lex the first token\n\n var lex = this.fetch();\n\n if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n // We got a limit control\n if (base && base.type === \"op\") {\n var limits = lex.text === \"\\\\limits\";\n base.limits = limits;\n base.alwaysHandleSupSub = true;\n } else if (base && base.type === \"operatorname\") {\n if (base.alwaysHandleSupSub) {\n base.limits = lex.text === \"\\\\limits\";\n }\n } else {\n throw new ParseError(\"Limit controls must follow a math operator\", lex);\n }\n\n this.consume();\n } else if (lex.text === \"^\") {\n // We got a superscript start\n if (superscript) {\n throw new ParseError(\"Double superscript\", lex);\n }\n\n superscript = this.handleSupSubscript(\"superscript\");\n } else if (lex.text === \"_\") {\n // We got a subscript start\n if (subscript) {\n throw new ParseError(\"Double subscript\", lex);\n }\n\n subscript = this.handleSupSubscript(\"subscript\");\n } else if (lex.text === \"'\") {\n // We got a prime\n if (superscript) {\n throw new ParseError(\"Double superscript\", lex);\n }\n\n var prime = {\n type: \"textord\",\n mode: this.mode,\n text: \"\\\\prime\"\n }; // Many primes can be grouped together, so we handle this here\n\n var primes = [prime];\n this.consume(); // Keep lexing tokens until we get something that's not a prime\n\n while (this.fetch().text === \"'\") {\n // For each one, add another prime to the list\n primes.push(prime);\n this.consume();\n } // If there's a superscript following the primes, combine that\n // superscript in with the primes.\n\n\n if (this.fetch().text === \"^\") {\n primes.push(this.handleSupSubscript(\"superscript\"));\n } // Put everything into an ordgroup as the superscript\n\n\n superscript = {\n type: \"ordgroup\",\n mode: this.mode,\n body: primes\n };\n } else if (uSubsAndSups[lex.text]) {\n // A Unicode subscript or superscript character.\n // We treat these similarly to the unicode-math package.\n // So we render a string of Unicode (sub|super)scripts the\n // same as a (sub|super)script of regular characters.\n var isSub = unicodeSubRegEx.test(lex.text);\n var subsupTokens = [];\n subsupTokens.push(new Token(uSubsAndSups[lex.text]));\n this.consume(); // Continue fetching tokens to fill out the string.\n\n while (true) {\n var token = this.fetch().text;\n\n if (!uSubsAndSups[token]) {\n break;\n }\n\n if (unicodeSubRegEx.test(token) !== isSub) {\n break;\n }\n\n subsupTokens.unshift(new Token(uSubsAndSups[token]));\n this.consume();\n } // Now create a (sub|super)script.\n\n\n var body = this.subparse(subsupTokens);\n\n if (isSub) {\n subscript = {\n type: \"ordgroup\",\n mode: \"math\",\n body\n };\n } else {\n superscript = {\n type: \"ordgroup\",\n mode: \"math\",\n body\n };\n }\n } else {\n // If it wasn't ^, _, or ', stop parsing super/subscripts\n break;\n }\n } // Base must be set if superscript or subscript are set per logic above,\n // but need to check here for type check to pass.\n\n\n if (superscript || subscript) {\n // If we got either a superscript or subscript, create a supsub\n return {\n type: \"supsub\",\n mode: this.mode,\n base: base,\n sup: superscript,\n sub: subscript\n };\n } else {\n // Otherwise return the original body\n return base;\n }\n }\n /**\n * Parses an entire function, including its base and all of its arguments.\n */\n\n\n parseFunction(breakOnTokenText, name // For determining its context\n ) {\n var token = this.fetch();\n var func = token.text;\n var funcData = functions[func];\n\n if (!funcData) {\n return null;\n }\n\n this.consume(); // consume command token\n\n if (name && name !== \"atom\" && !funcData.allowedInArgument) {\n throw new ParseError(\"Got function '\" + func + \"' with no arguments\" + (name ? \" as \" + name : \"\"), token);\n } else if (this.mode === \"text\" && !funcData.allowedInText) {\n throw new ParseError(\"Can't use function '\" + func + \"' in text mode\", token);\n } else if (this.mode === \"math\" && funcData.allowedInMath === false) {\n throw new ParseError(\"Can't use function '\" + func + \"' in math mode\", token);\n }\n\n var {\n args,\n optArgs\n } = this.parseArguments(func, funcData);\n return this.callFunction(func, args, optArgs, token, breakOnTokenText);\n }\n /**\n * Call a function handler with a suitable context and arguments.\n */\n\n\n callFunction(name, args, optArgs, token, breakOnTokenText) {\n var context = {\n funcName: name,\n parser: this,\n token,\n breakOnTokenText\n };\n var func = functions[name];\n\n if (func && func.handler) {\n return func.handler(context, args, optArgs);\n } else {\n throw new ParseError(\"No function handler for \" + name);\n }\n }\n /**\n * Parses the arguments of a function or environment\n */\n\n\n parseArguments(func, // Should look like \"\\name\" or \"\\begin{name}\".\n funcData) {\n var totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n\n if (totalArgs === 0) {\n return {\n args: [],\n optArgs: []\n };\n }\n\n var args = [];\n var optArgs = [];\n\n for (var i = 0; i < totalArgs; i++) {\n var argType = funcData.argTypes && funcData.argTypes[i];\n var isOptional = i < funcData.numOptionalArgs;\n\n if (funcData.primitive && argType == null || // \\sqrt expands into primitive if optional argument doesn't exist\n funcData.type === \"sqrt\" && i === 1 && optArgs[0] == null) {\n argType = \"primitive\";\n }\n\n var arg = this.parseGroupOfType(\"argument to '\" + func + \"'\", argType, isOptional);\n\n if (isOptional) {\n optArgs.push(arg);\n } else if (arg != null) {\n args.push(arg);\n } else {\n // should be unreachable\n throw new ParseError(\"Null argument, please report this as a bug\");\n }\n }\n\n return {\n args,\n optArgs\n };\n }\n /**\n * Parses a group when the mode is changing.\n */\n\n\n parseGroupOfType(name, type, optional) {\n switch (type) {\n case \"color\":\n return this.parseColorGroup(optional);\n\n case \"size\":\n return this.parseSizeGroup(optional);\n\n case \"url\":\n return this.parseUrlGroup(optional);\n\n case \"math\":\n case \"text\":\n return this.parseArgumentGroup(optional, type);\n\n case \"hbox\":\n {\n // hbox argument type wraps the argument in the equivalent of\n // \\hbox, which is like \\text but switching to \\textstyle size.\n var group = this.parseArgumentGroup(optional, \"text\");\n return group != null ? {\n type: \"styling\",\n mode: group.mode,\n body: [group],\n style: \"text\" // simulate \\textstyle\n\n } : null;\n }\n\n case \"raw\":\n {\n var token = this.parseStringGroup(\"raw\", optional);\n return token != null ? {\n type: \"raw\",\n mode: \"text\",\n string: token.text\n } : null;\n }\n\n case \"primitive\":\n {\n if (optional) {\n throw new ParseError(\"A primitive argument cannot be optional\");\n }\n\n var _group = this.parseGroup(name);\n\n if (_group == null) {\n throw new ParseError(\"Expected group as \" + name, this.fetch());\n }\n\n return _group;\n }\n\n case \"original\":\n case null:\n case undefined:\n return this.parseArgumentGroup(optional);\n\n default:\n throw new ParseError(\"Unknown group type as \" + name, this.fetch());\n }\n }\n /**\n * Discard any space tokens, fetching the next non-space token.\n */\n\n\n consumeSpaces() {\n while (this.fetch().text === \" \") {\n this.consume();\n }\n }\n /**\n * Parses a group, essentially returning the string formed by the\n * brace-enclosed tokens plus some position information.\n */\n\n\n parseStringGroup(modeName, // Used to describe the mode in error messages.\n optional) {\n var argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n var str = \"\";\n var nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\") {\n str += nextToken.text;\n this.consume();\n }\n\n this.consume(); // consume the end of the argument\n\n argToken.text = str;\n return argToken;\n }\n /**\n * Parses a regex-delimited group: the largest sequence of tokens\n * whose concatenated strings match `regex`. Returns the string\n * formed by the tokens plus some position information.\n */\n\n\n parseRegexGroup(regex, modeName // Used to describe the mode in error messages.\n ) {\n var firstToken = this.fetch();\n var lastToken = firstToken;\n var str = \"\";\n var nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\" && regex.test(str + nextToken.text)) {\n lastToken = nextToken;\n str += lastToken.text;\n this.consume();\n }\n\n if (str === \"\") {\n throw new ParseError(\"Invalid \" + modeName + \": '\" + firstToken.text + \"'\", firstToken);\n }\n\n return firstToken.range(lastToken, str);\n }\n /**\n * Parses a color description.\n */\n\n\n parseColorGroup(optional) {\n var res = this.parseStringGroup(\"color\", optional);\n\n if (res == null) {\n return null;\n }\n\n var match = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);\n\n if (!match) {\n throw new ParseError(\"Invalid color: '\" + res.text + \"'\", res);\n }\n\n var color = match[0];\n\n if (/^[0-9a-f]{6}$/i.test(color)) {\n // We allow a 6-digit HTML color spec without a leading \"#\".\n // This follows the xcolor package's HTML color model.\n // Predefined color names are all missed by this RegEx pattern.\n color = \"#\" + color;\n }\n\n return {\n type: \"color-token\",\n mode: this.mode,\n color\n };\n }\n /**\n * Parses a size specification, consisting of magnitude and unit.\n */\n\n\n parseSizeGroup(optional) {\n var res;\n var isBlank = false; // don't expand before parseStringGroup\n\n this.gullet.consumeSpaces();\n\n if (!optional && this.gullet.future().text !== \"{\") {\n res = this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2} *$/, \"size\");\n } else {\n res = this.parseStringGroup(\"size\", optional);\n }\n\n if (!res) {\n return null;\n }\n\n if (!optional && res.text.length === 0) {\n // Because we've tested for what is !optional, this block won't\n // affect \\kern, \\hspace, etc. It will capture the mandatory arguments\n // to \\genfrac and \\above.\n res.text = \"0pt\"; // Enable \\above{}\n\n isBlank = true; // This is here specifically for \\genfrac\n }\n\n var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(res.text);\n\n if (!match) {\n throw new ParseError(\"Invalid size: '\" + res.text + \"'\", res);\n }\n\n var data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new ParseError(\"Invalid unit: '\" + data.unit + \"'\", res);\n }\n\n return {\n type: \"size\",\n mode: this.mode,\n value: data,\n isBlank\n };\n }\n /**\n * Parses an URL, checking escaped letters and allowed protocols,\n * and setting the catcode of % as an active character (as in \\hyperref).\n */\n\n\n parseUrlGroup(optional) {\n this.gullet.lexer.setCatcode(\"%\", 13); // active character\n\n this.gullet.lexer.setCatcode(\"~\", 12); // other character\n\n var res = this.parseStringGroup(\"url\", optional);\n this.gullet.lexer.setCatcode(\"%\", 14); // comment character\n\n this.gullet.lexer.setCatcode(\"~\", 13); // active character\n\n if (res == null) {\n return null;\n } // hyperref package allows backslashes alone in href, but doesn't\n // generate valid links in such cases; we interpret this as\n // \"undefined\" behaviour, and keep them as-is. Some browser will\n // replace backslashes with forward slashes.\n\n\n var url = res.text.replace(/\\\\([#$%&~_^{}])/g, '$1');\n return {\n type: \"url\",\n mode: this.mode,\n url\n };\n }\n /**\n * Parses an argument with the mode specified.\n */\n\n\n parseArgumentGroup(optional, mode) {\n var argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n var outerMode = this.mode;\n\n if (mode) {\n // Switch to specified mode\n this.switchMode(mode);\n }\n\n this.gullet.beginGroup();\n var expression = this.parseExpression(false, \"EOF\"); // TODO: find an alternative way to denote the end\n\n this.expect(\"EOF\"); // expect the end of the argument\n\n this.gullet.endGroup();\n var result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: argToken.loc,\n body: expression\n };\n\n if (mode) {\n // Switch mode back\n this.switchMode(outerMode);\n }\n\n return result;\n }\n /**\n * Parses an ordinary group, which is either a single nucleus (like \"x\")\n * or an expression in braces (like \"{x+y}\") or an implicit group, a group\n * that starts at the current position, and ends right before a higher explicit\n * group ends, or at EOF.\n */\n\n\n parseGroup(name, // For error reporting.\n breakOnTokenText) {\n var firstToken = this.fetch();\n var text = firstToken.text;\n var result; // Try to parse an open brace or \\begingroup\n\n if (text === \"{\" || text === \"\\\\begingroup\") {\n this.consume();\n var groupEnd = text === \"{\" ? \"}\" : \"\\\\endgroup\";\n this.gullet.beginGroup(); // If we get a brace, parse an expression\n\n var expression = this.parseExpression(false, groupEnd);\n var lastToken = this.fetch();\n this.expect(groupEnd); // Check that we got a matching closing brace\n\n this.gullet.endGroup();\n result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: SourceLocation.range(firstToken, lastToken),\n body: expression,\n // A group formed by \\begingroup...\\endgroup is a semi-simple group\n // which doesn't affect spacing in math mode, i.e., is transparent.\n // https://tex.stackexchange.com/questions/1930/when-should-one-\n // use-begingroup-instead-of-bgroup\n semisimple: text === \"\\\\begingroup\" || undefined\n };\n } else {\n // If there exists a function with this name, parse the function.\n // Otherwise, just return a nucleus\n result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();\n\n if (result == null && text[0] === \"\\\\\" && !implicitCommands.hasOwnProperty(text)) {\n if (this.settings.throwOnError) {\n throw new ParseError(\"Undefined control sequence: \" + text, firstToken);\n }\n\n result = this.formatUnsupportedCmd(text);\n this.consume();\n }\n }\n\n return result;\n }\n /**\n * Form ligature-like combinations of characters for text mode.\n * This includes inputs like \"--\", \"---\", \"``\" and \"''\".\n * The result will simply replace multiple textord nodes with a single\n * character in each value by a single textord node having multiple\n * characters in its value. The representation is still ASCII source.\n * The group will be modified in place.\n */\n\n\n formLigatures(group) {\n var n = group.length - 1;\n\n for (var i = 0; i < n; ++i) {\n var a = group[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n var v = a.text;\n\n if (v === \"-\" && group[i + 1].text === \"-\") {\n if (i + 1 < n && group[i + 2].text === \"-\") {\n group.splice(i, 3, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 2]),\n text: \"---\"\n });\n n -= 2;\n } else {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: \"--\"\n });\n n -= 1;\n }\n }\n\n if ((v === \"'\" || v === \"`\") && group[i + 1].text === v) {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: v + v\n });\n n -= 1;\n }\n }\n }\n /**\n * Parse a single symbol out of the string. Here, we handle single character\n * symbols and special functions like \\verb.\n */\n\n\n parseSymbol() {\n var nucleus = this.fetch();\n var text = nucleus.text;\n\n if (/^\\\\verb[^a-zA-Z]/.test(text)) {\n this.consume();\n var arg = text.slice(5);\n var star = arg.charAt(0) === \"*\";\n\n if (star) {\n arg = arg.slice(1);\n } // Lexer's tokenRegex is constructed to always have matching\n // first/last characters.\n\n\n if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {\n throw new ParseError(\"\\\\verb assertion failed --\\n please report what input caused this bug\");\n }\n\n arg = arg.slice(1, -1); // remove first and last char\n\n return {\n type: \"verb\",\n mode: \"text\",\n body: arg,\n star\n };\n } // At this point, we should have a symbol, possibly with accents.\n // First expand any accented base symbol according to unicodeSymbols.\n\n\n if (unicodeSymbols.hasOwnProperty(text[0]) && !symbols[this.mode][text[0]]) {\n // This behavior is not strict (XeTeX-compatible) in math mode.\n if (this.settings.strict && this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Accented Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n text = unicodeSymbols[text[0]] + text.slice(1);\n } // Strip off any combining characters\n\n\n var match = combiningDiacriticalMarksEndRegex.exec(text);\n\n if (match) {\n text = text.substring(0, match.index);\n\n if (text === 'i') {\n text = '\\u0131'; // dotless i, in math and text mode\n } else if (text === 'j') {\n text = '\\u0237'; // dotless j, in math and text mode\n }\n } // Recognize base symbol\n\n\n var symbol;\n\n if (symbols[this.mode][text]) {\n if (this.settings.strict && this.mode === 'math' && extraLatin.indexOf(text) >= 0) {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Latin-1/Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n var group = symbols[this.mode][text].group;\n var loc = SourceLocation.range(nucleus);\n var s;\n\n if (ATOMS.hasOwnProperty(group)) {\n // $FlowFixMe\n var family = group;\n s = {\n type: \"atom\",\n mode: this.mode,\n family,\n loc,\n text\n };\n } else {\n // $FlowFixMe\n s = {\n type: group,\n mode: this.mode,\n loc,\n text\n };\n } // $FlowFixMe\n\n\n symbol = s;\n } else if (text.charCodeAt(0) >= 0x80) {\n // no symbol for e.g. ^\n if (this.settings.strict) {\n if (!supportedCodepoint(text.charCodeAt(0))) {\n this.settings.reportNonstrict(\"unknownSymbol\", \"Unrecognized Unicode character \\\"\" + text[0] + \"\\\"\" + (\" (\" + text.charCodeAt(0) + \")\"), nucleus);\n } else if (this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Unicode text character \\\"\" + text[0] + \"\\\" used in math mode\", nucleus);\n }\n } // All nonmathematical Unicode characters are rendered as if they\n // are in text mode (wrapped in \\text) because that's what it\n // takes to render them in LaTeX. Setting `mode: this.mode` is\n // another natural choice (the user requested math mode), but\n // this makes it more difficult for getCharacterMetrics() to\n // distinguish Unicode characters without metrics and those for\n // which we want to simulate the letter M.\n\n\n symbol = {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(nucleus),\n text\n };\n } else {\n return null; // EOF, ^, _, {, }, etc.\n }\n\n this.consume(); // Transform combining characters into accents\n\n if (match) {\n for (var i = 0; i < match[0].length; i++) {\n var accent = match[0][i];\n\n if (!unicodeAccents[accent]) {\n throw new ParseError(\"Unknown accent ' \" + accent + \"'\", nucleus);\n }\n\n var command = unicodeAccents[accent][this.mode] || unicodeAccents[accent].text;\n\n if (!command) {\n throw new ParseError(\"Accent \" + accent + \" unsupported in \" + this.mode + \" mode\", nucleus);\n }\n\n symbol = {\n type: \"accent\",\n mode: this.mode,\n loc: SourceLocation.range(nucleus),\n label: command,\n isStretchy: false,\n isShifty: true,\n // $FlowFixMe\n base: symbol\n };\n }\n } // $FlowFixMe\n\n\n return symbol;\n }\n\n}\nParser.endOfExpression = [\"}\", \"\\\\endgroup\", \"\\\\end\", \"\\\\right\", \"&\"];\n\n/**\n * Provides a single function for parsing an expression using a Parser\n * TODO(emily): Remove this\n */\n\n/**\n * Parses an expression using a Parser, then returns the parsed result.\n */\nvar parseTree = function parseTree(toParse, settings) {\n if (!(typeof toParse === 'string' || toParse instanceof String)) {\n throw new TypeError('KaTeX can only parse string typed expression');\n }\n\n var parser = new Parser(toParse, settings); // Blank out any \\df@tag to avoid spurious \"Duplicate \\tag\" errors\n\n delete parser.gullet.macros.current[\"\\\\df@tag\"];\n var tree = parser.parse(); // Prevent a color definition from persisting between calls to katex.render().\n\n delete parser.gullet.macros.current[\"\\\\current@color\"];\n delete parser.gullet.macros.current[\"\\\\color\"]; // If the input used \\tag, it will set the \\df@tag macro to the tag.\n // In this case, we separately parse the tag and wrap the tree.\n\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n if (!settings.displayMode) {\n throw new ParseError(\"\\\\tag works only in display equations\");\n }\n\n tree = [{\n type: \"tag\",\n mode: \"text\",\n body: tree,\n tag: parser.subparse([new Token(\"\\\\df@tag\")])\n }];\n }\n\n return tree;\n};\n\n/* eslint no-console:0 */\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function render(expression, baseNode, options) {\n baseNode.textContent = \"\";\n var node = renderToDomTree(expression, options).toNode();\n baseNode.appendChild(node);\n}; // KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\n\n\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \" + \"website has a suitable doctype.\");\n\n render = function render() {\n throw new ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n/**\n * Parse and build an expression, and return the markup for that.\n */\n\n\nvar renderToString = function renderToString(expression, options) {\n var markup = renderToDomTree(expression, options).toMarkup();\n return markup;\n};\n/**\n * Parse an expression and return the parse tree.\n */\n\n\nvar generateParseTree = function generateParseTree(expression, options) {\n var settings = new Settings(options);\n return parseTree(expression, settings);\n};\n/**\n * If the given error is a KaTeX ParseError and options.throwOnError is false,\n * renders the invalid LaTeX as a span with hover title giving the KaTeX\n * error message. Otherwise, simply throws the error.\n */\n\n\nvar renderError = function renderError(error, expression, options) {\n if (options.throwOnError || !(error instanceof ParseError)) {\n throw error;\n }\n\n var node = buildCommon.makeSpan([\"katex-error\"], [new SymbolNode(expression)]);\n node.setAttribute(\"title\", error.toString());\n node.setAttribute(\"style\", \"color:\" + options.errorColor);\n return node;\n};\n/**\n * Generates and returns the katex build tree. This is used for advanced\n * use cases (like rendering to custom output).\n */\n\n\nvar renderToDomTree = function renderToDomTree(expression, options) {\n var settings = new Settings(options);\n\n try {\n var tree = parseTree(expression, settings);\n return buildTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n/**\n * Generates and returns the katex build tree, with just HTML (no MathML).\n * This is used for advanced use cases (like rendering to custom output).\n */\n\n\nvar renderToHTMLTree = function renderToHTMLTree(expression, options) {\n var settings = new Settings(options);\n\n try {\n var tree = parseTree(expression, settings);\n return buildHTMLTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n\nvar katex = {\n /**\n * Current KaTeX version\n */\n version: \"0.16.10\",\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination, and adds\n * it as a child to the specified DOM node.\n */\n render,\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination string,\n * for sending to the client.\n */\n renderToString,\n\n /**\n * KaTeX error, usually during parsing.\n */\n ParseError,\n\n /**\n * The shema of Settings\n */\n SETTINGS_SCHEMA,\n\n /**\n * Parses the given LaTeX into KaTeX's internal parse tree structure,\n * without rendering to HTML or MathML.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n\n /**\n * Renders the given LaTeX into an HTML+MathML internal DOM tree\n * representation, without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToDomTree: renderToDomTree,\n\n /**\n * Renders the given LaTeX into an HTML internal DOM tree representation,\n * without MathML and without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToHTMLTree: renderToHTMLTree,\n\n /**\n * extends internal font metrics object with a new object\n * each key in the new object represents a font name\n */\n __setFontMetrics: setFontMetrics,\n\n /**\n * adds a new symbol to builtin symbols table\n */\n __defineSymbol: defineSymbol,\n\n /**\n * adds a new function to builtin function list,\n * which directly produce parse tree elements\n * and have their own html/mathml builders\n */\n __defineFunction: defineFunction,\n\n /**\n * adds a new macro to builtin macro list\n */\n __defineMacro: defineMacro,\n\n /**\n * Expose the dom tree node types, which can be useful for type checking nodes.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __domTree: {\n Span,\n Anchor,\n SymbolNode,\n SvgNode,\n PathNode,\n LineNode\n }\n};\n\nexport { katex as default };\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('katex').KatexOptions} KatexOptions\n *\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit<KatexOptions, 'displayMode' | 'throwOnError'>} Options\n */\n\nimport {fromHtmlIsomorphic} from 'hast-util-from-html-isomorphic'\nimport {toText} from 'hast-util-to-text'\nimport katex from 'katex'\nimport {SKIP, visitParents} from 'unist-util-visit-parents'\n\n/** @type {Readonly<Options>} */\nconst emptyOptions = {}\n/** @type {ReadonlyArray<unknown>} */\nconst emptyClasses = []\n\n/**\n * Render elements with a `language-math` (or `math-display`, `math-inline`)\n * class with KaTeX.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeKatex(options) {\n const settings = options || emptyOptions\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree, file) {\n visitParents(tree, 'element', function (element, parents) {\n const classes = Array.isArray(element.properties.className)\n ? element.properties.className\n : emptyClasses\n // This class can be generated from markdown with ` ```math `.\n const languageMath = classes.includes('language-math')\n // This class is used by `remark-math` for flow math (block, `$$\\nmath\\n$$`).\n const mathDisplay = classes.includes('math-display')\n // This class is used by `remark-math` for text math (inline, `$math$`).\n const mathInline = classes.includes('math-inline')\n let displayMode = mathDisplay\n\n // Any class is fine.\n if (!languageMath && !mathDisplay && !mathInline) {\n return\n }\n\n let parent = parents[parents.length - 1]\n let scope = element\n\n // If this was generated with ` ```math `, replace the `<pre>` and use\n // display.\n if (\n element.tagName === 'code' &&\n languageMath &&\n parent &&\n parent.type === 'element' &&\n parent.tagName === 'pre'\n ) {\n scope = parent\n parent = parents[parents.length - 2]\n displayMode = true\n }\n\n /* c8 ignore next -- verbose to test. */\n if (!parent) return\n\n const value = toText(scope, {whitespace: 'pre'})\n\n /** @type {Array<ElementContent> | string | undefined} */\n let result\n\n try {\n result = katex.renderToString(value, {\n ...settings,\n displayMode,\n throwOnError: true\n })\n } catch (error) {\n const cause = /** @type {Error} */ (error)\n const ruleId = cause.name.toLowerCase()\n\n file.message('Could not render math with KaTeX', {\n ancestors: [...parents, element],\n cause,\n place: element.position,\n ruleId,\n source: 'rehype-katex'\n })\n\n // KaTeX can handle `ParseError` itself, but not others.\n if (ruleId === 'parseerror') {\n result = katex.renderToString(value, {\n ...settings,\n displayMode,\n strict: 'ignore',\n throwOnError: false\n })\n }\n // Generate similar markup if this is an other error.\n // See: <https://github.com/KaTeX/KaTeX/blob/5dc7af0/docs/error.md>.\n else {\n result = [\n {\n type: 'element',\n tagName: 'span',\n properties: {\n className: ['katex-error'],\n style: 'color:' + (settings.errorColor || '#cc0000'),\n title: String(error)\n },\n children: [{type: 'text', value}]\n }\n ]\n }\n }\n\n if (typeof result === 'string') {\n const root = fromHtmlIsomorphic(result, {fragment: true})\n // Cast as we don’t expect `doctypes` in KaTeX result.\n result = /** @type {Array<ElementContent>} */ (root.children)\n }\n\n const index = parent.children.indexOf(scope)\n parent.children.splice(index, 1, ...result)\n return SKIP\n })\n }\n}\n","import { visit } from 'unist-util-visit';\nconst rehypeIgnore = (options = {}) => {\n const { openDelimiter = 'rehype:ignore:start', closeDelimiter = 'rehype:ignore:end' } = options;\n return (tree) => {\n visit(tree, (node, index, parent) => {\n if (node.type === 'element' || node.type === 'root') {\n // const start = node.children.findIndex((item) => item.type === 'comment' && item.value === openDelimiter);\n // const end = node.children.findIndex((item) => item.type === 'comment' && item.value === closeDelimiter);\n // if (start > -1 && end > -1) {\n // node.children = node.children.filter((_, idx) => idx < start || idx > end);\n // }\n let start = false;\n node.children = node.children.filter((item) => {\n if (item.type === 'raw' || item.type === 'comment') {\n let str = (item.value || '').trim();\n str = str.replace(/^<!--(.*?)-->/, '$1');\n if (str === openDelimiter) {\n start = true;\n return false;\n }\n if (str === closeDelimiter) {\n start = false;\n return false;\n }\n }\n return !start;\n });\n }\n });\n };\n};\nexport default rehypeIgnore;\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('vfile').Value} Value\n * @typedef {import('unist').Point} UnistPoint\n */\n\n/**\n *\n * @typedef PointLike\n * unist point, allowed as input.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @callback ToPoint\n * Get the line/column based `Point` for `offset` in the bound indices.\n *\n * Returns `undefined` when given out of bounds input.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n * @param {number | null | undefined} [offset]\n * Something that should be an `offset.\n * @returns {UnistPoint | undefined}\n * Point, if `offset` is valid and in-bounds input.\n *\n * @callback ToOffset\n * Get the `offset` from a line/column based `Point` in the bound indices.\n * @param {PointLike | null | undefined} [point]\n * Something that should be a `point.\n * @returns {number | undefined}\n * Offset (`number`) or `undefined` for invalid or out of bounds input.\n *\n * @typedef Location\n * Accessors for index.\n * @property {ToPoint} toPoint\n * Get the line/column based `Point` for `offset` in the bound indices.\n * @property {ToOffset} toOffset\n * Get the `offset` from a line/column based `Point` in the bound indices.\n */\n\nconst search = /\\r?\\n|\\r/g\n\n/**\n * Create an index of the given document to translate between line/column and\n * offset based positional info.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /**\n * List, where each index is a line number (0-based), and each value is the\n * byte index *after* where the line ends.\n *\n * @type {Array<number>}\n */\n const indices = []\n\n search.lastIndex = 0\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /** @type {ToPoint} */\n function toPoint(offset) {\n let index = -1\n\n if (\n typeof offset === 'number' &&\n offset > -1 &&\n offset < indices[indices.length - 1]\n ) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n }\n }\n }\n\n /** @type {ToOffset} */\n function toOffset(point) {\n const line = point && point.line\n const column = point && point.column\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n const offset = (indices[line - 2] || 0) + column - 1 || 0\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n return offset\n }\n }\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementData} ElementData\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').Token.ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Token.Location} P5Location\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n *\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5DocumentFragment\n * @typedef {DefaultTreeAdapterMap['documentType']} P5DocumentType\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['template']} P5Template\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {VFile | null | undefined} [file]\n * File used to add positional info to nodes (optional).\n *\n * If given, the file should represent the original HTML source.\n * @property {boolean | null | undefined} [verbose=false]\n * Whether to add extra positional info about starting tags, closing tags,\n * and attributes to elements (default: `false`).\n *\n * > 👉 **Note**: only used when `file` is given.\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean} location\n * Whether location info was found.\n * @property {Schema} schema\n * Current schema.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n */\n\nimport {ok as assert} from 'devlop'\nimport {h, s} from 'hastscript'\nimport {find, html, svg} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {P5Node} tree\n * `parse5` tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const settings = options || {}\n\n return one(\n {\n file: settings.file || undefined,\n location: false,\n schema: settings.space === 'svg' ? svg : html,\n verbose: settings.verbose || false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} node\n * p5 node.\n * @returns {Nodes}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Nodes} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {P5Comment} */ (node)\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference = /** @type {P5Document | P5DocumentFragment} */ (node)\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const doc = String(state.file)\n const loc = location(doc)\n const start = loc.toPoint(0)\n const end = loc.toPoint(doc.length)\n // Always defined as we give valid input.\n assert(start, 'expected `start`')\n assert(end, 'expected `end`')\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {P5DocumentType} */ (node)\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {P5Text} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {P5Element} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array<P5Node>} nodes\n * Nodes.\n * @returns {Array<RootContent>}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array<RootContent>} */\n const results = []\n\n while (++index < nodes.length) {\n // Assume no roots in `nodes`.\n const result = /** @type {RootContent} */ (one(state, nodes[index]))\n results.push(result)\n }\n\n return results\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Element} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record<string, string>} */\n const props = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n props[name] = attribute.value\n }\n }\n\n // Build.\n const fn = state.schema.space === 'svg' ? s : h\n const result = fn(node.tagName, props, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {P5Template} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n // Root in, root out.\n const content = /** @type {Root} */ (one(state, reference.content))\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} from\n * p5 node.\n * @param {Nodes} to\n * hast node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Nodes} node\n * hast node.\n * @param {P5ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record<string, Position | undefined>} */\n const props = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n assert(location.startTag, 'a start tag should exist')\n const opening = position(location.startTag)\n const closing = location.endTag ? position(location.endTag) : undefined\n /** @type {ElementData['position']} */\n const data = {opening}\n if (closing) data.closing = closing\n data.properties = props\n\n node.data = {position: data}\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {P5Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n\n // @ts-expect-error: we do use `undefined` for points if one or the other\n // exists.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap['document']} Parse5Document\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentFragment']} Parse5Fragment\n * @typedef {import('parse5').DefaultTreeAdapterMap['element']} Parse5Element\n * @typedef {import('parse5').DefaultTreeAdapterMap['node']} Parse5Nodes\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentType']} Parse5Doctype\n * @typedef {import('parse5').DefaultTreeAdapterMap['commentNode']} Parse5Comment\n * @typedef {import('parse5').DefaultTreeAdapterMap['textNode']} Parse5Text\n * @typedef {import('parse5').DefaultTreeAdapterMap['parentNode']} Parse5Parent\n * @typedef {import('parse5').Token.Attribute} Parse5Attribute\n *\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n *\n * @typedef {Exclude<Parse5Nodes, Parse5Document | Parse5Fragment>} Parse5Content\n *\n * @typedef {'html' | 'svg'} Space\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {find, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\nconst own = {}.hasOwnProperty\n\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to a `parse5` AST.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Parse5Nodes}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const settings = options || emptyOptions\n const space = settings.space\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Document}\n * Parse5 node.\n */\nfunction root(node, schema) {\n /** @type {Parse5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Fragment}\n * Parse5 node.\n */\nfunction fragment(node, schema) {\n /** @type {Parse5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * Node (hast) to transform.\n * @returns {Parse5Doctype}\n * Parse5 node.\n */\nfunction doctype(node) {\n /** @type {Parse5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: null\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * Node (hast) to transform.\n * @returns {Parse5Text}\n * Parse5 node.\n */\nfunction text(node) {\n /** @type {Parse5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n parentNode: null\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * Node (hast) to transform.\n * @returns {Parse5Comment}\n * Parse5 node.\n */\nfunction comment(node) {\n /** @type {Parse5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n parentNode: null\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Element}\n * Parse5 node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array<Parse5Attribute>} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n const space = currentSchema.space\n // `html` and `svg` both have a space.\n assert(space)\n\n /** @type {Parse5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: `parse5` types are wrong.\n namespaceURI: webNamespaces[space],\n childNodes: [],\n parentNode: null\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Parse5Attribute | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === false ||\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {Parse5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array<RootContent>} children\n * List of children.\n * @param {Parse5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array<Parse5Content>}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array<Parse5Content>} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {Parse5Content} */\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Nodes} from\n * hast node.\n * @param {Parse5Nodes} to\n * `parse5` node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n assert(typeof position.start.offset === 'number')\n assert(typeof position.end.offset === 'number')\n\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","const UNDEFINED_CODE_POINTS = new Set([\n 65534, 65535, 131070, 131071, 196606, 196607, 262142, 262143, 327678, 327679, 393214,\n 393215, 458750, 458751, 524286, 524287, 589822, 589823, 655358, 655359, 720894,\n 720895, 786430, 786431, 851966, 851967, 917502, 917503, 983038, 983039, 1048574,\n 1048575, 1114110, 1114111,\n]);\nexport const REPLACEMENT_CHARACTER = '\\uFFFD';\nexport var CODE_POINTS;\n(function (CODE_POINTS) {\n CODE_POINTS[CODE_POINTS[\"EOF\"] = -1] = \"EOF\";\n CODE_POINTS[CODE_POINTS[\"NULL\"] = 0] = \"NULL\";\n CODE_POINTS[CODE_POINTS[\"TABULATION\"] = 9] = \"TABULATION\";\n CODE_POINTS[CODE_POINTS[\"CARRIAGE_RETURN\"] = 13] = \"CARRIAGE_RETURN\";\n CODE_POINTS[CODE_POINTS[\"LINE_FEED\"] = 10] = \"LINE_FEED\";\n CODE_POINTS[CODE_POINTS[\"FORM_FEED\"] = 12] = \"FORM_FEED\";\n CODE_POINTS[CODE_POINTS[\"SPACE\"] = 32] = \"SPACE\";\n CODE_POINTS[CODE_POINTS[\"EXCLAMATION_MARK\"] = 33] = \"EXCLAMATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"QUOTATION_MARK\"] = 34] = \"QUOTATION_MARK\";\n CODE_POINTS[CODE_POINTS[\"NUMBER_SIGN\"] = 35] = \"NUMBER_SIGN\";\n CODE_POINTS[CODE_POINTS[\"AMPERSAND\"] = 38] = \"AMPERSAND\";\n CODE_POINTS[CODE_POINTS[\"APOSTROPHE\"] = 39] = \"APOSTROPHE\";\n CODE_POINTS[CODE_POINTS[\"HYPHEN_MINUS\"] = 45] = \"HYPHEN_MINUS\";\n CODE_POINTS[CODE_POINTS[\"SOLIDUS\"] = 47] = \"SOLIDUS\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_0\"] = 48] = \"DIGIT_0\";\n CODE_POINTS[CODE_POINTS[\"DIGIT_9\"] = 57] = \"DIGIT_9\";\n CODE_POINTS[CODE_POINTS[\"SEMICOLON\"] = 59] = \"SEMICOLON\";\n CODE_POINTS[CODE_POINTS[\"LESS_THAN_SIGN\"] = 60] = \"LESS_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"EQUALS_SIGN\"] = 61] = \"EQUALS_SIGN\";\n CODE_POINTS[CODE_POINTS[\"GREATER_THAN_SIGN\"] = 62] = \"GREATER_THAN_SIGN\";\n CODE_POINTS[CODE_POINTS[\"QUESTION_MARK\"] = 63] = \"QUESTION_MARK\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_A\"] = 65] = \"LATIN_CAPITAL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_F\"] = 70] = \"LATIN_CAPITAL_F\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_X\"] = 88] = \"LATIN_CAPITAL_X\";\n CODE_POINTS[CODE_POINTS[\"LATIN_CAPITAL_Z\"] = 90] = \"LATIN_CAPITAL_Z\";\n CODE_POINTS[CODE_POINTS[\"RIGHT_SQUARE_BRACKET\"] = 93] = \"RIGHT_SQUARE_BRACKET\";\n CODE_POINTS[CODE_POINTS[\"GRAVE_ACCENT\"] = 96] = \"GRAVE_ACCENT\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_A\"] = 97] = \"LATIN_SMALL_A\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_F\"] = 102] = \"LATIN_SMALL_F\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_X\"] = 120] = \"LATIN_SMALL_X\";\n CODE_POINTS[CODE_POINTS[\"LATIN_SMALL_Z\"] = 122] = \"LATIN_SMALL_Z\";\n CODE_POINTS[CODE_POINTS[\"REPLACEMENT_CHARACTER\"] = 65533] = \"REPLACEMENT_CHARACTER\";\n})(CODE_POINTS = CODE_POINTS || (CODE_POINTS = {}));\nexport const SEQUENCES = {\n DASH_DASH: '--',\n CDATA_START: '[CDATA[',\n DOCTYPE: 'doctype',\n SCRIPT: 'script',\n PUBLIC: 'public',\n SYSTEM: 'system',\n};\n//Surrogates\nexport function isSurrogate(cp) {\n return cp >= 55296 && cp <= 57343;\n}\nexport function isSurrogatePair(cp) {\n return cp >= 56320 && cp <= 57343;\n}\nexport function getSurrogatePairCodePoint(cp1, cp2) {\n return (cp1 - 55296) * 1024 + 9216 + cp2;\n}\n//NOTE: excluding NULL and ASCII whitespace\nexport function isControlCodePoint(cp) {\n return ((cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f));\n}\nexport function isUndefinedCodePoint(cp) {\n return (cp >= 64976 && cp <= 65007) || UNDEFINED_CODE_POINTS.has(cp);\n}\n//# sourceMappingURL=unicode.js.map","export var ERR;\n(function (ERR) {\n ERR[\"controlCharacterInInputStream\"] = \"control-character-in-input-stream\";\n ERR[\"noncharacterInInputStream\"] = \"noncharacter-in-input-stream\";\n ERR[\"surrogateInInputStream\"] = \"surrogate-in-input-stream\";\n ERR[\"nonVoidHtmlElementStartTagWithTrailingSolidus\"] = \"non-void-html-element-start-tag-with-trailing-solidus\";\n ERR[\"endTagWithAttributes\"] = \"end-tag-with-attributes\";\n ERR[\"endTagWithTrailingSolidus\"] = \"end-tag-with-trailing-solidus\";\n ERR[\"unexpectedSolidusInTag\"] = \"unexpected-solidus-in-tag\";\n ERR[\"unexpectedNullCharacter\"] = \"unexpected-null-character\";\n ERR[\"unexpectedQuestionMarkInsteadOfTagName\"] = \"unexpected-question-mark-instead-of-tag-name\";\n ERR[\"invalidFirstCharacterOfTagName\"] = \"invalid-first-character-of-tag-name\";\n ERR[\"unexpectedEqualsSignBeforeAttributeName\"] = \"unexpected-equals-sign-before-attribute-name\";\n ERR[\"missingEndTagName\"] = \"missing-end-tag-name\";\n ERR[\"unexpectedCharacterInAttributeName\"] = \"unexpected-character-in-attribute-name\";\n ERR[\"unknownNamedCharacterReference\"] = \"unknown-named-character-reference\";\n ERR[\"missingSemicolonAfterCharacterReference\"] = \"missing-semicolon-after-character-reference\";\n ERR[\"unexpectedCharacterAfterDoctypeSystemIdentifier\"] = \"unexpected-character-after-doctype-system-identifier\";\n ERR[\"unexpectedCharacterInUnquotedAttributeValue\"] = \"unexpected-character-in-unquoted-attribute-value\";\n ERR[\"eofBeforeTagName\"] = \"eof-before-tag-name\";\n ERR[\"eofInTag\"] = \"eof-in-tag\";\n ERR[\"missingAttributeValue\"] = \"missing-attribute-value\";\n ERR[\"missingWhitespaceBetweenAttributes\"] = \"missing-whitespace-between-attributes\";\n ERR[\"missingWhitespaceAfterDoctypePublicKeyword\"] = \"missing-whitespace-after-doctype-public-keyword\";\n ERR[\"missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers\"] = \"missing-whitespace-between-doctype-public-and-system-identifiers\";\n ERR[\"missingWhitespaceAfterDoctypeSystemKeyword\"] = \"missing-whitespace-after-doctype-system-keyword\";\n ERR[\"missingQuoteBeforeDoctypePublicIdentifier\"] = \"missing-quote-before-doctype-public-identifier\";\n ERR[\"missingQuoteBeforeDoctypeSystemIdentifier\"] = \"missing-quote-before-doctype-system-identifier\";\n ERR[\"missingDoctypePublicIdentifier\"] = \"missing-doctype-public-identifier\";\n ERR[\"missingDoctypeSystemIdentifier\"] = \"missing-doctype-system-identifier\";\n ERR[\"abruptDoctypePublicIdentifier\"] = \"abrupt-doctype-public-identifier\";\n ERR[\"abruptDoctypeSystemIdentifier\"] = \"abrupt-doctype-system-identifier\";\n ERR[\"cdataInHtmlContent\"] = \"cdata-in-html-content\";\n ERR[\"incorrectlyOpenedComment\"] = \"incorrectly-opened-comment\";\n ERR[\"eofInScriptHtmlCommentLikeText\"] = \"eof-in-script-html-comment-like-text\";\n ERR[\"eofInDoctype\"] = \"eof-in-doctype\";\n ERR[\"nestedComment\"] = \"nested-comment\";\n ERR[\"abruptClosingOfEmptyComment\"] = \"abrupt-closing-of-empty-comment\";\n ERR[\"eofInComment\"] = \"eof-in-comment\";\n ERR[\"incorrectlyClosedComment\"] = \"incorrectly-closed-comment\";\n ERR[\"eofInCdata\"] = \"eof-in-cdata\";\n ERR[\"absenceOfDigitsInNumericCharacterReference\"] = \"absence-of-digits-in-numeric-character-reference\";\n ERR[\"nullCharacterReference\"] = \"null-character-reference\";\n ERR[\"surrogateCharacterReference\"] = \"surrogate-character-reference\";\n ERR[\"characterReferenceOutsideUnicodeRange\"] = \"character-reference-outside-unicode-range\";\n ERR[\"controlCharacterReference\"] = \"control-character-reference\";\n ERR[\"noncharacterCharacterReference\"] = \"noncharacter-character-reference\";\n ERR[\"missingWhitespaceBeforeDoctypeName\"] = \"missing-whitespace-before-doctype-name\";\n ERR[\"missingDoctypeName\"] = \"missing-doctype-name\";\n ERR[\"invalidCharacterSequenceAfterDoctypeName\"] = \"invalid-character-sequence-after-doctype-name\";\n ERR[\"duplicateAttribute\"] = \"duplicate-attribute\";\n ERR[\"nonConformingDoctype\"] = \"non-conforming-doctype\";\n ERR[\"missingDoctype\"] = \"missing-doctype\";\n ERR[\"misplacedDoctype\"] = \"misplaced-doctype\";\n ERR[\"endTagWithoutMatchingOpenElement\"] = \"end-tag-without-matching-open-element\";\n ERR[\"closingOfElementWithOpenChildElements\"] = \"closing-of-element-with-open-child-elements\";\n ERR[\"disallowedContentInNoscriptInHead\"] = \"disallowed-content-in-noscript-in-head\";\n ERR[\"openElementsLeftAfterEof\"] = \"open-elements-left-after-eof\";\n ERR[\"abandonedHeadElementChild\"] = \"abandoned-head-element-child\";\n ERR[\"misplacedStartTagForHeadElement\"] = \"misplaced-start-tag-for-head-element\";\n ERR[\"nestedNoscriptInHead\"] = \"nested-noscript-in-head\";\n ERR[\"eofInElementThatCanContainOnlyText\"] = \"eof-in-element-that-can-contain-only-text\";\n})(ERR = ERR || (ERR = {}));\n//# sourceMappingURL=error-codes.js.map","import { CODE_POINTS as $, getSurrogatePairCodePoint, isControlCodePoint, isSurrogate, isSurrogatePair, isUndefinedCodePoint, } from '../common/unicode.js';\nimport { ERR } from '../common/error-codes.js';\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nexport class Preprocessor {\n constructor(handler) {\n this.handler = handler;\n this.html = '';\n this.pos = -1;\n // NOTE: Initial `lastGapPos` is -2, to ensure `col` on initialisation is 0\n this.lastGapPos = -2;\n this.gapStack = [];\n this.skipNextNewLine = false;\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n this.line = 1;\n //NOTE: avoid reporting errors twice on advance/retreat\n this.lastErrOffset = -1;\n }\n /** The column on the current line. If we just saw a gap (eg. a surrogate pair), return the index before. */\n get col() {\n return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);\n }\n get offset() {\n return this.droppedBufferSize + this.pos;\n }\n getError(code) {\n const { line, col, offset } = this;\n return {\n code,\n startLine: line,\n endLine: line,\n startCol: col,\n endCol: col,\n startOffset: offset,\n endOffset: offset,\n };\n }\n _err(code) {\n if (this.handler.onParseError && this.lastErrOffset !== this.offset) {\n this.lastErrOffset = this.offset;\n this.handler.onParseError(this.getError(code));\n }\n }\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.html.length - 1) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n if (isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n //NOTE: add a gap that should be avoided during retreat\n this._addGap();\n return getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n //NOTE: we are at the end of a chunk, therefore we can't infer the surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n return cp;\n }\n willDropParsedChunk() {\n return this.pos > this.bufferWaterline;\n }\n dropParsedChunk() {\n if (this.willDropParsedChunk()) {\n this.html = this.html.substring(this.pos);\n this.lineStartPos -= this.pos;\n this.droppedBufferSize += this.pos;\n this.pos = 0;\n this.lastGapPos = -2;\n this.gapStack.length = 0;\n }\n }\n write(chunk, isLastChunk) {\n if (this.html.length > 0) {\n this.html += chunk;\n }\n else {\n this.html = chunk;\n }\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1);\n this.endOfChunkHit = false;\n }\n startsWith(pattern, caseSensitive) {\n // Check if our buffer has enough characters\n if (this.pos + pattern.length > this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return false;\n }\n if (caseSensitive) {\n return this.html.startsWith(pattern, this.pos);\n }\n for (let i = 0; i < pattern.length; i++) {\n const cp = this.html.charCodeAt(this.pos + i) | 0x20;\n if (cp !== pattern.charCodeAt(i)) {\n return false;\n }\n }\n return true;\n }\n peek(offset) {\n const pos = this.pos + offset;\n if (pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n const code = this.html.charCodeAt(pos);\n return code === $.CARRIAGE_RETURN ? $.LINE_FEED : code;\n }\n advance() {\n this.pos++;\n //NOTE: LF should be in the last column of the line\n if (this.isEol) {\n this.isEol = false;\n this.line++;\n this.lineStartPos = this.pos;\n }\n if (this.pos >= this.html.length) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n let cp = this.html.charCodeAt(this.pos);\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.isEol = true;\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (cp === $.LINE_FEED) {\n this.isEol = true;\n if (this.skipNextNewLine) {\n // `line` will be bumped again in the recursive call.\n this.line--;\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n }\n this.skipNextNewLine = false;\n if (isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange = this.handler.onParseError === null ||\n (cp > 0x1f && cp < 0x7f) ||\n cp === $.LINE_FEED ||\n cp === $.CARRIAGE_RETURN ||\n (cp > 0x9f && cp < 64976);\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n return cp;\n }\n _checkForProblematicCharacters(cp) {\n if (isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n }\n else if (isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n retreat(count) {\n this.pos -= count;\n while (this.pos < this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n this.isEol = false;\n }\n}\n//# sourceMappingURL=preprocessor.js.map","export var TokenType;\n(function (TokenType) {\n TokenType[TokenType[\"CHARACTER\"] = 0] = \"CHARACTER\";\n TokenType[TokenType[\"NULL_CHARACTER\"] = 1] = \"NULL_CHARACTER\";\n TokenType[TokenType[\"WHITESPACE_CHARACTER\"] = 2] = \"WHITESPACE_CHARACTER\";\n TokenType[TokenType[\"START_TAG\"] = 3] = \"START_TAG\";\n TokenType[TokenType[\"END_TAG\"] = 4] = \"END_TAG\";\n TokenType[TokenType[\"COMMENT\"] = 5] = \"COMMENT\";\n TokenType[TokenType[\"DOCTYPE\"] = 6] = \"DOCTYPE\";\n TokenType[TokenType[\"EOF\"] = 7] = \"EOF\";\n TokenType[TokenType[\"HIBERNATION\"] = 8] = \"HIBERNATION\";\n})(TokenType = TokenType || (TokenType = {}));\nexport function getTokenAttr(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n return null;\n}\n//# sourceMappingURL=token.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nexport default new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport default function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode_codepoint.js.map","import htmlDecodeTree from \"./generated/decode-data-html.js\";\nimport xmlDecodeTree from \"./generated/decode-data-xml.js\";\nimport decodeCodePoint, { replaceCodePoint, fromCodePoint, } from \"./decode_codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree, xmlDecodeTree, decodeCodePoint };\nexport { replaceCodePoint, fromCodePoint } from \"./decode_codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b100000;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n }\n addToNumericResult(str, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(str, offset) {\n const startIdx = offset;\n while (offset < str.length) {\n const char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(str, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n const char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let ret = \"\";\n const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));\n return function decodeWithTrie(str, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIdx, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIdx;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = getDecoder(htmlDecodeTree);\nconst xmlDecoder = getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(str, mode = DecodingMode.Legacy) {\n return htmlDecoder(str, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\n//# sourceMappingURL=decode.js.map","/** All valid namespaces in HTML. */\nexport var NS;\n(function (NS) {\n NS[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n NS[\"MATHML\"] = \"http://www.w3.org/1998/Math/MathML\";\n NS[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n NS[\"XLINK\"] = \"http://www.w3.org/1999/xlink\";\n NS[\"XML\"] = \"http://www.w3.org/XML/1998/namespace\";\n NS[\"XMLNS\"] = \"http://www.w3.org/2000/xmlns/\";\n})(NS = NS || (NS = {}));\nexport var ATTRS;\n(function (ATTRS) {\n ATTRS[\"TYPE\"] = \"type\";\n ATTRS[\"ACTION\"] = \"action\";\n ATTRS[\"ENCODING\"] = \"encoding\";\n ATTRS[\"PROMPT\"] = \"prompt\";\n ATTRS[\"NAME\"] = \"name\";\n ATTRS[\"COLOR\"] = \"color\";\n ATTRS[\"FACE\"] = \"face\";\n ATTRS[\"SIZE\"] = \"size\";\n})(ATTRS = ATTRS || (ATTRS = {}));\n/**\n * The mode of the document.\n *\n * @see {@link https://dom.spec.whatwg.org/#concept-document-limited-quirks}\n */\nexport var DOCUMENT_MODE;\n(function (DOCUMENT_MODE) {\n DOCUMENT_MODE[\"NO_QUIRKS\"] = \"no-quirks\";\n DOCUMENT_MODE[\"QUIRKS\"] = \"quirks\";\n DOCUMENT_MODE[\"LIMITED_QUIRKS\"] = \"limited-quirks\";\n})(DOCUMENT_MODE = DOCUMENT_MODE || (DOCUMENT_MODE = {}));\nexport var TAG_NAMES;\n(function (TAG_NAMES) {\n TAG_NAMES[\"A\"] = \"a\";\n TAG_NAMES[\"ADDRESS\"] = \"address\";\n TAG_NAMES[\"ANNOTATION_XML\"] = \"annotation-xml\";\n TAG_NAMES[\"APPLET\"] = \"applet\";\n TAG_NAMES[\"AREA\"] = \"area\";\n TAG_NAMES[\"ARTICLE\"] = \"article\";\n TAG_NAMES[\"ASIDE\"] = \"aside\";\n TAG_NAMES[\"B\"] = \"b\";\n TAG_NAMES[\"BASE\"] = \"base\";\n TAG_NAMES[\"BASEFONT\"] = \"basefont\";\n TAG_NAMES[\"BGSOUND\"] = \"bgsound\";\n TAG_NAMES[\"BIG\"] = \"big\";\n TAG_NAMES[\"BLOCKQUOTE\"] = \"blockquote\";\n TAG_NAMES[\"BODY\"] = \"body\";\n TAG_NAMES[\"BR\"] = \"br\";\n TAG_NAMES[\"BUTTON\"] = \"button\";\n TAG_NAMES[\"CAPTION\"] = \"caption\";\n TAG_NAMES[\"CENTER\"] = \"center\";\n TAG_NAMES[\"CODE\"] = \"code\";\n TAG_NAMES[\"COL\"] = \"col\";\n TAG_NAMES[\"COLGROUP\"] = \"colgroup\";\n TAG_NAMES[\"DD\"] = \"dd\";\n TAG_NAMES[\"DESC\"] = \"desc\";\n TAG_NAMES[\"DETAILS\"] = \"details\";\n TAG_NAMES[\"DIALOG\"] = \"dialog\";\n TAG_NAMES[\"DIR\"] = \"dir\";\n TAG_NAMES[\"DIV\"] = \"div\";\n TAG_NAMES[\"DL\"] = \"dl\";\n TAG_NAMES[\"DT\"] = \"dt\";\n TAG_NAMES[\"EM\"] = \"em\";\n TAG_NAMES[\"EMBED\"] = \"embed\";\n TAG_NAMES[\"FIELDSET\"] = \"fieldset\";\n TAG_NAMES[\"FIGCAPTION\"] = \"figcaption\";\n TAG_NAMES[\"FIGURE\"] = \"figure\";\n TAG_NAMES[\"FONT\"] = \"font\";\n TAG_NAMES[\"FOOTER\"] = \"footer\";\n TAG_NAMES[\"FOREIGN_OBJECT\"] = \"foreignObject\";\n TAG_NAMES[\"FORM\"] = \"form\";\n TAG_NAMES[\"FRAME\"] = \"frame\";\n TAG_NAMES[\"FRAMESET\"] = \"frameset\";\n TAG_NAMES[\"H1\"] = \"h1\";\n TAG_NAMES[\"H2\"] = \"h2\";\n TAG_NAMES[\"H3\"] = \"h3\";\n TAG_NAMES[\"H4\"] = \"h4\";\n TAG_NAMES[\"H5\"] = \"h5\";\n TAG_NAMES[\"H6\"] = \"h6\";\n TAG_NAMES[\"HEAD\"] = \"head\";\n TAG_NAMES[\"HEADER\"] = \"header\";\n TAG_NAMES[\"HGROUP\"] = \"hgroup\";\n TAG_NAMES[\"HR\"] = \"hr\";\n TAG_NAMES[\"HTML\"] = \"html\";\n TAG_NAMES[\"I\"] = \"i\";\n TAG_NAMES[\"IMG\"] = \"img\";\n TAG_NAMES[\"IMAGE\"] = \"image\";\n TAG_NAMES[\"INPUT\"] = \"input\";\n TAG_NAMES[\"IFRAME\"] = \"iframe\";\n TAG_NAMES[\"KEYGEN\"] = \"keygen\";\n TAG_NAMES[\"LABEL\"] = \"label\";\n TAG_NAMES[\"LI\"] = \"li\";\n TAG_NAMES[\"LINK\"] = \"link\";\n TAG_NAMES[\"LISTING\"] = \"listing\";\n TAG_NAMES[\"MAIN\"] = \"main\";\n TAG_NAMES[\"MALIGNMARK\"] = \"malignmark\";\n TAG_NAMES[\"MARQUEE\"] = \"marquee\";\n TAG_NAMES[\"MATH\"] = \"math\";\n TAG_NAMES[\"MENU\"] = \"menu\";\n TAG_NAMES[\"META\"] = \"meta\";\n TAG_NAMES[\"MGLYPH\"] = \"mglyph\";\n TAG_NAMES[\"MI\"] = \"mi\";\n TAG_NAMES[\"MO\"] = \"mo\";\n TAG_NAMES[\"MN\"] = \"mn\";\n TAG_NAMES[\"MS\"] = \"ms\";\n TAG_NAMES[\"MTEXT\"] = \"mtext\";\n TAG_NAMES[\"NAV\"] = \"nav\";\n TAG_NAMES[\"NOBR\"] = \"nobr\";\n TAG_NAMES[\"NOFRAMES\"] = \"noframes\";\n TAG_NAMES[\"NOEMBED\"] = \"noembed\";\n TAG_NAMES[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES[\"OBJECT\"] = \"object\";\n TAG_NAMES[\"OL\"] = \"ol\";\n TAG_NAMES[\"OPTGROUP\"] = \"optgroup\";\n TAG_NAMES[\"OPTION\"] = \"option\";\n TAG_NAMES[\"P\"] = \"p\";\n TAG_NAMES[\"PARAM\"] = \"param\";\n TAG_NAMES[\"PLAINTEXT\"] = \"plaintext\";\n TAG_NAMES[\"PRE\"] = \"pre\";\n TAG_NAMES[\"RB\"] = \"rb\";\n TAG_NAMES[\"RP\"] = \"rp\";\n TAG_NAMES[\"RT\"] = \"rt\";\n TAG_NAMES[\"RTC\"] = \"rtc\";\n TAG_NAMES[\"RUBY\"] = \"ruby\";\n TAG_NAMES[\"S\"] = \"s\";\n TAG_NAMES[\"SCRIPT\"] = \"script\";\n TAG_NAMES[\"SECTION\"] = \"section\";\n TAG_NAMES[\"SELECT\"] = \"select\";\n TAG_NAMES[\"SOURCE\"] = \"source\";\n TAG_NAMES[\"SMALL\"] = \"small\";\n TAG_NAMES[\"SPAN\"] = \"span\";\n TAG_NAMES[\"STRIKE\"] = \"strike\";\n TAG_NAMES[\"STRONG\"] = \"strong\";\n TAG_NAMES[\"STYLE\"] = \"style\";\n TAG_NAMES[\"SUB\"] = \"sub\";\n TAG_NAMES[\"SUMMARY\"] = \"summary\";\n TAG_NAMES[\"SUP\"] = \"sup\";\n TAG_NAMES[\"TABLE\"] = \"table\";\n TAG_NAMES[\"TBODY\"] = \"tbody\";\n TAG_NAMES[\"TEMPLATE\"] = \"template\";\n TAG_NAMES[\"TEXTAREA\"] = \"textarea\";\n TAG_NAMES[\"TFOOT\"] = \"tfoot\";\n TAG_NAMES[\"TD\"] = \"td\";\n TAG_NAMES[\"TH\"] = \"th\";\n TAG_NAMES[\"THEAD\"] = \"thead\";\n TAG_NAMES[\"TITLE\"] = \"title\";\n TAG_NAMES[\"TR\"] = \"tr\";\n TAG_NAMES[\"TRACK\"] = \"track\";\n TAG_NAMES[\"TT\"] = \"tt\";\n TAG_NAMES[\"U\"] = \"u\";\n TAG_NAMES[\"UL\"] = \"ul\";\n TAG_NAMES[\"SVG\"] = \"svg\";\n TAG_NAMES[\"VAR\"] = \"var\";\n TAG_NAMES[\"WBR\"] = \"wbr\";\n TAG_NAMES[\"XMP\"] = \"xmp\";\n})(TAG_NAMES = TAG_NAMES || (TAG_NAMES = {}));\n/**\n * Tag IDs are numeric IDs for known tag names.\n *\n * We use tag IDs to improve the performance of tag name comparisons.\n */\nexport var TAG_ID;\n(function (TAG_ID) {\n TAG_ID[TAG_ID[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n TAG_ID[TAG_ID[\"A\"] = 1] = \"A\";\n TAG_ID[TAG_ID[\"ADDRESS\"] = 2] = \"ADDRESS\";\n TAG_ID[TAG_ID[\"ANNOTATION_XML\"] = 3] = \"ANNOTATION_XML\";\n TAG_ID[TAG_ID[\"APPLET\"] = 4] = \"APPLET\";\n TAG_ID[TAG_ID[\"AREA\"] = 5] = \"AREA\";\n TAG_ID[TAG_ID[\"ARTICLE\"] = 6] = \"ARTICLE\";\n TAG_ID[TAG_ID[\"ASIDE\"] = 7] = \"ASIDE\";\n TAG_ID[TAG_ID[\"B\"] = 8] = \"B\";\n TAG_ID[TAG_ID[\"BASE\"] = 9] = \"BASE\";\n TAG_ID[TAG_ID[\"BASEFONT\"] = 10] = \"BASEFONT\";\n TAG_ID[TAG_ID[\"BGSOUND\"] = 11] = \"BGSOUND\";\n TAG_ID[TAG_ID[\"BIG\"] = 12] = \"BIG\";\n TAG_ID[TAG_ID[\"BLOCKQUOTE\"] = 13] = \"BLOCKQUOTE\";\n TAG_ID[TAG_ID[\"BODY\"] = 14] = \"BODY\";\n TAG_ID[TAG_ID[\"BR\"] = 15] = \"BR\";\n TAG_ID[TAG_ID[\"BUTTON\"] = 16] = \"BUTTON\";\n TAG_ID[TAG_ID[\"CAPTION\"] = 17] = \"CAPTION\";\n TAG_ID[TAG_ID[\"CENTER\"] = 18] = \"CENTER\";\n TAG_ID[TAG_ID[\"CODE\"] = 19] = \"CODE\";\n TAG_ID[TAG_ID[\"COL\"] = 20] = \"COL\";\n TAG_ID[TAG_ID[\"COLGROUP\"] = 21] = \"COLGROUP\";\n TAG_ID[TAG_ID[\"DD\"] = 22] = \"DD\";\n TAG_ID[TAG_ID[\"DESC\"] = 23] = \"DESC\";\n TAG_ID[TAG_ID[\"DETAILS\"] = 24] = \"DETAILS\";\n TAG_ID[TAG_ID[\"DIALOG\"] = 25] = \"DIALOG\";\n TAG_ID[TAG_ID[\"DIR\"] = 26] = \"DIR\";\n TAG_ID[TAG_ID[\"DIV\"] = 27] = \"DIV\";\n TAG_ID[TAG_ID[\"DL\"] = 28] = \"DL\";\n TAG_ID[TAG_ID[\"DT\"] = 29] = \"DT\";\n TAG_ID[TAG_ID[\"EM\"] = 30] = \"EM\";\n TAG_ID[TAG_ID[\"EMBED\"] = 31] = \"EMBED\";\n TAG_ID[TAG_ID[\"FIELDSET\"] = 32] = \"FIELDSET\";\n TAG_ID[TAG_ID[\"FIGCAPTION\"] = 33] = \"FIGCAPTION\";\n TAG_ID[TAG_ID[\"FIGURE\"] = 34] = \"FIGURE\";\n TAG_ID[TAG_ID[\"FONT\"] = 35] = \"FONT\";\n TAG_ID[TAG_ID[\"FOOTER\"] = 36] = \"FOOTER\";\n TAG_ID[TAG_ID[\"FOREIGN_OBJECT\"] = 37] = \"FOREIGN_OBJECT\";\n TAG_ID[TAG_ID[\"FORM\"] = 38] = \"FORM\";\n TAG_ID[TAG_ID[\"FRAME\"] = 39] = \"FRAME\";\n TAG_ID[TAG_ID[\"FRAMESET\"] = 40] = \"FRAMESET\";\n TAG_ID[TAG_ID[\"H1\"] = 41] = \"H1\";\n TAG_ID[TAG_ID[\"H2\"] = 42] = \"H2\";\n TAG_ID[TAG_ID[\"H3\"] = 43] = \"H3\";\n TAG_ID[TAG_ID[\"H4\"] = 44] = \"H4\";\n TAG_ID[TAG_ID[\"H5\"] = 45] = \"H5\";\n TAG_ID[TAG_ID[\"H6\"] = 46] = \"H6\";\n TAG_ID[TAG_ID[\"HEAD\"] = 47] = \"HEAD\";\n TAG_ID[TAG_ID[\"HEADER\"] = 48] = \"HEADER\";\n TAG_ID[TAG_ID[\"HGROUP\"] = 49] = \"HGROUP\";\n TAG_ID[TAG_ID[\"HR\"] = 50] = \"HR\";\n TAG_ID[TAG_ID[\"HTML\"] = 51] = \"HTML\";\n TAG_ID[TAG_ID[\"I\"] = 52] = \"I\";\n TAG_ID[TAG_ID[\"IMG\"] = 53] = \"IMG\";\n TAG_ID[TAG_ID[\"IMAGE\"] = 54] = \"IMAGE\";\n TAG_ID[TAG_ID[\"INPUT\"] = 55] = \"INPUT\";\n TAG_ID[TAG_ID[\"IFRAME\"] = 56] = \"IFRAME\";\n TAG_ID[TAG_ID[\"KEYGEN\"] = 57] = \"KEYGEN\";\n TAG_ID[TAG_ID[\"LABEL\"] = 58] = \"LABEL\";\n TAG_ID[TAG_ID[\"LI\"] = 59] = \"LI\";\n TAG_ID[TAG_ID[\"LINK\"] = 60] = \"LINK\";\n TAG_ID[TAG_ID[\"LISTING\"] = 61] = \"LISTING\";\n TAG_ID[TAG_ID[\"MAIN\"] = 62] = \"MAIN\";\n TAG_ID[TAG_ID[\"MALIGNMARK\"] = 63] = \"MALIGNMARK\";\n TAG_ID[TAG_ID[\"MARQUEE\"] = 64] = \"MARQUEE\";\n TAG_ID[TAG_ID[\"MATH\"] = 65] = \"MATH\";\n TAG_ID[TAG_ID[\"MENU\"] = 66] = \"MENU\";\n TAG_ID[TAG_ID[\"META\"] = 67] = \"META\";\n TAG_ID[TAG_ID[\"MGLYPH\"] = 68] = \"MGLYPH\";\n TAG_ID[TAG_ID[\"MI\"] = 69] = \"MI\";\n TAG_ID[TAG_ID[\"MO\"] = 70] = \"MO\";\n TAG_ID[TAG_ID[\"MN\"] = 71] = \"MN\";\n TAG_ID[TAG_ID[\"MS\"] = 72] = \"MS\";\n TAG_ID[TAG_ID[\"MTEXT\"] = 73] = \"MTEXT\";\n TAG_ID[TAG_ID[\"NAV\"] = 74] = \"NAV\";\n TAG_ID[TAG_ID[\"NOBR\"] = 75] = \"NOBR\";\n TAG_ID[TAG_ID[\"NOFRAMES\"] = 76] = \"NOFRAMES\";\n TAG_ID[TAG_ID[\"NOEMBED\"] = 77] = \"NOEMBED\";\n TAG_ID[TAG_ID[\"NOSCRIPT\"] = 78] = \"NOSCRIPT\";\n TAG_ID[TAG_ID[\"OBJECT\"] = 79] = \"OBJECT\";\n TAG_ID[TAG_ID[\"OL\"] = 80] = \"OL\";\n TAG_ID[TAG_ID[\"OPTGROUP\"] = 81] = \"OPTGROUP\";\n TAG_ID[TAG_ID[\"OPTION\"] = 82] = \"OPTION\";\n TAG_ID[TAG_ID[\"P\"] = 83] = \"P\";\n TAG_ID[TAG_ID[\"PARAM\"] = 84] = \"PARAM\";\n TAG_ID[TAG_ID[\"PLAINTEXT\"] = 85] = \"PLAINTEXT\";\n TAG_ID[TAG_ID[\"PRE\"] = 86] = \"PRE\";\n TAG_ID[TAG_ID[\"RB\"] = 87] = \"RB\";\n TAG_ID[TAG_ID[\"RP\"] = 88] = \"RP\";\n TAG_ID[TAG_ID[\"RT\"] = 89] = \"RT\";\n TAG_ID[TAG_ID[\"RTC\"] = 90] = \"RTC\";\n TAG_ID[TAG_ID[\"RUBY\"] = 91] = \"RUBY\";\n TAG_ID[TAG_ID[\"S\"] = 92] = \"S\";\n TAG_ID[TAG_ID[\"SCRIPT\"] = 93] = \"SCRIPT\";\n TAG_ID[TAG_ID[\"SECTION\"] = 94] = \"SECTION\";\n TAG_ID[TAG_ID[\"SELECT\"] = 95] = \"SELECT\";\n TAG_ID[TAG_ID[\"SOURCE\"] = 96] = \"SOURCE\";\n TAG_ID[TAG_ID[\"SMALL\"] = 97] = \"SMALL\";\n TAG_ID[TAG_ID[\"SPAN\"] = 98] = \"SPAN\";\n TAG_ID[TAG_ID[\"STRIKE\"] = 99] = \"STRIKE\";\n TAG_ID[TAG_ID[\"STRONG\"] = 100] = \"STRONG\";\n TAG_ID[TAG_ID[\"STYLE\"] = 101] = \"STYLE\";\n TAG_ID[TAG_ID[\"SUB\"] = 102] = \"SUB\";\n TAG_ID[TAG_ID[\"SUMMARY\"] = 103] = \"SUMMARY\";\n TAG_ID[TAG_ID[\"SUP\"] = 104] = \"SUP\";\n TAG_ID[TAG_ID[\"TABLE\"] = 105] = \"TABLE\";\n TAG_ID[TAG_ID[\"TBODY\"] = 106] = \"TBODY\";\n TAG_ID[TAG_ID[\"TEMPLATE\"] = 107] = \"TEMPLATE\";\n TAG_ID[TAG_ID[\"TEXTAREA\"] = 108] = \"TEXTAREA\";\n TAG_ID[TAG_ID[\"TFOOT\"] = 109] = \"TFOOT\";\n TAG_ID[TAG_ID[\"TD\"] = 110] = \"TD\";\n TAG_ID[TAG_ID[\"TH\"] = 111] = \"TH\";\n TAG_ID[TAG_ID[\"THEAD\"] = 112] = \"THEAD\";\n TAG_ID[TAG_ID[\"TITLE\"] = 113] = \"TITLE\";\n TAG_ID[TAG_ID[\"TR\"] = 114] = \"TR\";\n TAG_ID[TAG_ID[\"TRACK\"] = 115] = \"TRACK\";\n TAG_ID[TAG_ID[\"TT\"] = 116] = \"TT\";\n TAG_ID[TAG_ID[\"U\"] = 117] = \"U\";\n TAG_ID[TAG_ID[\"UL\"] = 118] = \"UL\";\n TAG_ID[TAG_ID[\"SVG\"] = 119] = \"SVG\";\n TAG_ID[TAG_ID[\"VAR\"] = 120] = \"VAR\";\n TAG_ID[TAG_ID[\"WBR\"] = 121] = \"WBR\";\n TAG_ID[TAG_ID[\"XMP\"] = 122] = \"XMP\";\n})(TAG_ID = TAG_ID || (TAG_ID = {}));\nconst TAG_NAME_TO_ID = new Map([\n [TAG_NAMES.A, TAG_ID.A],\n [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],\n [TAG_NAMES.ANNOTATION_XML, TAG_ID.ANNOTATION_XML],\n [TAG_NAMES.APPLET, TAG_ID.APPLET],\n [TAG_NAMES.AREA, TAG_ID.AREA],\n [TAG_NAMES.ARTICLE, TAG_ID.ARTICLE],\n [TAG_NAMES.ASIDE, TAG_ID.ASIDE],\n [TAG_NAMES.B, TAG_ID.B],\n [TAG_NAMES.BASE, TAG_ID.BASE],\n [TAG_NAMES.BASEFONT, TAG_ID.BASEFONT],\n [TAG_NAMES.BGSOUND, TAG_ID.BGSOUND],\n [TAG_NAMES.BIG, TAG_ID.BIG],\n [TAG_NAMES.BLOCKQUOTE, TAG_ID.BLOCKQUOTE],\n [TAG_NAMES.BODY, TAG_ID.BODY],\n [TAG_NAMES.BR, TAG_ID.BR],\n [TAG_NAMES.BUTTON, TAG_ID.BUTTON],\n [TAG_NAMES.CAPTION, TAG_ID.CAPTION],\n [TAG_NAMES.CENTER, TAG_ID.CENTER],\n [TAG_NAMES.CODE, TAG_ID.CODE],\n [TAG_NAMES.COL, TAG_ID.COL],\n [TAG_NAMES.COLGROUP, TAG_ID.COLGROUP],\n [TAG_NAMES.DD, TAG_ID.DD],\n [TAG_NAMES.DESC, TAG_ID.DESC],\n [TAG_NAMES.DETAILS, TAG_ID.DETAILS],\n [TAG_NAMES.DIALOG, TAG_ID.DIALOG],\n [TAG_NAMES.DIR, TAG_ID.DIR],\n [TAG_NAMES.DIV, TAG_ID.DIV],\n [TAG_NAMES.DL, TAG_ID.DL],\n [TAG_NAMES.DT, TAG_ID.DT],\n [TAG_NAMES.EM, TAG_ID.EM],\n [TAG_NAMES.EMBED, TAG_ID.EMBED],\n [TAG_NAMES.FIELDSET, TAG_ID.FIELDSET],\n [TAG_NAMES.FIGCAPTION, TAG_ID.FIGCAPTION],\n [TAG_NAMES.FIGURE, TAG_ID.FIGURE],\n [TAG_NAMES.FONT, TAG_ID.FONT],\n [TAG_NAMES.FOOTER, TAG_ID.FOOTER],\n [TAG_NAMES.FOREIGN_OBJECT, TAG_ID.FOREIGN_OBJECT],\n [TAG_NAMES.FORM, TAG_ID.FORM],\n [TAG_NAMES.FRAME, TAG_ID.FRAME],\n [TAG_NAMES.FRAMESET, TAG_ID.FRAMESET],\n [TAG_NAMES.H1, TAG_ID.H1],\n [TAG_NAMES.H2, TAG_ID.H2],\n [TAG_NAMES.H3, TAG_ID.H3],\n [TAG_NAMES.H4, TAG_ID.H4],\n [TAG_NAMES.H5, TAG_ID.H5],\n [TAG_NAMES.H6, TAG_ID.H6],\n [TAG_NAMES.HEAD, TAG_ID.HEAD],\n [TAG_NAMES.HEADER, TAG_ID.HEADER],\n [TAG_NAMES.HGROUP, TAG_ID.HGROUP],\n [TAG_NAMES.HR, TAG_ID.HR],\n [TAG_NAMES.HTML, TAG_ID.HTML],\n [TAG_NAMES.I, TAG_ID.I],\n [TAG_NAMES.IMG, TAG_ID.IMG],\n [TAG_NAMES.IMAGE, TAG_ID.IMAGE],\n [TAG_NAMES.INPUT, TAG_ID.INPUT],\n [TAG_NAMES.IFRAME, TAG_ID.IFRAME],\n [TAG_NAMES.KEYGEN, TAG_ID.KEYGEN],\n [TAG_NAMES.LABEL, TAG_ID.LABEL],\n [TAG_NAMES.LI, TAG_ID.LI],\n [TAG_NAMES.LINK, TAG_ID.LINK],\n [TAG_NAMES.LISTING, TAG_ID.LISTING],\n [TAG_NAMES.MAIN, TAG_ID.MAIN],\n [TAG_NAMES.MALIGNMARK, TAG_ID.MALIGNMARK],\n [TAG_NAMES.MARQUEE, TAG_ID.MARQUEE],\n [TAG_NAMES.MATH, TAG_ID.MATH],\n [TAG_NAMES.MENU, TAG_ID.MENU],\n [TAG_NAMES.META, TAG_ID.META],\n [TAG_NAMES.MGLYPH, TAG_ID.MGLYPH],\n [TAG_NAMES.MI, TAG_ID.MI],\n [TAG_NAMES.MO, TAG_ID.MO],\n [TAG_NAMES.MN, TAG_ID.MN],\n [TAG_NAMES.MS, TAG_ID.MS],\n [TAG_NAMES.MTEXT, TAG_ID.MTEXT],\n [TAG_NAMES.NAV, TAG_ID.NAV],\n [TAG_NAMES.NOBR, TAG_ID.NOBR],\n [TAG_NAMES.NOFRAMES, TAG_ID.NOFRAMES],\n [TAG_NAMES.NOEMBED, TAG_ID.NOEMBED],\n [TAG_NAMES.NOSCRIPT, TAG_ID.NOSCRIPT],\n [TAG_NAMES.OBJECT, TAG_ID.OBJECT],\n [TAG_NAMES.OL, TAG_ID.OL],\n [TAG_NAMES.OPTGROUP, TAG_ID.OPTGROUP],\n [TAG_NAMES.OPTION, TAG_ID.OPTION],\n [TAG_NAMES.P, TAG_ID.P],\n [TAG_NAMES.PARAM, TAG_ID.PARAM],\n [TAG_NAMES.PLAINTEXT, TAG_ID.PLAINTEXT],\n [TAG_NAMES.PRE, TAG_ID.PRE],\n [TAG_NAMES.RB, TAG_ID.RB],\n [TAG_NAMES.RP, TAG_ID.RP],\n [TAG_NAMES.RT, TAG_ID.RT],\n [TAG_NAMES.RTC, TAG_ID.RTC],\n [TAG_NAMES.RUBY, TAG_ID.RUBY],\n [TAG_NAMES.S, TAG_ID.S],\n [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],\n [TAG_NAMES.SECTION, TAG_ID.SECTION],\n [TAG_NAMES.SELECT, TAG_ID.SELECT],\n [TAG_NAMES.SOURCE, TAG_ID.SOURCE],\n [TAG_NAMES.SMALL, TAG_ID.SMALL],\n [TAG_NAMES.SPAN, TAG_ID.SPAN],\n [TAG_NAMES.STRIKE, TAG_ID.STRIKE],\n [TAG_NAMES.STRONG, TAG_ID.STRONG],\n [TAG_NAMES.STYLE, TAG_ID.STYLE],\n [TAG_NAMES.SUB, TAG_ID.SUB],\n [TAG_NAMES.SUMMARY, TAG_ID.SUMMARY],\n [TAG_NAMES.SUP, TAG_ID.SUP],\n [TAG_NAMES.TABLE, TAG_ID.TABLE],\n [TAG_NAMES.TBODY, TAG_ID.TBODY],\n [TAG_NAMES.TEMPLATE, TAG_ID.TEMPLATE],\n [TAG_NAMES.TEXTAREA, TAG_ID.TEXTAREA],\n [TAG_NAMES.TFOOT, TAG_ID.TFOOT],\n [TAG_NAMES.TD, TAG_ID.TD],\n [TAG_NAMES.TH, TAG_ID.TH],\n [TAG_NAMES.THEAD, TAG_ID.THEAD],\n [TAG_NAMES.TITLE, TAG_ID.TITLE],\n [TAG_NAMES.TR, TAG_ID.TR],\n [TAG_NAMES.TRACK, TAG_ID.TRACK],\n [TAG_NAMES.TT, TAG_ID.TT],\n [TAG_NAMES.U, TAG_ID.U],\n [TAG_NAMES.UL, TAG_ID.UL],\n [TAG_NAMES.SVG, TAG_ID.SVG],\n [TAG_NAMES.VAR, TAG_ID.VAR],\n [TAG_NAMES.WBR, TAG_ID.WBR],\n [TAG_NAMES.XMP, TAG_ID.XMP],\n]);\nexport function getTagID(tagName) {\n var _a;\n return (_a = TAG_NAME_TO_ID.get(tagName)) !== null && _a !== void 0 ? _a : TAG_ID.UNKNOWN;\n}\nconst $ = TAG_ID;\nexport const SPECIAL_ELEMENTS = {\n [NS.HTML]: new Set([\n $.ADDRESS,\n $.APPLET,\n $.AREA,\n $.ARTICLE,\n $.ASIDE,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.BUTTON,\n $.CAPTION,\n $.CENTER,\n $.COL,\n $.COLGROUP,\n $.DD,\n $.DETAILS,\n $.DIR,\n $.DIV,\n $.DL,\n $.DT,\n $.EMBED,\n $.FIELDSET,\n $.FIGCAPTION,\n $.FIGURE,\n $.FOOTER,\n $.FORM,\n $.FRAME,\n $.FRAMESET,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HEADER,\n $.HGROUP,\n $.HR,\n $.HTML,\n $.IFRAME,\n $.IMG,\n $.INPUT,\n $.LI,\n $.LINK,\n $.LISTING,\n $.MAIN,\n $.MARQUEE,\n $.MENU,\n $.META,\n $.NAV,\n $.NOEMBED,\n $.NOFRAMES,\n $.NOSCRIPT,\n $.OBJECT,\n $.OL,\n $.P,\n $.PARAM,\n $.PLAINTEXT,\n $.PRE,\n $.SCRIPT,\n $.SECTION,\n $.SELECT,\n $.SOURCE,\n $.STYLE,\n $.SUMMARY,\n $.TABLE,\n $.TBODY,\n $.TD,\n $.TEMPLATE,\n $.TEXTAREA,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TITLE,\n $.TR,\n $.TRACK,\n $.UL,\n $.WBR,\n $.XMP,\n ]),\n [NS.MATHML]: new Set([$.MI, $.MO, $.MN, $.MS, $.MTEXT, $.ANNOTATION_XML]),\n [NS.SVG]: new Set([$.TITLE, $.FOREIGN_OBJECT, $.DESC]),\n [NS.XLINK]: new Set(),\n [NS.XML]: new Set(),\n [NS.XMLNS]: new Set(),\n};\nexport function isNumberedHeader(tn) {\n return tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6;\n}\nconst UNESCAPED_TEXT = new Set([\n TAG_NAMES.STYLE,\n TAG_NAMES.SCRIPT,\n TAG_NAMES.XMP,\n TAG_NAMES.IFRAME,\n TAG_NAMES.NOEMBED,\n TAG_NAMES.NOFRAMES,\n TAG_NAMES.PLAINTEXT,\n]);\nexport function hasUnescapedText(tn, scriptingEnabled) {\n return UNESCAPED_TEXT.has(tn) || (scriptingEnabled && tn === TAG_NAMES.NOSCRIPT);\n}\n//# sourceMappingURL=html.js.map","import { Preprocessor } from './preprocessor.js';\nimport { CODE_POINTS as $, SEQUENCES as $$, REPLACEMENT_CHARACTER, isSurrogate, isUndefinedCodePoint, isControlCodePoint, } from '../common/unicode.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\nimport { htmlDecodeTree, BinTrieFlags, determineBranch } from 'entities/lib/decode.js';\nimport { ERR } from '../common/error-codes.js';\nimport { TAG_ID, getTagID } from '../common/html.js';\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = new Map([\n [0x80, 8364],\n [0x82, 8218],\n [0x83, 402],\n [0x84, 8222],\n [0x85, 8230],\n [0x86, 8224],\n [0x87, 8225],\n [0x88, 710],\n [0x89, 8240],\n [0x8a, 352],\n [0x8b, 8249],\n [0x8c, 338],\n [0x8e, 381],\n [0x91, 8216],\n [0x92, 8217],\n [0x93, 8220],\n [0x94, 8221],\n [0x95, 8226],\n [0x96, 8211],\n [0x97, 8212],\n [0x98, 732],\n [0x99, 8482],\n [0x9a, 353],\n [0x9b, 8250],\n [0x9c, 339],\n [0x9e, 382],\n [0x9f, 376],\n]);\n//States\nvar State;\n(function (State) {\n State[State[\"DATA\"] = 0] = \"DATA\";\n State[State[\"RCDATA\"] = 1] = \"RCDATA\";\n State[State[\"RAWTEXT\"] = 2] = \"RAWTEXT\";\n State[State[\"SCRIPT_DATA\"] = 3] = \"SCRIPT_DATA\";\n State[State[\"PLAINTEXT\"] = 4] = \"PLAINTEXT\";\n State[State[\"TAG_OPEN\"] = 5] = \"TAG_OPEN\";\n State[State[\"END_TAG_OPEN\"] = 6] = \"END_TAG_OPEN\";\n State[State[\"TAG_NAME\"] = 7] = \"TAG_NAME\";\n State[State[\"RCDATA_LESS_THAN_SIGN\"] = 8] = \"RCDATA_LESS_THAN_SIGN\";\n State[State[\"RCDATA_END_TAG_OPEN\"] = 9] = \"RCDATA_END_TAG_OPEN\";\n State[State[\"RCDATA_END_TAG_NAME\"] = 10] = \"RCDATA_END_TAG_NAME\";\n State[State[\"RAWTEXT_LESS_THAN_SIGN\"] = 11] = \"RAWTEXT_LESS_THAN_SIGN\";\n State[State[\"RAWTEXT_END_TAG_OPEN\"] = 12] = \"RAWTEXT_END_TAG_OPEN\";\n State[State[\"RAWTEXT_END_TAG_NAME\"] = 13] = \"RAWTEXT_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_LESS_THAN_SIGN\"] = 14] = \"SCRIPT_DATA_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_END_TAG_OPEN\"] = 15] = \"SCRIPT_DATA_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_END_TAG_NAME\"] = 16] = \"SCRIPT_DATA_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_ESCAPE_START\"] = 17] = \"SCRIPT_DATA_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_ESCAPE_START_DASH\"] = 18] = \"SCRIPT_DATA_ESCAPE_START_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED\"] = 19] = \"SCRIPT_DATA_ESCAPED\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH\"] = 20] = \"SCRIPT_DATA_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_DASH_DASH\"] = 21] = \"SCRIPT_DATA_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\"] = 22] = \"SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\"] = 23] = \"SCRIPT_DATA_ESCAPED_END_TAG_OPEN\";\n State[State[\"SCRIPT_DATA_ESCAPED_END_TAG_NAME\"] = 24] = \"SCRIPT_DATA_ESCAPED_END_TAG_NAME\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_START\"] = 25] = \"SCRIPT_DATA_DOUBLE_ESCAPE_START\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED\"] = 26] = \"SCRIPT_DATA_DOUBLE_ESCAPED\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\"] = 27] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\"] = 28] = \"SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\"] = 29] = \"SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN\";\n State[State[\"SCRIPT_DATA_DOUBLE_ESCAPE_END\"] = 30] = \"SCRIPT_DATA_DOUBLE_ESCAPE_END\";\n State[State[\"BEFORE_ATTRIBUTE_NAME\"] = 31] = \"BEFORE_ATTRIBUTE_NAME\";\n State[State[\"ATTRIBUTE_NAME\"] = 32] = \"ATTRIBUTE_NAME\";\n State[State[\"AFTER_ATTRIBUTE_NAME\"] = 33] = \"AFTER_ATTRIBUTE_NAME\";\n State[State[\"BEFORE_ATTRIBUTE_VALUE\"] = 34] = \"BEFORE_ATTRIBUTE_VALUE\";\n State[State[\"ATTRIBUTE_VALUE_DOUBLE_QUOTED\"] = 35] = \"ATTRIBUTE_VALUE_DOUBLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_SINGLE_QUOTED\"] = 36] = \"ATTRIBUTE_VALUE_SINGLE_QUOTED\";\n State[State[\"ATTRIBUTE_VALUE_UNQUOTED\"] = 37] = \"ATTRIBUTE_VALUE_UNQUOTED\";\n State[State[\"AFTER_ATTRIBUTE_VALUE_QUOTED\"] = 38] = \"AFTER_ATTRIBUTE_VALUE_QUOTED\";\n State[State[\"SELF_CLOSING_START_TAG\"] = 39] = \"SELF_CLOSING_START_TAG\";\n State[State[\"BOGUS_COMMENT\"] = 40] = \"BOGUS_COMMENT\";\n State[State[\"MARKUP_DECLARATION_OPEN\"] = 41] = \"MARKUP_DECLARATION_OPEN\";\n State[State[\"COMMENT_START\"] = 42] = \"COMMENT_START\";\n State[State[\"COMMENT_START_DASH\"] = 43] = \"COMMENT_START_DASH\";\n State[State[\"COMMENT\"] = 44] = \"COMMENT\";\n State[State[\"COMMENT_LESS_THAN_SIGN\"] = 45] = \"COMMENT_LESS_THAN_SIGN\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG\"] = 46] = \"COMMENT_LESS_THAN_SIGN_BANG\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH\"] = 47] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH\";\n State[State[\"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\"] = 48] = \"COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH\";\n State[State[\"COMMENT_END_DASH\"] = 49] = \"COMMENT_END_DASH\";\n State[State[\"COMMENT_END\"] = 50] = \"COMMENT_END\";\n State[State[\"COMMENT_END_BANG\"] = 51] = \"COMMENT_END_BANG\";\n State[State[\"DOCTYPE\"] = 52] = \"DOCTYPE\";\n State[State[\"BEFORE_DOCTYPE_NAME\"] = 53] = \"BEFORE_DOCTYPE_NAME\";\n State[State[\"DOCTYPE_NAME\"] = 54] = \"DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_NAME\"] = 55] = \"AFTER_DOCTYPE_NAME\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_KEYWORD\"] = 56] = \"AFTER_DOCTYPE_PUBLIC_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\"] = 57] = \"BEFORE_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\"] = 58] = \"DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\"] = 59] = \"DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\"] = 60] = \"AFTER_DOCTYPE_PUBLIC_IDENTIFIER\";\n State[State[\"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\"] = 61] = \"BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_KEYWORD\"] = 62] = \"AFTER_DOCTYPE_SYSTEM_KEYWORD\";\n State[State[\"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\"] = 63] = \"BEFORE_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\"] = 64] = \"DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED\";\n State[State[\"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\"] = 65] = \"DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED\";\n State[State[\"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\"] = 66] = \"AFTER_DOCTYPE_SYSTEM_IDENTIFIER\";\n State[State[\"BOGUS_DOCTYPE\"] = 67] = \"BOGUS_DOCTYPE\";\n State[State[\"CDATA_SECTION\"] = 68] = \"CDATA_SECTION\";\n State[State[\"CDATA_SECTION_BRACKET\"] = 69] = \"CDATA_SECTION_BRACKET\";\n State[State[\"CDATA_SECTION_END\"] = 70] = \"CDATA_SECTION_END\";\n State[State[\"CHARACTER_REFERENCE\"] = 71] = \"CHARACTER_REFERENCE\";\n State[State[\"NAMED_CHARACTER_REFERENCE\"] = 72] = \"NAMED_CHARACTER_REFERENCE\";\n State[State[\"AMBIGUOUS_AMPERSAND\"] = 73] = \"AMBIGUOUS_AMPERSAND\";\n State[State[\"NUMERIC_CHARACTER_REFERENCE\"] = 74] = \"NUMERIC_CHARACTER_REFERENCE\";\n State[State[\"HEXADEMICAL_CHARACTER_REFERENCE_START\"] = 75] = \"HEXADEMICAL_CHARACTER_REFERENCE_START\";\n State[State[\"HEXADEMICAL_CHARACTER_REFERENCE\"] = 76] = \"HEXADEMICAL_CHARACTER_REFERENCE\";\n State[State[\"DECIMAL_CHARACTER_REFERENCE\"] = 77] = \"DECIMAL_CHARACTER_REFERENCE\";\n State[State[\"NUMERIC_CHARACTER_REFERENCE_END\"] = 78] = \"NUMERIC_CHARACTER_REFERENCE_END\";\n})(State || (State = {}));\n//Tokenizer initial states for different modes\nexport const TokenizerMode = {\n DATA: State.DATA,\n RCDATA: State.RCDATA,\n RAWTEXT: State.RAWTEXT,\n SCRIPT_DATA: State.SCRIPT_DATA,\n PLAINTEXT: State.PLAINTEXT,\n CDATA_SECTION: State.CDATA_SECTION,\n};\n//Utils\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\nfunction toAsciiLower(cp) {\n return cp + 32;\n}\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\nfunction isEntityInAttributeInvalidEnd(nextCp) {\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n}\nfunction isScriptDataDoubleEscapeSequenceEnd(cp) {\n return isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN;\n}\n//Tokenizer\nexport class Tokenizer {\n constructor(options, handler) {\n this.options = options;\n this.handler = handler;\n this.paused = false;\n /** Ensures that the parsing loop isn't run multiple times at once. */\n this.inLoop = false;\n /**\n * Indicates that the current adjusted node exists, is not an element in the HTML namespace,\n * and that it is not an integration point for either MathML or HTML.\n *\n * @see {@link https://html.spec.whatwg.org/multipage/parsing.html#tree-construction}\n */\n this.inForeignNode = false;\n this.lastStartTagName = '';\n this.active = false;\n this.state = State.DATA;\n this.returnState = State.DATA;\n this.charRefCode = -1;\n this.consumedAfterSnapshot = -1;\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = { name: '', value: '' };\n this.preprocessor = new Preprocessor(handler);\n this.currentLocation = this.getCurrentLocation(-1);\n }\n //Errors\n _err(code) {\n var _a, _b;\n (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code));\n }\n // NOTE: `offset` may never run across line boundaries.\n getCurrentLocation(offset) {\n if (!this.options.sourceCodeLocationInfo) {\n return null;\n }\n return {\n startLine: this.preprocessor.line,\n startCol: this.preprocessor.col - offset,\n startOffset: this.preprocessor.offset - offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n };\n }\n _runParsingLoop() {\n if (this.inLoop)\n return;\n this.inLoop = true;\n while (this.active && !this.paused) {\n this.consumedAfterSnapshot = 0;\n const cp = this._consume();\n if (!this._ensureHibernation()) {\n this._callState(cp);\n }\n }\n this.inLoop = false;\n }\n //API\n pause() {\n this.paused = true;\n }\n resume(writeCallback) {\n if (!this.paused) {\n throw new Error('Parser was already resumed');\n }\n this.paused = false;\n // Necessary for synchronous resume.\n if (this.inLoop)\n return;\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n write(chunk, isLastChunk, writeCallback) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n this._runParsingLoop();\n if (!this.paused) {\n writeCallback === null || writeCallback === void 0 ? void 0 : writeCallback();\n }\n }\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n this._runParsingLoop();\n }\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n this._unconsume(this.consumedAfterSnapshot);\n this.active = false;\n return true;\n }\n return false;\n }\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n _unconsume(count) {\n this.consumedAfterSnapshot -= count;\n this.preprocessor.retreat(count);\n }\n _reconsumeInState(state, cp) {\n this.state = state;\n this._callState(cp);\n }\n _advanceBy(count) {\n this.consumedAfterSnapshot += count;\n for (let i = 0; i < count; i++) {\n this.preprocessor.advance();\n }\n }\n _consumeSequenceIfMatch(pattern, caseSensitive) {\n if (this.preprocessor.startsWith(pattern, caseSensitive)) {\n // We will already have consumed one character before calling this method.\n this._advanceBy(pattern.length - 1);\n return true;\n }\n return false;\n }\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: TokenType.START_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(1),\n };\n }\n _createEndTagToken() {\n this.currentToken = {\n type: TokenType.END_TAG,\n tagName: '',\n tagID: TAG_ID.UNKNOWN,\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: this.getCurrentLocation(2),\n };\n }\n _createCommentToken(offset) {\n this.currentToken = {\n type: TokenType.COMMENT,\n data: '',\n location: this.getCurrentLocation(offset),\n };\n }\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: TokenType.DOCTYPE,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null,\n location: this.currentLocation,\n };\n }\n _createCharacterToken(type, chars) {\n this.currentCharacterToken = {\n type,\n chars,\n location: this.currentLocation,\n };\n }\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: '',\n };\n this.currentLocation = this.getCurrentLocation(0);\n }\n _leaveAttrName() {\n var _a;\n var _b;\n const token = this.currentToken;\n if (getTokenAttr(token, this.currentAttr.name) === null) {\n token.attrs.push(this.currentAttr);\n if (token.location && this.currentLocation) {\n const attrLocations = ((_a = (_b = token.location).attrs) !== null && _a !== void 0 ? _a : (_b.attrs = Object.create(null)));\n attrLocations[this.currentAttr.name] = this.currentLocation;\n // Set end location\n this._leaveAttrValue();\n }\n }\n else {\n this._err(ERR.duplicateAttribute);\n }\n }\n _leaveAttrValue() {\n if (this.currentLocation) {\n this.currentLocation.endLine = this.preprocessor.line;\n this.currentLocation.endCol = this.preprocessor.col;\n this.currentLocation.endOffset = this.preprocessor.offset;\n }\n }\n //Token emission\n prepareToken(ct) {\n this._emitCurrentCharacterToken(ct.location);\n this.currentToken = null;\n if (ct.location) {\n ct.location.endLine = this.preprocessor.line;\n ct.location.endCol = this.preprocessor.col + 1;\n ct.location.endOffset = this.preprocessor.offset + 1;\n }\n this.currentLocation = this.getCurrentLocation(-1);\n }\n emitCurrentTagToken() {\n const ct = this.currentToken;\n this.prepareToken(ct);\n ct.tagID = getTagID(ct.tagName);\n if (ct.type === TokenType.START_TAG) {\n this.lastStartTagName = ct.tagName;\n this.handler.onStartTag(ct);\n }\n else {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n this.handler.onEndTag(ct);\n }\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentComment(ct) {\n this.prepareToken(ct);\n this.handler.onComment(ct);\n this.preprocessor.dropParsedChunk();\n }\n emitCurrentDoctype(ct) {\n this.prepareToken(ct);\n this.handler.onDoctype(ct);\n this.preprocessor.dropParsedChunk();\n }\n _emitCurrentCharacterToken(nextLocation) {\n if (this.currentCharacterToken) {\n //NOTE: if we have a pending character token, make it's end location equal to the\n //current token's start location.\n if (nextLocation && this.currentCharacterToken.location) {\n this.currentCharacterToken.location.endLine = nextLocation.startLine;\n this.currentCharacterToken.location.endCol = nextLocation.startCol;\n this.currentCharacterToken.location.endOffset = nextLocation.startOffset;\n }\n switch (this.currentCharacterToken.type) {\n case TokenType.CHARACTER: {\n this.handler.onCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.handler.onNullCharacter(this.currentCharacterToken);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.handler.onWhitespaceCharacter(this.currentCharacterToken);\n break;\n }\n }\n this.currentCharacterToken = null;\n }\n }\n _emitEOFToken() {\n const location = this.getCurrentLocation(0);\n if (location) {\n location.endLine = location.startLine;\n location.endCol = location.startCol;\n location.endOffset = location.startOffset;\n }\n this._emitCurrentCharacterToken(location);\n this.handler.onEof({ type: TokenType.EOF, location });\n this.active = false;\n }\n //Characters emission\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, the parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)TokenType.NULL_CHARACTER - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)TokenType.WHITESPACE_CHARACTER - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken) {\n if (this.currentCharacterToken.type !== type) {\n this.currentLocation = this.getCurrentLocation(0);\n this._emitCurrentCharacterToken(this.currentLocation);\n this.preprocessor.dropParsedChunk();\n }\n else {\n this.currentCharacterToken.chars += ch;\n return;\n }\n }\n this._createCharacterToken(type, ch);\n }\n _emitCodePoint(cp) {\n const type = isWhitespace(cp)\n ? TokenType.WHITESPACE_CHARACTER\n : cp === $.NULL\n ? TokenType.NULL_CHARACTER\n : TokenType.CHARACTER;\n this._appendCharToCurrentCharacterToken(type, String.fromCodePoint(cp));\n }\n //NOTE: used when we emit characters explicitly.\n //This is always for non-whitespace and non-null characters, which allows us to avoid additional checks.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(TokenType.CHARACTER, ch);\n }\n // Character reference helpers\n _matchNamedCharacterReference(cp) {\n let result = null;\n let excess = 0;\n let withoutSemicolon = false;\n for (let i = 0, current = htmlDecodeTree[0]; i >= 0; cp = this._consume()) {\n i = determineBranch(htmlDecodeTree, current, i + 1, cp);\n if (i < 0)\n break;\n excess += 1;\n current = htmlDecodeTree[i];\n const masked = current & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n const valueLength = (masked >> 14) - 1;\n // Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n // See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n if (cp !== $.SEMICOLON &&\n this._isCharacterReferenceInAttribute() &&\n isEntityInAttributeInvalidEnd(this.preprocessor.peek(1))) {\n //NOTE: we don't flush all consumed code points here, and instead switch back to the original state after\n //emitting an ampersand. This is fine, as alphanumeric characters won't be parsed differently in attributes.\n result = [$.AMPERSAND];\n // Skip over the value.\n i += valueLength;\n }\n else {\n // If this is a surrogate pair, consume the next two bytes.\n result =\n valueLength === 0\n ? [htmlDecodeTree[i] & ~BinTrieFlags.VALUE_LENGTH]\n : valueLength === 1\n ? [htmlDecodeTree[++i]]\n : [htmlDecodeTree[++i], htmlDecodeTree[++i]];\n excess = 0;\n withoutSemicolon = cp !== $.SEMICOLON;\n }\n if (valueLength === 0) {\n // If the value is zero-length, we're done.\n this._consume();\n break;\n }\n }\n }\n this._unconsume(excess);\n if (withoutSemicolon && !this.preprocessor.endOfChunkHit) {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n }\n // We want to emit the error above on the code point after the entity.\n // We always consume one code point too many in the loop, and we wait to\n // unconsume it until after the error is emitted.\n this._unconsume(1);\n return result;\n }\n _isCharacterReferenceInAttribute() {\n return (this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_SINGLE_QUOTED ||\n this.returnState === State.ATTRIBUTE_VALUE_UNQUOTED);\n }\n _flushCodePointConsumedAsCharacterReference(cp) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n else {\n this._emitCodePoint(cp);\n }\n }\n // Calling states this way turns out to be much faster than any other approach.\n _callState(cp) {\n switch (this.state) {\n case State.DATA: {\n this._stateData(cp);\n break;\n }\n case State.RCDATA: {\n this._stateRcdata(cp);\n break;\n }\n case State.RAWTEXT: {\n this._stateRawtext(cp);\n break;\n }\n case State.SCRIPT_DATA: {\n this._stateScriptData(cp);\n break;\n }\n case State.PLAINTEXT: {\n this._statePlaintext(cp);\n break;\n }\n case State.TAG_OPEN: {\n this._stateTagOpen(cp);\n break;\n }\n case State.END_TAG_OPEN: {\n this._stateEndTagOpen(cp);\n break;\n }\n case State.TAG_NAME: {\n this._stateTagName(cp);\n break;\n }\n case State.RCDATA_LESS_THAN_SIGN: {\n this._stateRcdataLessThanSign(cp);\n break;\n }\n case State.RCDATA_END_TAG_OPEN: {\n this._stateRcdataEndTagOpen(cp);\n break;\n }\n case State.RCDATA_END_TAG_NAME: {\n this._stateRcdataEndTagName(cp);\n break;\n }\n case State.RAWTEXT_LESS_THAN_SIGN: {\n this._stateRawtextLessThanSign(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_OPEN: {\n this._stateRawtextEndTagOpen(cp);\n break;\n }\n case State.RAWTEXT_END_TAG_NAME: {\n this._stateRawtextEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_LESS_THAN_SIGN: {\n this._stateScriptDataLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_OPEN: {\n this._stateScriptDataEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_END_TAG_NAME: {\n this._stateScriptDataEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START: {\n this._stateScriptDataEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPE_START_DASH: {\n this._stateScriptDataEscapeStartDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED: {\n this._stateScriptDataEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH: {\n this._stateScriptDataEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_DASH_DASH: {\n this._stateScriptDataEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN: {\n this._stateScriptDataEscapedEndTagOpen(cp);\n break;\n }\n case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME: {\n this._stateScriptDataEscapedEndTagName(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_START: {\n this._stateScriptDataDoubleEscapeStart(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED: {\n this._stateScriptDataDoubleEscaped(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH: {\n this._stateScriptDataDoubleEscapedDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH: {\n this._stateScriptDataDoubleEscapedDashDash(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN: {\n this._stateScriptDataDoubleEscapedLessThanSign(cp);\n break;\n }\n case State.SCRIPT_DATA_DOUBLE_ESCAPE_END: {\n this._stateScriptDataDoubleEscapeEnd(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_NAME: {\n this._stateBeforeAttributeName(cp);\n break;\n }\n case State.ATTRIBUTE_NAME: {\n this._stateAttributeName(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_NAME: {\n this._stateAfterAttributeName(cp);\n break;\n }\n case State.BEFORE_ATTRIBUTE_VALUE: {\n this._stateBeforeAttributeValue(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_DOUBLE_QUOTED: {\n this._stateAttributeValueDoubleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_SINGLE_QUOTED: {\n this._stateAttributeValueSingleQuoted(cp);\n break;\n }\n case State.ATTRIBUTE_VALUE_UNQUOTED: {\n this._stateAttributeValueUnquoted(cp);\n break;\n }\n case State.AFTER_ATTRIBUTE_VALUE_QUOTED: {\n this._stateAfterAttributeValueQuoted(cp);\n break;\n }\n case State.SELF_CLOSING_START_TAG: {\n this._stateSelfClosingStartTag(cp);\n break;\n }\n case State.BOGUS_COMMENT: {\n this._stateBogusComment(cp);\n break;\n }\n case State.MARKUP_DECLARATION_OPEN: {\n this._stateMarkupDeclarationOpen(cp);\n break;\n }\n case State.COMMENT_START: {\n this._stateCommentStart(cp);\n break;\n }\n case State.COMMENT_START_DASH: {\n this._stateCommentStartDash(cp);\n break;\n }\n case State.COMMENT: {\n this._stateComment(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN: {\n this._stateCommentLessThanSign(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG: {\n this._stateCommentLessThanSignBang(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH: {\n this._stateCommentLessThanSignBangDash(cp);\n break;\n }\n case State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH: {\n this._stateCommentLessThanSignBangDashDash(cp);\n break;\n }\n case State.COMMENT_END_DASH: {\n this._stateCommentEndDash(cp);\n break;\n }\n case State.COMMENT_END: {\n this._stateCommentEnd(cp);\n break;\n }\n case State.COMMENT_END_BANG: {\n this._stateCommentEndBang(cp);\n break;\n }\n case State.DOCTYPE: {\n this._stateDoctype(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_NAME: {\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case State.DOCTYPE_NAME: {\n this._stateDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_NAME: {\n this._stateAfterDoctypeName(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_KEYWORD: {\n this._stateAfterDoctypePublicKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateBeforeDoctypePublicIdentifier(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypePublicIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypePublicIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER: {\n this._stateAfterDoctypePublicIdentifier(cp);\n break;\n }\n case State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS: {\n this._stateBetweenDoctypePublicAndSystemIdentifiers(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_KEYWORD: {\n this._stateAfterDoctypeSystemKeyword(cp);\n break;\n }\n case State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateBeforeDoctypeSystemIdentifier(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED: {\n this._stateDoctypeSystemIdentifierDoubleQuoted(cp);\n break;\n }\n case State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED: {\n this._stateDoctypeSystemIdentifierSingleQuoted(cp);\n break;\n }\n case State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER: {\n this._stateAfterDoctypeSystemIdentifier(cp);\n break;\n }\n case State.BOGUS_DOCTYPE: {\n this._stateBogusDoctype(cp);\n break;\n }\n case State.CDATA_SECTION: {\n this._stateCdataSection(cp);\n break;\n }\n case State.CDATA_SECTION_BRACKET: {\n this._stateCdataSectionBracket(cp);\n break;\n }\n case State.CDATA_SECTION_END: {\n this._stateCdataSectionEnd(cp);\n break;\n }\n case State.CHARACTER_REFERENCE: {\n this._stateCharacterReference(cp);\n break;\n }\n case State.NAMED_CHARACTER_REFERENCE: {\n this._stateNamedCharacterReference(cp);\n break;\n }\n case State.AMBIGUOUS_AMPERSAND: {\n this._stateAmbiguousAmpersand(cp);\n break;\n }\n case State.NUMERIC_CHARACTER_REFERENCE: {\n this._stateNumericCharacterReference(cp);\n break;\n }\n case State.HEXADEMICAL_CHARACTER_REFERENCE_START: {\n this._stateHexademicalCharacterReferenceStart(cp);\n break;\n }\n case State.HEXADEMICAL_CHARACTER_REFERENCE: {\n this._stateHexademicalCharacterReference(cp);\n break;\n }\n case State.DECIMAL_CHARACTER_REFERENCE: {\n this._stateDecimalCharacterReference(cp);\n break;\n }\n case State.NUMERIC_CHARACTER_REFERENCE_END: {\n this._stateNumericCharacterReferenceEnd(cp);\n break;\n }\n default: {\n throw new Error('Unknown state');\n }\n }\n }\n // State machine\n // Data state\n //------------------------------------------------------------------\n _stateData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.TAG_OPEN;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.DATA;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RCDATA state\n //------------------------------------------------------------------\n _stateRcdata(cp) {\n switch (cp) {\n case $.AMPERSAND: {\n this.returnState = State.RCDATA;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.RCDATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // RAWTEXT state\n //------------------------------------------------------------------\n _stateRawtext(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.RAWTEXT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data state\n //------------------------------------------------------------------\n _stateScriptData(cp) {\n switch (cp) {\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // PLAINTEXT state\n //------------------------------------------------------------------\n _statePlaintext(cp) {\n switch (cp) {\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Tag open state\n //------------------------------------------------------------------\n _stateTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n this.state = State.MARKUP_DECLARATION_OPEN;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.END_TAG_OPEN;\n break;\n }\n case $.QUESTION_MARK: {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken(1);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this.state = State.DATA;\n this._stateData(cp);\n }\n }\n }\n // End tag open state\n //------------------------------------------------------------------\n _stateEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this.state = State.TAG_NAME;\n this._stateTagName(cp);\n }\n else\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingEndTagName);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n }\n // Tag name state\n //------------------------------------------------------------------\n _stateTagName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.tagName += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n token.tagName += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n _stateRcdataLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.RCDATA_END_TAG_OPEN;\n }\n else {\n this._emitChars('<');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n // RCDATA end tag open state\n //------------------------------------------------------------------\n _stateRcdataEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.RCDATA_END_TAG_NAME;\n this._stateRcdataEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n handleSpecialEndTag(_cp) {\n if (!this.preprocessor.startsWith(this.lastStartTagName, false)) {\n return !this._ensureHibernation();\n }\n this._createEndTagToken();\n const token = this.currentToken;\n token.tagName = this.lastStartTagName;\n const cp = this.preprocessor.peek(this.lastStartTagName.length);\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._advanceBy(this.lastStartTagName.length);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n return false;\n }\n case $.SOLIDUS: {\n this._advanceBy(this.lastStartTagName.length);\n this.state = State.SELF_CLOSING_START_TAG;\n return false;\n }\n case $.GREATER_THAN_SIGN: {\n this._advanceBy(this.lastStartTagName.length);\n this.emitCurrentTagToken();\n this.state = State.DATA;\n return false;\n }\n default: {\n return !this._ensureHibernation();\n }\n }\n }\n // RCDATA end tag name state\n //------------------------------------------------------------------\n _stateRcdataEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.RCDATA;\n this._stateRcdata(cp);\n }\n }\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n _stateRawtextLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.RAWTEXT_END_TAG_OPEN;\n }\n else {\n this._emitChars('<');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n _stateRawtextEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.RAWTEXT_END_TAG_NAME;\n this._stateRawtextEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n _stateRawtextEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.RAWTEXT;\n this._stateRawtext(cp);\n }\n }\n // Script data less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataLessThanSign(cp) {\n switch (cp) {\n case $.SOLIDUS: {\n this.state = State.SCRIPT_DATA_END_TAG_OPEN;\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.SCRIPT_DATA_ESCAPE_START;\n this._emitChars('<!');\n break;\n }\n default: {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n }\n // Script data end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_END_TAG_NAME;\n this._stateScriptDataEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data end tag name state\n //------------------------------------------------------------------\n _stateScriptDataEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escape start state\n //------------------------------------------------------------------\n _stateScriptDataEscapeStart(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.SCRIPT_DATA_ESCAPE_START_DASH;\n this._emitChars('-');\n }\n else {\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escape start dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapeStartDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;\n this._emitChars('-');\n }\n else {\n this.state = State.SCRIPT_DATA;\n this._stateScriptData(cp);\n }\n }\n // Script data escaped state\n //------------------------------------------------------------------\n _stateScriptDataEscaped(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapedDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_ESCAPED_DASH_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n _stateScriptDataEscapedDashDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.SCRIPT_DATA;\n this._emitChars('>');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;\n }\n else if (isAsciiLetter(cp)) {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;\n this._stateScriptDataDoubleEscapeStart(cp);\n }\n else {\n this._emitChars('<');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagOpen(cp) {\n if (isAsciiLetter(cp)) {\n this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;\n this._stateScriptDataEscapedEndTagName(cp);\n }\n else {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n _stateScriptDataEscapedEndTagName(cp) {\n if (this.handleSpecialEndTag(cp)) {\n this._emitChars('</');\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data double escape start state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeStart(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_ESCAPED;\n this._stateScriptDataEscaped(cp);\n }\n }\n // Script data double escaped state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscaped(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped dash state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH;\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedDashDash(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this._emitChars('-');\n break;\n }\n case $.LESS_THAN_SIGN: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN;\n this._emitChars('<');\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.SCRIPT_DATA;\n this._emitChars('>');\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitChars(REPLACEMENT_CHARACTER);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n break;\n }\n default: {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._emitCodePoint(cp);\n }\n }\n }\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapedLessThanSign(cp) {\n if (cp === $.SOLIDUS) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_END;\n this._emitChars('/');\n }\n else {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Script data double escape end state\n //------------------------------------------------------------------\n _stateScriptDataDoubleEscapeEnd(cp) {\n if (this.preprocessor.startsWith($$.SCRIPT, false) &&\n isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek($$.SCRIPT.length))) {\n this._emitCodePoint(cp);\n for (let i = 0; i < $$.SCRIPT.length; i++) {\n this._emitCodePoint(this._consume());\n }\n this.state = State.SCRIPT_DATA_ESCAPED;\n }\n else if (!this._ensureHibernation()) {\n this.state = State.SCRIPT_DATA_DOUBLE_ESCAPED;\n this._stateScriptDataDoubleEscaped(cp);\n }\n }\n // Before attribute name state\n //------------------------------------------------------------------\n _stateBeforeAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = State.ATTRIBUTE_NAME;\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Attribute name state\n //------------------------------------------------------------------\n _stateAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED:\n case $.SOLIDUS:\n case $.GREATER_THAN_SIGN:\n case $.EOF: {\n this._leaveAttrName();\n this.state = State.AFTER_ATTRIBUTE_NAME;\n this._stateAfterAttributeName(cp);\n break;\n }\n case $.EQUALS_SIGN: {\n this._leaveAttrName();\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN: {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += String.fromCodePoint(cp);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n this.currentAttr.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After attribute name state\n //------------------------------------------------------------------\n _stateAfterAttributeName(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.SOLIDUS: {\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.EQUALS_SIGN: {\n this.state = State.BEFORE_ATTRIBUTE_VALUE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createAttr('');\n this.state = State.ATTRIBUTE_NAME;\n this._stateAttributeName(cp);\n }\n }\n }\n // Before attribute value state\n //------------------------------------------------------------------\n _stateBeforeAttributeValue(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n this.state = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this.state = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingAttributeValue);\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n default: {\n this.state = State.ATTRIBUTE_VALUE_UNQUOTED;\n this._stateAttributeValueUnquoted(cp);\n }\n }\n }\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueDoubleQuoted(cp) {\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n _stateAttributeValueSingleQuoted(cp) {\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_ATTRIBUTE_VALUE_QUOTED;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n _stateAttributeValueUnquoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.AMPERSAND: {\n this.returnState = State.ATTRIBUTE_VALUE_UNQUOTED;\n this.state = State.CHARACTER_REFERENCE;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += REPLACEMENT_CHARACTER;\n break;\n }\n case $.QUOTATION_MARK:\n case $.APOSTROPHE:\n case $.LESS_THAN_SIGN:\n case $.EQUALS_SIGN:\n case $.GRAVE_ACCENT: {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += String.fromCodePoint(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this.currentAttr.value += String.fromCodePoint(cp);\n }\n }\n }\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n _stateAfterAttributeValueQuoted(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this._leaveAttrValue();\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n break;\n }\n case $.SOLIDUS: {\n this._leaveAttrValue();\n this.state = State.SELF_CLOSING_START_TAG;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._leaveAttrValue();\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Self-closing start tag state\n //------------------------------------------------------------------\n _stateSelfClosingStartTag(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n const token = this.currentToken;\n token.selfClosing = true;\n this.state = State.DATA;\n this.emitCurrentTagToken();\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedSolidusInTag);\n this.state = State.BEFORE_ATTRIBUTE_NAME;\n this._stateBeforeAttributeName(cp);\n }\n }\n }\n // Bogus comment state\n //------------------------------------------------------------------\n _stateBogusComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Markup declaration open state\n //------------------------------------------------------------------\n _stateMarkupDeclarationOpen(cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH, true)) {\n this._createCommentToken($$.DASH_DASH.length + 1);\n this.state = State.COMMENT_START;\n }\n else if (this._consumeSequenceIfMatch($$.DOCTYPE, false)) {\n // NOTE: Doctypes tokens are created without fixed offsets. We keep track of the moment a doctype *might* start here.\n this.currentLocation = this.getCurrentLocation($$.DOCTYPE.length + 1);\n this.state = State.DOCTYPE;\n }\n else if (this._consumeSequenceIfMatch($$.CDATA_START, true)) {\n if (this.inForeignNode) {\n this.state = State.CDATA_SECTION;\n }\n else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken($$.CDATA_START.length + 1);\n this.currentToken.data = '[CDATA[';\n this.state = State.BOGUS_COMMENT;\n }\n }\n //NOTE: Sequence lookups can be abrupted by hibernation. In that case, lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken(2);\n this.state = State.BOGUS_COMMENT;\n this._stateBogusComment(cp);\n }\n }\n // Comment start state\n //------------------------------------------------------------------\n _stateCommentStart(cp) {\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_START_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n const token = this.currentToken;\n this.emitCurrentComment(token);\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment start dash state\n //------------------------------------------------------------------\n _stateCommentStartDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment state\n //------------------------------------------------------------------\n _stateComment(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n this.state = State.COMMENT_LESS_THAN_SIGN;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.data += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += String.fromCodePoint(cp);\n }\n }\n }\n // Comment less-than sign state\n //------------------------------------------------------------------\n _stateCommentLessThanSign(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.EXCLAMATION_MARK: {\n token.data += '!';\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG;\n break;\n }\n case $.LESS_THAN_SIGN: {\n token.data += '<';\n break;\n }\n default: {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBang(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH;\n }\n else {\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDash(cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = State.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH;\n }\n else {\n this.state = State.COMMENT_END_DASH;\n this._stateCommentEndDash(cp);\n }\n }\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n _stateCommentLessThanSignBangDashDash(cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n this.state = State.COMMENT_END;\n this._stateCommentEnd(cp);\n }\n // Comment end dash state\n //------------------------------------------------------------------\n _stateCommentEndDash(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n this.state = State.COMMENT_END;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '-';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end state\n //------------------------------------------------------------------\n _stateCommentEnd(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EXCLAMATION_MARK: {\n this.state = State.COMMENT_END_BANG;\n break;\n }\n case $.HYPHEN_MINUS: {\n token.data += '-';\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // Comment end bang state\n //------------------------------------------------------------------\n _stateCommentEndBang(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.HYPHEN_MINUS: {\n token.data += '--!';\n this.state = State.COMMENT_END_DASH;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.incorrectlyClosedComment);\n this.state = State.DATA;\n this.emitCurrentComment(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInComment);\n this.emitCurrentComment(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.data += '--!';\n this.state = State.COMMENT;\n this._stateComment(cp);\n }\n }\n }\n // DOCTYPE state\n //------------------------------------------------------------------\n _stateDoctype(cp) {\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this.state = State.BEFORE_DOCTYPE_NAME;\n this._stateBeforeDoctypeName(cp);\n }\n }\n }\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n _stateBeforeDoctypeName(cp) {\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(String.fromCharCode(toAsciiLower(cp)));\n this.state = State.DOCTYPE_NAME;\n }\n else\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(REPLACEMENT_CHARACTER);\n this.state = State.DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n const token = this.currentToken;\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._createDoctypeToken(String.fromCodePoint(cp));\n this.state = State.DOCTYPE_NAME;\n }\n }\n }\n // DOCTYPE name state\n //------------------------------------------------------------------\n _stateDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.AFTER_DOCTYPE_NAME;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.name += REPLACEMENT_CHARACTER;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.name += String.fromCodePoint(isAsciiUpper(cp) ? toAsciiLower(cp) : cp);\n }\n }\n }\n // After DOCTYPE name state\n //------------------------------------------------------------------\n _stateAfterDoctypeName(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n if (this._consumeSequenceIfMatch($$.PUBLIC, false)) {\n this.state = State.AFTER_DOCTYPE_PUBLIC_KEYWORD;\n }\n else if (this._consumeSequenceIfMatch($$.SYSTEM, false)) {\n this.state = State.AFTER_DOCTYPE_SYSTEM_KEYWORD;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n }\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.publicId = '';\n this.state = State.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypePublicIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.publicId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypePublicIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.publicId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypePublicIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n _stateBetweenDoctypePublicAndSystemIdentifiers(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemKeyword(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n this.state = State.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.QUOTATION_MARK: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateBeforeDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.QUOTATION_MARK: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;\n break;\n }\n case $.APOSTROPHE: {\n token.systemId = '';\n this.state = State.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.missingDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.DATA;\n this.emitCurrentDoctype(token);\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierDoubleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.QUOTATION_MARK: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n _stateDoctypeSystemIdentifierSingleQuoted(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.APOSTROPHE: {\n this.state = State.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n token.systemId += REPLACEMENT_CHARACTER;\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n token.systemId += String.fromCodePoint(cp);\n }\n }\n }\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n _stateAfterDoctypeSystemIdentifier(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.SPACE:\n case $.LINE_FEED:\n case $.TABULATION:\n case $.FORM_FEED: {\n // Ignore whitespace\n break;\n }\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInDoctype);\n token.forceQuirks = true;\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default: {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this.state = State.BOGUS_DOCTYPE;\n this._stateBogusDoctype(cp);\n }\n }\n }\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n _stateBogusDoctype(cp) {\n const token = this.currentToken;\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.emitCurrentDoctype(token);\n this.state = State.DATA;\n break;\n }\n case $.NULL: {\n this._err(ERR.unexpectedNullCharacter);\n break;\n }\n case $.EOF: {\n this.emitCurrentDoctype(token);\n this._emitEOFToken();\n break;\n }\n default:\n // Do nothing\n }\n }\n // CDATA section state\n //------------------------------------------------------------------\n _stateCdataSection(cp) {\n switch (cp) {\n case $.RIGHT_SQUARE_BRACKET: {\n this.state = State.CDATA_SECTION_BRACKET;\n break;\n }\n case $.EOF: {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n break;\n }\n default: {\n this._emitCodePoint(cp);\n }\n }\n }\n // CDATA section bracket state\n //------------------------------------------------------------------\n _stateCdataSectionBracket(cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = State.CDATA_SECTION_END;\n }\n else {\n this._emitChars(']');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n // CDATA section end state\n //------------------------------------------------------------------\n _stateCdataSectionEnd(cp) {\n switch (cp) {\n case $.GREATER_THAN_SIGN: {\n this.state = State.DATA;\n break;\n }\n case $.RIGHT_SQUARE_BRACKET: {\n this._emitChars(']');\n break;\n }\n default: {\n this._emitChars(']]');\n this.state = State.CDATA_SECTION;\n this._stateCdataSection(cp);\n }\n }\n }\n // Character reference state\n //------------------------------------------------------------------\n _stateCharacterReference(cp) {\n if (cp === $.NUMBER_SIGN) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE;\n }\n else if (isAsciiAlphaNumeric(cp)) {\n this.state = State.NAMED_CHARACTER_REFERENCE;\n this._stateNamedCharacterReference(cp);\n }\n else {\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Named character reference state\n //------------------------------------------------------------------\n _stateNamedCharacterReference(cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n //NOTE: Matching can be abrupted by hibernation. In that case, match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n // Stay in the state, try again.\n }\n else if (matchResult) {\n for (let i = 0; i < matchResult.length; i++) {\n this._flushCodePointConsumedAsCharacterReference(matchResult[i]);\n }\n this.state = this.returnState;\n }\n else {\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this.state = State.AMBIGUOUS_AMPERSAND;\n }\n }\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n _stateAmbiguousAmpersand(cp) {\n if (isAsciiAlphaNumeric(cp)) {\n this._flushCodePointConsumedAsCharacterReference(cp);\n }\n else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Numeric character reference state\n //------------------------------------------------------------------\n _stateNumericCharacterReference(cp) {\n this.charRefCode = 0;\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.state = State.HEXADEMICAL_CHARACTER_REFERENCE_START;\n }\n // Inlined decimal character reference start state\n else if (isAsciiDigit(cp)) {\n this.state = State.DECIMAL_CHARACTER_REFERENCE;\n this._stateDecimalCharacterReference(cp);\n }\n else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._flushCodePointConsumedAsCharacterReference($.NUMBER_SIGN);\n this._reconsumeInState(this.returnState, cp);\n }\n }\n // Hexademical character reference start state\n //------------------------------------------------------------------\n _stateHexademicalCharacterReferenceStart(cp) {\n if (isAsciiHexDigit(cp)) {\n this.state = State.HEXADEMICAL_CHARACTER_REFERENCE;\n this._stateHexademicalCharacterReference(cp);\n }\n else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointConsumedAsCharacterReference($.AMPERSAND);\n this._flushCodePointConsumedAsCharacterReference($.NUMBER_SIGN);\n this._unconsume(2);\n this.state = this.returnState;\n }\n }\n // Hexademical character reference state\n //------------------------------------------------------------------\n _stateHexademicalCharacterReference(cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n }\n else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n }\n else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n }\n else if (cp === $.SEMICOLON) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n }\n else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n this._stateNumericCharacterReferenceEnd(cp);\n }\n }\n // Decimal character reference state\n //------------------------------------------------------------------\n _stateDecimalCharacterReference(cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n }\n else if (cp === $.SEMICOLON) {\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n }\n else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this.state = State.NUMERIC_CHARACTER_REFERENCE_END;\n this._stateNumericCharacterReferenceEnd(cp);\n }\n }\n // Numeric character reference end state\n //------------------------------------------------------------------\n _stateNumericCharacterReferenceEnd(cp) {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (this.charRefCode > 1114111) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n }\n else if (isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n }\n else if (isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS.get(this.charRefCode);\n if (replacement !== undefined) {\n this.charRefCode = replacement;\n }\n }\n this._flushCodePointConsumedAsCharacterReference(this.charRefCode);\n this._reconsumeInState(this.returnState, cp);\n }\n}\n//# sourceMappingURL=index.js.map","import { TAG_ID as $, NS, isNumberedHeader } from '../common/html.js';\n//Element utils\nconst IMPLICIT_END_TAG_REQUIRED = new Set([$.DD, $.DT, $.LI, $.OPTGROUP, $.OPTION, $.P, $.RB, $.RP, $.RT, $.RTC]);\nconst IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([\n ...IMPLICIT_END_TAG_REQUIRED,\n $.CAPTION,\n $.COLGROUP,\n $.TBODY,\n $.TD,\n $.TFOOT,\n $.TH,\n $.THEAD,\n $.TR,\n]);\nconst SCOPING_ELEMENT_NS = new Map([\n [$.APPLET, NS.HTML],\n [$.CAPTION, NS.HTML],\n [$.HTML, NS.HTML],\n [$.MARQUEE, NS.HTML],\n [$.OBJECT, NS.HTML],\n [$.TABLE, NS.HTML],\n [$.TD, NS.HTML],\n [$.TEMPLATE, NS.HTML],\n [$.TH, NS.HTML],\n [$.ANNOTATION_XML, NS.MATHML],\n [$.MI, NS.MATHML],\n [$.MN, NS.MATHML],\n [$.MO, NS.MATHML],\n [$.MS, NS.MATHML],\n [$.MTEXT, NS.MATHML],\n [$.DESC, NS.SVG],\n [$.FOREIGN_OBJECT, NS.SVG],\n [$.TITLE, NS.SVG],\n]);\nconst NAMED_HEADERS = [$.H1, $.H2, $.H3, $.H4, $.H5, $.H6];\nconst TABLE_ROW_CONTEXT = [$.TR, $.TEMPLATE, $.HTML];\nconst TABLE_BODY_CONTEXT = [$.TBODY, $.TFOOT, $.THEAD, $.TEMPLATE, $.HTML];\nconst TABLE_CONTEXT = [$.TABLE, $.TEMPLATE, $.HTML];\nconst TABLE_CELLS = [$.TD, $.TH];\n//Stack of open elements\nexport class OpenElementStack {\n get currentTmplContentOrNode() {\n return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;\n }\n constructor(document, treeAdapter, handler) {\n this.treeAdapter = treeAdapter;\n this.handler = handler;\n this.items = [];\n this.tagIDs = [];\n this.stackTop = -1;\n this.tmplCount = 0;\n this.currentTagId = $.UNKNOWN;\n this.current = document;\n }\n //Index of element\n _indexOf(element) {\n return this.items.lastIndexOf(element, this.stackTop);\n }\n //Update current element\n _isInTemplate() {\n return this.currentTagId === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagId = this.tagIDs[this.stackTop];\n }\n //Mutations\n push(element, tagID) {\n this.stackTop++;\n this.items[this.stackTop] = element;\n this.current = element;\n this.tagIDs[this.stackTop] = tagID;\n this.currentTagId = tagID;\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n this.handler.onItemPush(element, tagID, true);\n }\n pop() {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, true);\n }\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n this.items[idx] = newElement;\n if (idx === this.stackTop) {\n this.current = newElement;\n }\n }\n insertAfter(referenceElement, newElement, newElementID) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n this.items.splice(insertionIdx, 0, newElement);\n this.tagIDs.splice(insertionIdx, 0, newElementID);\n this.stackTop++;\n if (insertionIdx === this.stackTop) {\n this._updateCurrentElement();\n }\n this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);\n }\n popUntilTagNamePopped(tagName) {\n let targetIdx = this.stackTop + 1;\n do {\n targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);\n } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);\n this.shortenToLength(targetIdx < 0 ? 0 : targetIdx);\n }\n shortenToLength(idx) {\n while (this.stackTop >= idx) {\n const popped = this.current;\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount -= 1;\n }\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(popped, this.stackTop < idx);\n }\n }\n popUntilElementPopped(element) {\n const idx = this._indexOf(element);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilPopped(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx < 0 ? 0 : idx);\n }\n popUntilNumberedHeaderPopped() {\n this.popUntilPopped(NAMED_HEADERS, NS.HTML);\n }\n popUntilTableCellPopped() {\n this.popUntilPopped(TABLE_CELLS, NS.HTML);\n }\n popAllUpToHtmlElement() {\n //NOTE: here we assume that the root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.tmplCount = 0;\n this.shortenToLength(1);\n }\n _indexOfTagNames(tagNames, namespace) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (tagNames.includes(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {\n return i;\n }\n }\n return -1;\n }\n clearBackTo(tagNames, targetNS) {\n const idx = this._indexOfTagNames(tagNames, targetNS);\n this.shortenToLength(idx + 1);\n }\n clearBackToTableContext() {\n this.clearBackTo(TABLE_CONTEXT, NS.HTML);\n }\n clearBackToTableBodyContext() {\n this.clearBackTo(TABLE_BODY_CONTEXT, NS.HTML);\n }\n clearBackToTableRowContext() {\n this.clearBackTo(TABLE_ROW_CONTEXT, NS.HTML);\n }\n remove(element) {\n const idx = this._indexOf(element);\n if (idx >= 0) {\n if (idx === this.stackTop) {\n this.pop();\n }\n else {\n this.items.splice(idx, 1);\n this.tagIDs.splice(idx, 1);\n this.stackTop--;\n this._updateCurrentElement();\n this.handler.onItemPop(element, false);\n }\n }\n }\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n return this.stackTop >= 1 && this.tagIDs[1] === $.BODY ? this.items[1] : null;\n }\n contains(element) {\n return this._indexOf(element) > -1;\n }\n getCommonAncestor(element) {\n const elementIdx = this._indexOf(element) - 1;\n return elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.tagIDs[0] === $.HTML;\n }\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if (SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (isNumberedHeader(tn) && ns === NS.HTML) {\n return true;\n }\n if (SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n if ((tn === $.BUTTON && ns === NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {\n return false;\n }\n }\n return true;\n }\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === tagName) {\n return true;\n }\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n return true;\n }\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n return true;\n }\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.tagIDs[i];\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n if (ns !== NS.HTML) {\n continue;\n }\n if (tn === tagName) {\n return true;\n }\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n return true;\n }\n //Implied end tags\n generateImpliedEndTags() {\n while (IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsThoroughly() {\n while (IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n generateImpliedEndTagsWithExclusion(exclusionId) {\n while (this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {\n this.pop();\n }\n }\n}\n//# sourceMappingURL=open-element-stack.js.map","//Const\nconst NOAH_ARK_CAPACITY = 3;\nexport var EntryType;\n(function (EntryType) {\n EntryType[EntryType[\"Marker\"] = 0] = \"Marker\";\n EntryType[EntryType[\"Element\"] = 1] = \"Element\";\n})(EntryType = EntryType || (EntryType = {}));\nconst MARKER = { type: EntryType.Marker };\n//List of formatting elements\nexport class FormattingElementList {\n constructor(treeAdapter) {\n this.treeAdapter = treeAdapter;\n this.entries = [];\n this.bookmark = null;\n }\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement, neAttrs) {\n const candidates = [];\n const neAttrsLength = neAttrs.length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n for (let i = 0; i < this.entries.length; i++) {\n const entry = this.entries[i];\n if (entry.type === EntryType.Marker) {\n break;\n }\n const { element } = entry;\n if (this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI) {\n const elementAttrs = this.treeAdapter.getAttrList(element);\n if (elementAttrs.length === neAttrsLength) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n return candidates;\n }\n _ensureNoahArkCondition(newElement) {\n if (this.entries.length < NOAH_ARK_CAPACITY)\n return;\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const candidates = this._getNoahArkConditionCandidates(newElement, neAttrs);\n if (candidates.length < NOAH_ARK_CAPACITY)\n return;\n //NOTE: build attrs map for the new element, so we can perform fast lookups\n const neAttrsMap = new Map(neAttrs.map((neAttr) => [neAttr.name, neAttr.value]));\n let validCandidates = 0;\n //NOTE: remove bottommost candidates, until Noah's Ark condition will not be met\n for (let i = 0; i < candidates.length; i++) {\n const candidate = candidates[i];\n // We know that `candidate.attrs.length === neAttrs.length`\n if (candidate.attrs.every((cAttr) => neAttrsMap.get(cAttr.name) === cAttr.value)) {\n validCandidates += 1;\n if (validCandidates >= NOAH_ARK_CAPACITY) {\n this.entries.splice(candidate.idx, 1);\n }\n }\n }\n }\n //Mutations\n insertMarker() {\n this.entries.unshift(MARKER);\n }\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n this.entries.unshift({\n type: EntryType.Element,\n element,\n token,\n });\n }\n insertElementAfterBookmark(element, token) {\n const bookmarkIdx = this.entries.indexOf(this.bookmark);\n this.entries.splice(bookmarkIdx, 0, {\n type: EntryType.Element,\n element,\n token,\n });\n }\n removeEntry(entry) {\n const entryIndex = this.entries.indexOf(entry);\n if (entryIndex >= 0) {\n this.entries.splice(entryIndex, 1);\n }\n }\n /**\n * Clears the list of formatting elements up to the last marker.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#clear-the-list-of-active-formatting-elements-up-to-the-last-marker\n */\n clearToLastMarker() {\n const markerIdx = this.entries.indexOf(MARKER);\n if (markerIdx >= 0) {\n this.entries.splice(0, markerIdx + 1);\n }\n else {\n this.entries.length = 0;\n }\n }\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n const entry = this.entries.find((entry) => entry.type === EntryType.Marker || this.treeAdapter.getTagName(entry.element) === tagName);\n return entry && entry.type === EntryType.Element ? entry : null;\n }\n getElementEntry(element) {\n return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);\n }\n}\n//# sourceMappingURL=formatting-element-list.js.map","import { DOCUMENT_MODE } from '../common/html.js';\nfunction createTextNode(value) {\n return {\n nodeName: '#text',\n value,\n parentNode: null,\n };\n}\nexport const defaultTreeAdapter = {\n //Node construction\n createDocument() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: [],\n };\n },\n createDocumentFragment() {\n return {\n nodeName: '#document-fragment',\n childNodes: [],\n };\n },\n createElement(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName,\n attrs,\n namespaceURI,\n childNodes: [],\n parentNode: null,\n };\n },\n createCommentNode(data) {\n return {\n nodeName: '#comment',\n data,\n parentNode: null,\n };\n },\n //Tree mutation\n appendChild(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n },\n insertBefore(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n },\n setTemplateContent(templateElement, contentElement) {\n templateElement.content = contentElement;\n },\n getTemplateContent(templateElement) {\n return templateElement.content;\n },\n setDocumentType(document, name, publicId, systemId) {\n const doctypeNode = document.childNodes.find((node) => node.nodeName === '#documentType');\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n }\n else {\n const node = {\n nodeName: '#documentType',\n name,\n publicId,\n systemId,\n parentNode: null,\n };\n defaultTreeAdapter.appendChild(document, node);\n }\n },\n setDocumentMode(document, mode) {\n document.mode = mode;\n },\n getDocumentMode(document) {\n return document.mode;\n },\n detachNode(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n },\n insertText(parentNode, text) {\n if (parentNode.childNodes.length > 0) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n if (defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n return;\n }\n }\n defaultTreeAdapter.appendChild(parentNode, createTextNode(text));\n },\n insertTextBefore(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) {\n prevNode.value += text;\n }\n else {\n defaultTreeAdapter.insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n },\n adoptAttributes(recipient, attrs) {\n const recipientAttrsMap = new Set(recipient.attrs.map((attr) => attr.name));\n for (let j = 0; j < attrs.length; j++) {\n if (!recipientAttrsMap.has(attrs[j].name)) {\n recipient.attrs.push(attrs[j]);\n }\n }\n },\n //Tree traversing\n getFirstChild(node) {\n return node.childNodes[0];\n },\n getChildNodes(node) {\n return node.childNodes;\n },\n getParentNode(node) {\n return node.parentNode;\n },\n getAttrList(element) {\n return element.attrs;\n },\n //Node data\n getTagName(element) {\n return element.tagName;\n },\n getNamespaceURI(element) {\n return element.namespaceURI;\n },\n getTextNodeContent(textNode) {\n return textNode.value;\n },\n getCommentNodeContent(commentNode) {\n return commentNode.data;\n },\n getDocumentTypeNodeName(doctypeNode) {\n return doctypeNode.name;\n },\n getDocumentTypeNodePublicId(doctypeNode) {\n return doctypeNode.publicId;\n },\n getDocumentTypeNodeSystemId(doctypeNode) {\n return doctypeNode.systemId;\n },\n //Node types\n isTextNode(node) {\n return node.nodeName === '#text';\n },\n isCommentNode(node) {\n return node.nodeName === '#comment';\n },\n isDocumentTypeNode(node) {\n return node.nodeName === '#documentType';\n },\n isElementNode(node) {\n return Object.prototype.hasOwnProperty.call(node, 'tagName');\n },\n // Source code location\n setNodeSourceCodeLocation(node, location) {\n node.sourceCodeLocation = location;\n },\n getNodeSourceCodeLocation(node) {\n return node.sourceCodeLocation;\n },\n updateNodeSourceCodeLocation(node, endLocation) {\n node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation };\n },\n};\n//# sourceMappingURL=default.js.map","import { DOCUMENT_MODE } from './html.js';\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//',\n];\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...QUIRKS_MODE_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\nconst QUIRKS_MODE_PUBLIC_IDS = new Set([\n '-//w3o//dtd w3 html strict 3.0//en//',\n '-/w3c/dtd html 4.0 transitional/en',\n 'html',\n]);\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = [\n ...LIMITED_QUIRKS_PUBLIC_ID_PREFIXES,\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//',\n];\n//Utils\nfunction hasPrefix(publicId, prefixes) {\n return prefixes.some((prefix) => publicId.startsWith(prefix));\n}\n//API\nexport function isConforming(token) {\n return (token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID));\n}\nexport function getDocumentMode(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n const { systemId } = token;\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let { publicId } = token;\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n if (QUIRKS_MODE_PUBLIC_IDS.has(publicId)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n return DOCUMENT_MODE.NO_QUIRKS;\n}\n//# sourceMappingURL=doctype.js.map","import { TAG_ID as $, NS, ATTRS, getTagID } from './html.js';\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml',\n};\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = new Map([\n 'attributeName',\n 'attributeType',\n 'baseFrequency',\n 'baseProfile',\n 'calcMode',\n 'clipPathUnits',\n 'diffuseConstant',\n 'edgeMode',\n 'filterUnits',\n 'glyphRef',\n 'gradientTransform',\n 'gradientUnits',\n 'kernelMatrix',\n 'kernelUnitLength',\n 'keyPoints',\n 'keySplines',\n 'keyTimes',\n 'lengthAdjust',\n 'limitingConeAngle',\n 'markerHeight',\n 'markerUnits',\n 'markerWidth',\n 'maskContentUnits',\n 'maskUnits',\n 'numOctaves',\n 'pathLength',\n 'patternContentUnits',\n 'patternTransform',\n 'patternUnits',\n 'pointsAtX',\n 'pointsAtY',\n 'pointsAtZ',\n 'preserveAlpha',\n 'preserveAspectRatio',\n 'primitiveUnits',\n 'refX',\n 'refY',\n 'repeatCount',\n 'repeatDur',\n 'requiredExtensions',\n 'requiredFeatures',\n 'specularConstant',\n 'specularExponent',\n 'spreadMethod',\n 'startOffset',\n 'stdDeviation',\n 'stitchTiles',\n 'surfaceScale',\n 'systemLanguage',\n 'tableValues',\n 'targetX',\n 'targetY',\n 'textLength',\n 'viewBox',\n 'viewTarget',\n 'xChannelSelector',\n 'yChannelSelector',\n 'zoomAndPan',\n].map((attr) => [attr.toLowerCase(), attr]));\nconst XML_ATTRS_ADJUSTMENT_MAP = new Map([\n ['xlink:actuate', { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK }],\n ['xlink:arcrole', { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK }],\n ['xlink:href', { prefix: 'xlink', name: 'href', namespace: NS.XLINK }],\n ['xlink:role', { prefix: 'xlink', name: 'role', namespace: NS.XLINK }],\n ['xlink:show', { prefix: 'xlink', name: 'show', namespace: NS.XLINK }],\n ['xlink:title', { prefix: 'xlink', name: 'title', namespace: NS.XLINK }],\n ['xlink:type', { prefix: 'xlink', name: 'type', namespace: NS.XLINK }],\n ['xml:base', { prefix: 'xml', name: 'base', namespace: NS.XML }],\n ['xml:lang', { prefix: 'xml', name: 'lang', namespace: NS.XML }],\n ['xml:space', { prefix: 'xml', name: 'space', namespace: NS.XML }],\n ['xmlns', { prefix: '', name: 'xmlns', namespace: NS.XMLNS }],\n ['xmlns:xlink', { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }],\n]);\n//SVG tag names adjustment map\nexport const SVG_TAG_NAMES_ADJUSTMENT_MAP = new Map([\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n].map((tn) => [tn.toLowerCase(), tn]));\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = new Set([\n $.B,\n $.BIG,\n $.BLOCKQUOTE,\n $.BODY,\n $.BR,\n $.CENTER,\n $.CODE,\n $.DD,\n $.DIV,\n $.DL,\n $.DT,\n $.EM,\n $.EMBED,\n $.H1,\n $.H2,\n $.H3,\n $.H4,\n $.H5,\n $.H6,\n $.HEAD,\n $.HR,\n $.I,\n $.IMG,\n $.LI,\n $.LISTING,\n $.MENU,\n $.META,\n $.NOBR,\n $.OL,\n $.P,\n $.PRE,\n $.RUBY,\n $.S,\n $.SMALL,\n $.SPAN,\n $.STRONG,\n $.STRIKE,\n $.SUB,\n $.SUP,\n $.TABLE,\n $.TT,\n $.U,\n $.UL,\n $.VAR,\n]);\n//Check exit from foreign content\nexport function causesExit(startTagToken) {\n const tn = startTagToken.tagID;\n const isFontWithAttrs = tn === $.FONT &&\n startTagToken.attrs.some(({ name }) => name === ATTRS.COLOR || name === ATTRS.SIZE || name === ATTRS.FACE);\n return isFontWithAttrs || EXITS_FOREIGN_CONTENT.has(tn);\n}\n//Token adjustments\nexport function adjustTokenMathMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n}\nexport function adjustTokenSVGAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrName != null) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n}\nexport function adjustTokenXMLAttrs(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP.get(token.attrs[i].name);\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n}\nexport function adjustTokenSVGTagName(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(token.tagName);\n if (adjustedTagName != null) {\n token.tagName = adjustedTagName;\n token.tagID = getTagID(token.tagName);\n }\n}\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\nexport function isIntegrationPoint(tn, ns, attrs, foreignNS) {\n return (((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||\n ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));\n}\n//# sourceMappingURL=foreign-content.js.map","import { Tokenizer, TokenizerMode } from '../tokenizer/index.js';\nimport { OpenElementStack } from './open-element-stack.js';\nimport { FormattingElementList, EntryType } from './formatting-element-list.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\nimport * as doctype from '../common/doctype.js';\nimport * as foreignContent from '../common/foreign-content.js';\nimport { ERR } from '../common/error-codes.js';\nimport * as unicode from '../common/unicode.js';\nimport { TAG_ID as $, TAG_NAMES as TN, NS, ATTRS, SPECIAL_ELEMENTS, DOCUMENT_MODE, isNumberedHeader, getTagID, } from '../common/html.js';\nimport { TokenType, getTokenAttr, } from '../common/token.js';\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n//Insertion modes\nvar InsertionMode;\n(function (InsertionMode) {\n InsertionMode[InsertionMode[\"INITIAL\"] = 0] = \"INITIAL\";\n InsertionMode[InsertionMode[\"BEFORE_HTML\"] = 1] = \"BEFORE_HTML\";\n InsertionMode[InsertionMode[\"BEFORE_HEAD\"] = 2] = \"BEFORE_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD\"] = 3] = \"IN_HEAD\";\n InsertionMode[InsertionMode[\"IN_HEAD_NO_SCRIPT\"] = 4] = \"IN_HEAD_NO_SCRIPT\";\n InsertionMode[InsertionMode[\"AFTER_HEAD\"] = 5] = \"AFTER_HEAD\";\n InsertionMode[InsertionMode[\"IN_BODY\"] = 6] = \"IN_BODY\";\n InsertionMode[InsertionMode[\"TEXT\"] = 7] = \"TEXT\";\n InsertionMode[InsertionMode[\"IN_TABLE\"] = 8] = \"IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TABLE_TEXT\"] = 9] = \"IN_TABLE_TEXT\";\n InsertionMode[InsertionMode[\"IN_CAPTION\"] = 10] = \"IN_CAPTION\";\n InsertionMode[InsertionMode[\"IN_COLUMN_GROUP\"] = 11] = \"IN_COLUMN_GROUP\";\n InsertionMode[InsertionMode[\"IN_TABLE_BODY\"] = 12] = \"IN_TABLE_BODY\";\n InsertionMode[InsertionMode[\"IN_ROW\"] = 13] = \"IN_ROW\";\n InsertionMode[InsertionMode[\"IN_CELL\"] = 14] = \"IN_CELL\";\n InsertionMode[InsertionMode[\"IN_SELECT\"] = 15] = \"IN_SELECT\";\n InsertionMode[InsertionMode[\"IN_SELECT_IN_TABLE\"] = 16] = \"IN_SELECT_IN_TABLE\";\n InsertionMode[InsertionMode[\"IN_TEMPLATE\"] = 17] = \"IN_TEMPLATE\";\n InsertionMode[InsertionMode[\"AFTER_BODY\"] = 18] = \"AFTER_BODY\";\n InsertionMode[InsertionMode[\"IN_FRAMESET\"] = 19] = \"IN_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_FRAMESET\"] = 20] = \"AFTER_FRAMESET\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_BODY\"] = 21] = \"AFTER_AFTER_BODY\";\n InsertionMode[InsertionMode[\"AFTER_AFTER_FRAMESET\"] = 22] = \"AFTER_AFTER_FRAMESET\";\n})(InsertionMode || (InsertionMode = {}));\nconst BASE_LOC = {\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1,\n};\nconst TABLE_STRUCTURE_TAGS = new Set([$.TABLE, $.TBODY, $.TFOOT, $.THEAD, $.TR]);\nconst defaultParserOptions = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n treeAdapter: defaultTreeAdapter,\n onParseError: null,\n};\n//Parser\nexport class Parser {\n constructor(options, document, fragmentContext = null, scriptHandler = null) {\n this.fragmentContext = fragmentContext;\n this.scriptHandler = scriptHandler;\n this.currentToken = null;\n this.stopped = false;\n this.insertionMode = InsertionMode.INITIAL;\n this.originalInsertionMode = InsertionMode.INITIAL;\n this.headElement = null;\n this.formElement = null;\n /** Indicates that the current node is not an element in the HTML namespace */\n this.currentNotInHTML = false;\n /**\n * The template insertion mode stack is maintained from the left.\n * Ie. the topmost element will always have index 0.\n */\n this.tmplInsertionModeStack = [];\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n this.options = {\n ...defaultParserOptions,\n ...options,\n };\n this.treeAdapter = this.options.treeAdapter;\n this.onParseError = this.options.onParseError;\n // Always enable location info if we report parse errors.\n if (this.onParseError) {\n this.options.sourceCodeLocationInfo = true;\n }\n this.document = document !== null && document !== void 0 ? document : this.treeAdapter.createDocument();\n this.tokenizer = new Tokenizer(this.options, this);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : $.UNKNOWN;\n this._setContextModes(fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : this.document, this.fragmentContextID);\n this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);\n }\n // API\n static parse(html, options) {\n const parser = new this(options);\n parser.tokenizer.write(html, true);\n return parser.document;\n }\n static getFragmentParser(fragmentContext, options) {\n const opts = {\n ...defaultParserOptions,\n ...options,\n };\n //NOTE: use a <template> element as the fragment context if no context element was provided,\n //so we will parse in a \"forgiving\" manner\n fragmentContext !== null && fragmentContext !== void 0 ? fragmentContext : (fragmentContext = opts.treeAdapter.createElement(TN.TEMPLATE, NS.HTML, []));\n //NOTE: create a fake element which will be used as the `document` for fragment parsing.\n //This is important for jsdom, where a new `document` cannot be created. This led to\n //fragment parsing messing with the main `document`.\n const documentMock = opts.treeAdapter.createElement('documentmock', NS.HTML, []);\n const parser = new this(opts, documentMock, fragmentContext);\n if (parser.fragmentContextID === $.TEMPLATE) {\n parser.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n }\n parser._initTokenizerForFragmentParsing();\n parser._insertFakeRootElement();\n parser._resetInsertionMode();\n parser._findFormInFragmentContext();\n return parser;\n }\n getFragment() {\n const rootElement = this.treeAdapter.getFirstChild(this.document);\n const fragment = this.treeAdapter.createDocumentFragment();\n this._adoptNodes(rootElement, fragment);\n return fragment;\n }\n //Errors\n _err(token, code, beforeToken) {\n var _a;\n if (!this.onParseError)\n return;\n const loc = (_a = token.location) !== null && _a !== void 0 ? _a : BASE_LOC;\n const err = {\n code,\n startLine: loc.startLine,\n startCol: loc.startCol,\n startOffset: loc.startOffset,\n endLine: beforeToken ? loc.startLine : loc.endLine,\n endCol: beforeToken ? loc.startCol : loc.endCol,\n endOffset: beforeToken ? loc.startOffset : loc.endOffset,\n };\n this.onParseError(err);\n }\n //Stack events\n onItemPush(node, tid, isTop) {\n var _a, _b;\n (_b = (_a = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a, node);\n if (isTop && this.openElements.stackTop > 0)\n this._setContextModes(node, tid);\n }\n onItemPop(node, isTop) {\n var _a, _b;\n if (this.options.sourceCodeLocationInfo) {\n this._setEndLocation(node, this.currentToken);\n }\n (_b = (_a = this.treeAdapter).onItemPop) === null || _b === void 0 ? void 0 : _b.call(_a, node, this.openElements.current);\n if (isTop) {\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n this._setContextModes(current, currentTagId);\n }\n }\n _setContextModes(current, tid) {\n const isHTML = current === this.document || this.treeAdapter.getNamespaceURI(current) === NS.HTML;\n this.currentNotInHTML = !isHTML;\n this.tokenizer.inForeignNode = !isHTML && !this._isIntegrationPoint(tid, current);\n }\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = InsertionMode.TEXT;\n }\n switchToPlaintextParsing() {\n this.insertionMode = InsertionMode.TEXT;\n this.originalInsertionMode = InsertionMode.IN_BODY;\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n }\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n while (node) {\n if (this.treeAdapter.getTagName(node) === TN.FORM) {\n this.formElement = node;\n break;\n }\n node = this.treeAdapter.getParentNode(node);\n }\n }\n _initTokenizerForFragmentParsing() {\n if (!this.fragmentContext || this.treeAdapter.getNamespaceURI(this.fragmentContext) !== NS.HTML) {\n return;\n }\n switch (this.fragmentContextID) {\n case $.TITLE:\n case $.TEXTAREA: {\n this.tokenizer.state = TokenizerMode.RCDATA;\n break;\n }\n case $.STYLE:\n case $.XMP:\n case $.IFRAME:\n case $.NOEMBED:\n case $.NOFRAMES:\n case $.NOSCRIPT: {\n this.tokenizer.state = TokenizerMode.RAWTEXT;\n break;\n }\n case $.SCRIPT: {\n this.tokenizer.state = TokenizerMode.SCRIPT_DATA;\n break;\n }\n case $.PLAINTEXT: {\n this.tokenizer.state = TokenizerMode.PLAINTEXT;\n break;\n }\n default:\n // Do nothing\n }\n }\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n if (token.location) {\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const docTypeNode = documentChildren.find((node) => this.treeAdapter.isDocumentTypeNode(node));\n if (docTypeNode) {\n this.treeAdapter.setNodeSourceCodeLocation(docTypeNode, token.location);\n }\n }\n }\n _attachElementToTree(element, location) {\n if (this.options.sourceCodeLocationInfo) {\n const loc = location && {\n ...location,\n startTag: location,\n };\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n }\n else {\n const parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.appendChild(parent, element);\n }\n }\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n }\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n this._attachElementToTree(element, token.location);\n this.openElements.push(element, token.tagID);\n }\n _insertFakeElement(tagName, tagID) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n this._attachElementToTree(element, null);\n this.openElements.push(element, tagID);\n }\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl, token.location);\n this.openElements.push(tmpl, token.tagID);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(content, null);\n }\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement(TN.HTML, NS.HTML, []);\n if (this.options.sourceCodeLocationInfo)\n this.treeAdapter.setNodeSourceCodeLocation(element, null);\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element, $.HTML);\n }\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n this.treeAdapter.appendChild(parent, commentNode);\n if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n }\n }\n _insertCharacters(token) {\n let parent;\n let beforeElement;\n if (this._shouldFosterParentOnInsertion()) {\n ({ parent, beforeElement } = this._findFosterParentingLocation());\n if (beforeElement) {\n this.treeAdapter.insertTextBefore(parent, token.chars, beforeElement);\n }\n else {\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n else {\n parent = this.openElements.currentTmplContentOrNode;\n this.treeAdapter.insertText(parent, token.chars);\n }\n if (!token.location)\n return;\n const siblings = this.treeAdapter.getChildNodes(parent);\n const textNodeIdx = beforeElement ? siblings.lastIndexOf(beforeElement) : siblings.length;\n const textNode = siblings[textNodeIdx - 1];\n //NOTE: if we have a location assigned by another token, then just update the end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n }\n else if (this.options.sourceCodeLocationInfo) {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n _setEndLocation(element, closingToken) {\n if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n const endLoc = \n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n closingToken.type === TokenType.END_TAG && tn === closingToken.tagName\n ? {\n endTag: { ...ctLoc },\n endLine: ctLoc.endLine,\n endCol: ctLoc.endCol,\n endOffset: ctLoc.endOffset,\n }\n : {\n endLine: ctLoc.startLine,\n endCol: ctLoc.startCol,\n endOffset: ctLoc.startOffset,\n };\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n //Token processing\n shouldProcessStartTagTokenInForeignContent(token) {\n // Check that neither current === document, or ns === NS.HTML\n if (!this.currentNotInHTML)\n return false;\n let current;\n let currentTagId;\n if (this.openElements.stackTop === 0 && this.fragmentContext) {\n current = this.fragmentContext;\n currentTagId = this.fragmentContextID;\n }\n else {\n ({ current, currentTagId } = this.openElements);\n }\n if (token.tagID === $.SVG &&\n this.treeAdapter.getTagName(current) === TN.ANNOTATION_XML &&\n this.treeAdapter.getNamespaceURI(current) === NS.MATHML) {\n return false;\n }\n return (\n // Check that `current` is not an integration point for HTML or MathML elements.\n this.tokenizer.inForeignNode ||\n // If it _is_ an integration point, then we might have to check that it is not an HTML\n // integration point.\n ((token.tagID === $.MGLYPH || token.tagID === $.MALIGNMARK) &&\n !this._isIntegrationPoint(currentTagId, current, NS.HTML)));\n }\n _processToken(token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n this.onCharacter(token);\n break;\n }\n case TokenType.NULL_CHARACTER: {\n this.onNullCharacter(token);\n break;\n }\n case TokenType.COMMENT: {\n this.onComment(token);\n break;\n }\n case TokenType.DOCTYPE: {\n this.onDoctype(token);\n break;\n }\n case TokenType.START_TAG: {\n this._processStartTag(token);\n break;\n }\n case TokenType.END_TAG: {\n this.onEndTag(token);\n break;\n }\n case TokenType.EOF: {\n this.onEof(token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n this.onWhitespaceCharacter(token);\n break;\n }\n }\n }\n //Integration points\n _isIntegrationPoint(tid, element, foreignNS) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n return foreignContent.isIntegrationPoint(tid, ns, attrs, foreignNS);\n }\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.entries.length;\n if (listLength) {\n const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element));\n const unopenIdx = endIndex < 0 ? listLength - 1 : endIndex - 1;\n for (let i = unopenIdx; i >= 0; i--) {\n const entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = InsertionMode.IN_ROW;\n }\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n //Insertion mode reset map\n switch (i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i]) {\n case $.TR: {\n this.insertionMode = InsertionMode.IN_ROW;\n return;\n }\n case $.TBODY:\n case $.THEAD:\n case $.TFOOT: {\n this.insertionMode = InsertionMode.IN_TABLE_BODY;\n return;\n }\n case $.CAPTION: {\n this.insertionMode = InsertionMode.IN_CAPTION;\n return;\n }\n case $.COLGROUP: {\n this.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n return;\n }\n case $.TABLE: {\n this.insertionMode = InsertionMode.IN_TABLE;\n return;\n }\n case $.BODY: {\n this.insertionMode = InsertionMode.IN_BODY;\n return;\n }\n case $.FRAMESET: {\n this.insertionMode = InsertionMode.IN_FRAMESET;\n return;\n }\n case $.SELECT: {\n this._resetInsertionModeForSelect(i);\n return;\n }\n case $.TEMPLATE: {\n this.insertionMode = this.tmplInsertionModeStack[0];\n return;\n }\n case $.HTML: {\n this.insertionMode = this.headElement ? InsertionMode.AFTER_HEAD : InsertionMode.BEFORE_HEAD;\n return;\n }\n case $.TD:\n case $.TH: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_CELL;\n return;\n }\n break;\n }\n case $.HEAD: {\n if (i > 0) {\n this.insertionMode = InsertionMode.IN_HEAD;\n return;\n }\n break;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_BODY;\n }\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const tn = this.openElements.tagIDs[i];\n if (tn === $.TEMPLATE) {\n break;\n }\n else if (tn === $.TABLE) {\n this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;\n return;\n }\n }\n }\n this.insertionMode = InsertionMode.IN_SELECT;\n }\n //Foster parenting\n _isElementCausesFosterParenting(tn) {\n return TABLE_STRUCTURE_TAGS.has(tn);\n }\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId);\n }\n _findFosterParentingLocation() {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n switch (this.openElements.tagIDs[i]) {\n case $.TEMPLATE: {\n if (this.treeAdapter.getNamespaceURI(openElement) === NS.HTML) {\n return { parent: this.treeAdapter.getTemplateContent(openElement), beforeElement: null };\n }\n break;\n }\n case $.TABLE: {\n const parent = this.treeAdapter.getParentNode(openElement);\n if (parent) {\n return { parent, beforeElement: openElement };\n }\n return { parent: this.openElements.items[i - 1], beforeElement: null };\n }\n default:\n // Do nothing\n }\n }\n return { parent: this.openElements.items[0], beforeElement: null };\n }\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n }\n else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n //Special elements\n _isSpecialElement(element, id) {\n const ns = this.treeAdapter.getNamespaceURI(element);\n return SPECIAL_ELEMENTS[ns].has(id);\n }\n onCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n characterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE: {\n characterInBody(this, token);\n break;\n }\n case InsertionMode.TEXT:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n characterInTableText(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onNullCharacter(token) {\n this.skipNextNewLine = false;\n if (this.tokenizer.inForeignNode) {\n nullCharacterInForeignContent(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n tokenInColumnGroup(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n tokenAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onComment(token) {\n this.skipNextNewLine = false;\n if (this.currentNotInHTML) {\n appendComment(this, token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.INITIAL:\n case InsertionMode.BEFORE_HTML:\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n appendComment(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n appendCommentToRootHtmlElement(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n appendCommentToDocument(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onDoctype(token) {\n this.skipNextNewLine = false;\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n doctypeInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD:\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD: {\n this._err(token, ERR.misplacedDoctype);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onStartTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n this._processStartTag(token);\n if (token.selfClosing && !token.ackSelfClosing) {\n this._err(token, ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n /**\n * Processes a given start tag.\n *\n * `onStartTag` checks if a self-closing tag was recognized. When a token\n * is moved inbetween multiple insertion modes, this check for self-closing\n * could lead to false positives. To avoid this, `_processStartTag` is used\n * for nested calls.\n *\n * @param token The token to process.\n */\n _processStartTag(token) {\n if (this.shouldProcessStartTagTokenInForeignContent(token)) {\n startTagInForeignContent(this, token);\n }\n else {\n this._startTagOutsideForeignContent(token);\n }\n }\n _startTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n startTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n startTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n startTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n startTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n startTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n startTagInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n startTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n startTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n startTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n startTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n startTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n startTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n startTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n startTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n startTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n startTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n startTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n startTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n startTagAfterAfterBody(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n startTagAfterAfterFrameset(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onEndTag(token) {\n this.skipNextNewLine = false;\n this.currentToken = token;\n if (this.currentNotInHTML) {\n endTagInForeignContent(this, token);\n }\n else {\n this._endTagOutsideForeignContent(token);\n }\n }\n _endTagOutsideForeignContent(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n endTagBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n endTagBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n endTagInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n endTagInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n endTagAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY: {\n endTagInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n endTagInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE: {\n endTagInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_CAPTION: {\n endTagInCaption(this, token);\n break;\n }\n case InsertionMode.IN_COLUMN_GROUP: {\n endTagInColumnGroup(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_BODY: {\n endTagInTableBody(this, token);\n break;\n }\n case InsertionMode.IN_ROW: {\n endTagInRow(this, token);\n break;\n }\n case InsertionMode.IN_CELL: {\n endTagInCell(this, token);\n break;\n }\n case InsertionMode.IN_SELECT: {\n endTagInSelect(this, token);\n break;\n }\n case InsertionMode.IN_SELECT_IN_TABLE: {\n endTagInSelectInTable(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n endTagInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY: {\n endTagAfterBody(this, token);\n break;\n }\n case InsertionMode.IN_FRAMESET: {\n endTagInFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_FRAMESET: {\n endTagAfterFrameset(this, token);\n break;\n }\n case InsertionMode.AFTER_AFTER_BODY: {\n tokenAfterAfterBody(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onEof(token) {\n switch (this.insertionMode) {\n case InsertionMode.INITIAL: {\n tokenInInitialMode(this, token);\n break;\n }\n case InsertionMode.BEFORE_HTML: {\n tokenBeforeHtml(this, token);\n break;\n }\n case InsertionMode.BEFORE_HEAD: {\n tokenBeforeHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD: {\n tokenInHead(this, token);\n break;\n }\n case InsertionMode.IN_HEAD_NO_SCRIPT: {\n tokenInHeadNoScript(this, token);\n break;\n }\n case InsertionMode.AFTER_HEAD: {\n tokenAfterHead(this, token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE: {\n eofInBody(this, token);\n break;\n }\n case InsertionMode.TEXT: {\n eofInText(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n tokenInTableText(this, token);\n break;\n }\n case InsertionMode.IN_TEMPLATE: {\n eofInTemplate(this, token);\n break;\n }\n case InsertionMode.AFTER_BODY:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n stopParsing(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n onWhitespaceCharacter(token) {\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n if (token.chars.charCodeAt(0) === unicode.CODE_POINTS.LINE_FEED) {\n if (token.chars.length === 1) {\n return;\n }\n token.chars = token.chars.substr(1);\n }\n }\n if (this.tokenizer.inForeignNode) {\n this._insertCharacters(token);\n return;\n }\n switch (this.insertionMode) {\n case InsertionMode.IN_HEAD:\n case InsertionMode.IN_HEAD_NO_SCRIPT:\n case InsertionMode.AFTER_HEAD:\n case InsertionMode.TEXT:\n case InsertionMode.IN_COLUMN_GROUP:\n case InsertionMode.IN_SELECT:\n case InsertionMode.IN_SELECT_IN_TABLE:\n case InsertionMode.IN_FRAMESET:\n case InsertionMode.AFTER_FRAMESET: {\n this._insertCharacters(token);\n break;\n }\n case InsertionMode.IN_BODY:\n case InsertionMode.IN_CAPTION:\n case InsertionMode.IN_CELL:\n case InsertionMode.IN_TEMPLATE:\n case InsertionMode.AFTER_BODY:\n case InsertionMode.AFTER_AFTER_BODY:\n case InsertionMode.AFTER_AFTER_FRAMESET: {\n whitespaceCharacterInBody(this, token);\n break;\n }\n case InsertionMode.IN_TABLE:\n case InsertionMode.IN_TABLE_BODY:\n case InsertionMode.IN_ROW: {\n characterInTable(this, token);\n break;\n }\n case InsertionMode.IN_TABLE_TEXT: {\n whitespaceCharacterInTableText(this, token);\n break;\n }\n default:\n // Do nothing\n }\n }\n}\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n }\n else if (!p.openElements.hasInScope(token.tagID)) {\n formattingElementEntry = null;\n }\n }\n else {\n genericEndTagInBody(p, token);\n }\n return formattingElementEntry;\n}\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n let idx = p.openElements.stackTop;\n for (; idx >= 0; idx--) {\n const element = p.openElements.items[idx];\n if (element === formattingElementEntry.element) {\n break;\n }\n if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {\n furthestBlock = element;\n }\n }\n if (!furthestBlock) {\n p.openElements.shortenToLength(idx < 0 ? 0 : idx);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n return furthestBlock;\n}\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store the next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n p.openElements.remove(element);\n }\n else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n return lastElement;\n}\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n return newElement;\n}\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const tid = getTagID(tn);\n if (p._isElementCausesFosterParenting(tid)) {\n p._fosterParentElement(lastElement);\n }\n else {\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n if (tid === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const { token } = formattingElementEntry;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n p.activeFormattingElements.insertElementAfterBookmark(newElement, token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement, token.tagID);\n}\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n const formattingElementEntry = aaObtainFormattingElementEntry(p, token);\n if (!formattingElementEntry) {\n break;\n }\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n if (!furthestBlock) {\n break;\n }\n p.activeFormattingElements.bookmark = formattingElementEntry;\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n p.treeAdapter.detachNode(lastElement);\n if (commonAncestor)\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n//Generic token handlers\n//------------------------------------------------------------------\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContentOrNode);\n}\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\nfunction stopParsing(p, token) {\n p.stopped = true;\n // NOTE: Set end locations for elements that remain on the open element stack.\n if (token.location) {\n // NOTE: If we are not in a fragment, `html` and `body` will stay on the stack.\n // This is a problem, as we might overwrite their end position here.\n const target = p.fragmentContext ? 0 : 2;\n for (let i = p.openElements.stackTop; i >= target; i--) {\n p._setEndLocation(p.openElements.items[i], token);\n }\n // Handle `html` and `body`\n if (!p.fragmentContext && p.openElements.stackTop >= 0) {\n const htmlElement = p.openElements.items[0];\n const htmlLocation = p.treeAdapter.getNodeSourceCodeLocation(htmlElement);\n if (htmlLocation && !htmlLocation.endTag) {\n p._setEndLocation(htmlElement, token);\n if (p.openElements.stackTop >= 1) {\n const bodyElement = p.openElements.items[1];\n const bodyLocation = p.treeAdapter.getNodeSourceCodeLocation(bodyElement);\n if (bodyLocation && !bodyLocation.endTag) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n }\n }\n}\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n const mode = token.forceQuirks ? DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n if (!doctype.isConforming(token)) {\n p._err(token, ERR.nonConformingDoctype);\n }\n p.treeAdapter.setDocumentMode(p.document, mode);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n}\nfunction tokenInInitialMode(p, token) {\n p._err(token, ERR.missingDoctype, true);\n p.treeAdapter.setDocumentMode(p.document, DOCUMENT_MODE.QUIRKS);\n p.insertionMode = InsertionMode.BEFORE_HTML;\n p._processToken(token);\n}\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagID === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n }\n else {\n tokenBeforeHtml(p, token);\n }\n}\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagID;\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = InsertionMode.BEFORE_HEAD;\n p._processToken(token);\n}\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.HEAD: {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n default: {\n tokenBeforeHead(p, token);\n }\n }\n}\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagID;\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement(TN.HEAD, $.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TITLE: {\n p._switchToTextParsing(token, TokenizerMode.RCDATA);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n }\n else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_HEAD_NO_SCRIPT;\n }\n break;\n }\n case $.NOFRAMES:\n case $.STYLE: {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n break;\n }\n case $.SCRIPT: {\n p._switchToTextParsing(token, TokenizerMode.SCRIPT_DATA);\n break;\n }\n case $.TEMPLATE: {\n p._insertTemplate(token);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TEMPLATE;\n p.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenInHead(p, token);\n }\n }\n}\nfunction endTagInHead(p, token) {\n switch (token.tagID) {\n case $.HEAD: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n break;\n }\n case $.BODY:\n case $.BR:\n case $.HTML: {\n tokenInHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction templateEndTagInHead(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n if (p.openElements.currentTagId !== $.TEMPLATE) {\n p._err(token, ERR.closingOfElementWithOpenChildElements);\n }\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n }\n else {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n}\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.AFTER_HEAD;\n p._processToken(token);\n}\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BASEFONT:\n case $.BGSOUND:\n case $.HEAD:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.STYLE: {\n startTagInHead(p, token);\n break;\n }\n case $.NOSCRIPT: {\n p._err(token, ERR.nestedNoscriptInHead);\n break;\n }\n default: {\n tokenInHeadNoScript(p, token);\n }\n }\n}\nfunction endTagInHeadNoScript(p, token) {\n switch (token.tagID) {\n case $.NOSCRIPT: {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n break;\n }\n case $.BR: {\n tokenInHeadNoScript(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenInHeadNoScript(p, token) {\n const errCode = token.type === TokenType.EOF ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n p._err(token, errCode);\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_HEAD;\n p._processToken(token);\n}\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.BODY: {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_BODY;\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n break;\n }\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n p._err(token, ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement, $.HEAD);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n break;\n }\n case $.HEAD: {\n p._err(token, ERR.misplacedStartTagForHeadElement);\n break;\n }\n default: {\n tokenAfterHead(p, token);\n }\n }\n}\nfunction endTagAfterHead(p, token) {\n switch (token.tagID) {\n case $.BODY:\n case $.HTML:\n case $.BR: {\n tokenAfterHead(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n p._err(token, ERR.endTagWithoutMatchingOpenElement);\n }\n }\n}\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement(TN.BODY, $.BODY);\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction modeInBody(p, token) {\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInBody(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInBody(p, token);\n break;\n }\n case TokenType.COMMENT: {\n appendComment(p, token);\n break;\n }\n case TokenType.START_TAG: {\n startTagInBody(p, token);\n break;\n }\n case TokenType.END_TAG: {\n endTagInBody(p, token);\n break;\n }\n case TokenType.EOF: {\n eofInBody(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_FRAMESET;\n }\n}\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n if (isNumberedHeader(p.openElements.currentTagId)) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n const tn = token.tagID;\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const elementId = p.openElements.tagIDs[i];\n if ((tn === $.LI && elementId === $.LI) ||\n ((tn === $.DD || tn === $.DT) && (elementId === $.DD || elementId === $.DT))) {\n p.openElements.generateImpliedEndTagsWithExclusion(elementId);\n p.openElements.popUntilTagNamePopped(elementId);\n break;\n }\n if (elementId !== $.ADDRESS &&\n elementId !== $.DIV &&\n elementId !== $.P &&\n p._isSpecialElement(p.openElements.items[i], elementId)) {\n break;\n }\n }\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = TokenizerMode.PLAINTEXT;\n}\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(TN.A);\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\nfunction tableStartTagInBody(p, token) {\n if (p.treeAdapter.getDocumentMode(p.document) !== DOCUMENT_MODE.QUIRKS && p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = InsertionMode.IN_TABLE;\n}\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction isHiddenInput(token) {\n const inputType = getTokenAttr(token, ATTRS.TYPE);\n return inputType != null && inputType.toLowerCase() === HIDDEN_INPUT_TYPE;\n}\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n if (!isHiddenInput(token)) {\n p.framesetOk = false;\n }\n token.ackSelfClosing = true;\n}\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\nfunction imageStartTagInBody(p, token) {\n token.tagName = TN.IMG;\n token.tagID = $.IMG;\n areaStartTagInBody(p, token);\n}\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = TokenizerMode.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = InsertionMode.TEXT;\n}\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, TokenizerMode.RAWTEXT);\n}\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode =\n p.insertionMode === InsertionMode.IN_TABLE ||\n p.insertionMode === InsertionMode.IN_CAPTION ||\n p.insertionMode === InsertionMode.IN_TABLE_BODY ||\n p.insertionMode === InsertionMode.IN_ROW ||\n p.insertionMode === InsertionMode.IN_CELL\n ? InsertionMode.IN_SELECT_IN_TABLE\n : InsertionMode.IN_SELECT;\n}\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n p._insertElement(token, NS.HTML);\n}\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n p._insertElement(token, NS.HTML);\n}\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n }\n else {\n p._insertElement(token, NS.MATHML);\n }\n token.ackSelfClosing = true;\n}\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n }\n else {\n p._insertElement(token, NS.SVG);\n }\n token.ackSelfClosing = true;\n}\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\nfunction startTagInBody(p, token) {\n switch (token.tagID) {\n case $.I:\n case $.S:\n case $.B:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n bStartTagInBody(p, token);\n break;\n }\n case $.A: {\n aStartTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderStartTagInBody(p, token);\n break;\n }\n case $.P:\n case $.DL:\n case $.OL:\n case $.UL:\n case $.DIV:\n case $.DIR:\n case $.NAV:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.DETAILS:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.SECTION:\n case $.SUMMARY:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressStartTagInBody(p, token);\n break;\n }\n case $.LI:\n case $.DD:\n case $.DT: {\n listItemStartTagInBody(p, token);\n break;\n }\n case $.BR:\n case $.IMG:\n case $.WBR:\n case $.AREA:\n case $.EMBED:\n case $.KEYGEN: {\n areaStartTagInBody(p, token);\n break;\n }\n case $.HR: {\n hrStartTagInBody(p, token);\n break;\n }\n case $.RB:\n case $.RTC: {\n rbStartTagInBody(p, token);\n break;\n }\n case $.RT:\n case $.RP: {\n rtStartTagInBody(p, token);\n break;\n }\n case $.PRE:\n case $.LISTING: {\n preStartTagInBody(p, token);\n break;\n }\n case $.XMP: {\n xmpStartTagInBody(p, token);\n break;\n }\n case $.SVG: {\n svgStartTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlStartTagInBody(p, token);\n break;\n }\n case $.BASE:\n case $.LINK:\n case $.META:\n case $.STYLE:\n case $.TITLE:\n case $.SCRIPT:\n case $.BGSOUND:\n case $.BASEFONT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.BODY: {\n bodyStartTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInBody(p, token);\n break;\n }\n case $.NOBR: {\n nobrStartTagInBody(p, token);\n break;\n }\n case $.MATH: {\n mathStartTagInBody(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInBody(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInBody(p, token);\n break;\n }\n case $.PARAM:\n case $.TRACK:\n case $.SOURCE: {\n paramStartTagInBody(p, token);\n break;\n }\n case $.IMAGE: {\n imageStartTagInBody(p, token);\n break;\n }\n case $.BUTTON: {\n buttonStartTagInBody(p, token);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletStartTagInBody(p, token);\n break;\n }\n case $.IFRAME: {\n iframeStartTagInBody(p, token);\n break;\n }\n case $.SELECT: {\n selectStartTagInBody(p, token);\n break;\n }\n case $.OPTION:\n case $.OPTGROUP: {\n optgroupStartTagInBody(p, token);\n break;\n }\n case $.NOEMBED: {\n noembedStartTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n framesetStartTagInBody(p, token);\n break;\n }\n case $.TEXTAREA: {\n textareaStartTagInBody(p, token);\n break;\n }\n case $.NOSCRIPT: {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n }\n else {\n genericStartTagInBody(p, token);\n }\n break;\n }\n case $.PLAINTEXT: {\n plaintextStartTagInBody(p, token);\n break;\n }\n case $.COL:\n case $.TH:\n case $.TD:\n case $.TR:\n case $.HEAD:\n case $.FRAME:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.CAPTION:\n case $.COLGROUP: {\n // Ignore token\n break;\n }\n default: {\n genericStartTagInBody(p, token);\n }\n }\n}\nfunction bodyEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n //NOTE: <body> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n if (bodyElement) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n}\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = InsertionMode.AFTER_BODY;\n endTagAfterBody(p, token);\n }\n}\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const { formElement } = p;\n if (!inTemplate) {\n p.formElement = null;\n }\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n }\n else if (formElement) {\n p.openElements.remove(formElement);\n }\n }\n}\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement(TN.P, $.P);\n }\n p._closePElement();\n}\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagID;\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement(TN.BR, $.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n const tid = token.tagID;\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n const elementId = p.openElements.tagIDs[i];\n // Compare the tag name here, as the tag might not be a known tag with an ID.\n if (tid === elementId && (tid !== $.UNKNOWN || p.treeAdapter.getTagName(element) === tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tid);\n if (p.openElements.stackTop >= i)\n p.openElements.shortenToLength(i);\n break;\n }\n if (p._isSpecialElement(element, elementId)) {\n break;\n }\n }\n}\nfunction endTagInBody(p, token) {\n switch (token.tagID) {\n case $.A:\n case $.B:\n case $.I:\n case $.S:\n case $.U:\n case $.EM:\n case $.TT:\n case $.BIG:\n case $.CODE:\n case $.FONT:\n case $.NOBR:\n case $.SMALL:\n case $.STRIKE:\n case $.STRONG: {\n callAdoptionAgency(p, token);\n break;\n }\n case $.P: {\n pEndTagInBody(p);\n break;\n }\n case $.DL:\n case $.UL:\n case $.OL:\n case $.DIR:\n case $.DIV:\n case $.NAV:\n case $.PRE:\n case $.MAIN:\n case $.MENU:\n case $.ASIDE:\n case $.BUTTON:\n case $.CENTER:\n case $.FIGURE:\n case $.FOOTER:\n case $.HEADER:\n case $.HGROUP:\n case $.DIALOG:\n case $.ADDRESS:\n case $.ARTICLE:\n case $.DETAILS:\n case $.SECTION:\n case $.SUMMARY:\n case $.LISTING:\n case $.FIELDSET:\n case $.BLOCKQUOTE:\n case $.FIGCAPTION: {\n addressEndTagInBody(p, token);\n break;\n }\n case $.LI: {\n liEndTagInBody(p);\n break;\n }\n case $.DD:\n case $.DT: {\n ddEndTagInBody(p, token);\n break;\n }\n case $.H1:\n case $.H2:\n case $.H3:\n case $.H4:\n case $.H5:\n case $.H6: {\n numberedHeaderEndTagInBody(p);\n break;\n }\n case $.BR: {\n brEndTagInBody(p);\n break;\n }\n case $.BODY: {\n bodyEndTagInBody(p, token);\n break;\n }\n case $.HTML: {\n htmlEndTagInBody(p, token);\n break;\n }\n case $.FORM: {\n formEndTagInBody(p);\n break;\n }\n case $.APPLET:\n case $.OBJECT:\n case $.MARQUEE: {\n appletEndTagInBody(p, token);\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default: {\n genericEndTagInBody(p, token);\n }\n }\n}\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStack.length > 0) {\n eofInTemplate(p, token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n var _a;\n if (token.tagID === $.SCRIPT) {\n (_a = p.scriptHandler) === null || _a === void 0 ? void 0 : _a.call(p, p.openElements.current);\n }\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\nfunction eofInText(p, token) {\n p._err(token, ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p.onEof(token);\n}\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n if (TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {\n p.pendingCharacterTokens.length = 0;\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = InsertionMode.IN_TABLE_TEXT;\n switch (token.type) {\n case TokenType.CHARACTER: {\n characterInTableText(p, token);\n break;\n }\n case TokenType.WHITESPACE_CHARACTER: {\n whitespaceCharacterInTableText(p, token);\n break;\n }\n // Ignore null\n }\n }\n else {\n tokenInTable(p, token);\n }\n}\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CAPTION;\n}\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n}\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.COLGROUP, $.COLGROUP);\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n}\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n}\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement(TN.TBODY, $.TBODY);\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n}\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n}\nfunction inputStartTagInTable(p, token) {\n if (isHiddenInput(token)) {\n p._appendElement(token, NS.HTML);\n }\n else {\n tokenInTable(p, token);\n }\n token.ackSelfClosing = true;\n}\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\nfunction startTagInTable(p, token) {\n switch (token.tagID) {\n case $.TD:\n case $.TH:\n case $.TR: {\n tdStartTagInTable(p, token);\n break;\n }\n case $.STYLE:\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n case $.COL: {\n colStartTagInTable(p, token);\n break;\n }\n case $.FORM: {\n formStartTagInTable(p, token);\n break;\n }\n case $.TABLE: {\n tableStartTagInTable(p, token);\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n tbodyStartTagInTable(p, token);\n break;\n }\n case $.INPUT: {\n inputStartTagInTable(p, token);\n break;\n }\n case $.CAPTION: {\n captionStartTagInTable(p, token);\n break;\n }\n case $.COLGROUP: {\n colgroupStartTagInTable(p, token);\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction endTagInTable(p, token) {\n switch (token.tagID) {\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n tokenInTable(p, token);\n }\n }\n}\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n p.fosterParentingEnabled = true;\n // Process token in `In Body` mode\n modeInBody(p, token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\nfunction tokenInTableText(p, token) {\n let i = 0;\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n }\n else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nconst TABLE_VOID_ELEMENTS = new Set([$.CAPTION, $.COL, $.COLGROUP, $.TBODY, $.TD, $.TFOOT, $.TH, $.THEAD, $.TR]);\nfunction startTagInCaption(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCaption(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.CAPTION:\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_TABLE;\n if (tn === $.TABLE) {\n endTagInTable(p, token);\n }\n }\n break;\n }\n case $.BODY:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TBODY:\n case $.TD:\n case $.TFOOT:\n case $.TH:\n case $.THEAD:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.COL: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction endTagInColumnGroup(p, token) {\n switch (token.tagID) {\n case $.COLGROUP: {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n case $.COL: {\n // Ignore token\n break;\n }\n default: {\n tokenInColumnGroup(p, token);\n }\n }\n}\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagId === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n p._processToken(token);\n }\n}\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n switch (token.tagID) {\n case $.TR: {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_ROW;\n break;\n }\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement(TN.TR, $.TR);\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInTableBody(p, token) {\n const tn = token.tagID;\n switch (token.tagID) {\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE;\n endTagInTable(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH:\n case $.TR: {\n // Ignore token\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n switch (token.tagID) {\n case $.TH:\n case $.TD: {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = InsertionMode.IN_CELL;\n p.activeFormattingElements.insertMarker();\n break;\n }\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n }\n break;\n }\n default: {\n startTagInTable(p, token);\n }\n }\n}\nfunction endTagInRow(p, token) {\n switch (token.tagID) {\n case $.TR: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n }\n break;\n }\n case $.TABLE: {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n if (p.openElements.hasInTableScope(token.tagID) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n endTagInTableBody(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML:\n case $.TD:\n case $.TH: {\n // Ignore end tag\n break;\n }\n default: {\n endTagInTable(p, token);\n }\n }\n}\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagID;\n if (TABLE_VOID_ELEMENTS.has(tn)) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n startTagInRow(p, token);\n }\n }\n else {\n startTagInBody(p, token);\n }\n}\nfunction endTagInCell(p, token) {\n const tn = token.tagID;\n switch (tn) {\n case $.TD:\n case $.TH: {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = InsertionMode.IN_ROW;\n }\n break;\n }\n case $.TABLE:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD:\n case $.TR: {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n endTagInRow(p, token);\n }\n break;\n }\n case $.BODY:\n case $.CAPTION:\n case $.COL:\n case $.COLGROUP:\n case $.HTML: {\n // Ignore token\n break;\n }\n default: {\n endTagInBody(p, token);\n }\n }\n}\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.OPTGROUP: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.INPUT:\n case $.KEYGEN:\n case $.TEXTAREA:\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n if (token.tagID !== $.SELECT) {\n p._processStartTag(token);\n }\n }\n break;\n }\n case $.SCRIPT:\n case $.TEMPLATE: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInSelect(p, token) {\n switch (token.tagID) {\n case $.OPTGROUP: {\n if (p.openElements.stackTop > 0 &&\n p.openElements.currentTagId === $.OPTION &&\n p.openElements.tagIDs[p.openElements.stackTop - 1] === $.OPTGROUP) {\n p.openElements.pop();\n }\n if (p.openElements.currentTagId === $.OPTGROUP) {\n p.openElements.pop();\n }\n break;\n }\n case $.OPTION: {\n if (p.openElements.currentTagId === $.OPTION) {\n p.openElements.pop();\n }\n break;\n }\n case $.SELECT: {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n }\n break;\n }\n case $.TEMPLATE: {\n templateEndTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processStartTag(token);\n }\n else {\n startTagInSelect(p, token);\n }\n}\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagID;\n if (tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p.onEndTag(token);\n }\n }\n else {\n endTagInSelect(p, token);\n }\n}\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n switch (token.tagID) {\n // First, handle tags that can start without a mode change\n case $.BASE:\n case $.BASEFONT:\n case $.BGSOUND:\n case $.LINK:\n case $.META:\n case $.NOFRAMES:\n case $.SCRIPT:\n case $.STYLE:\n case $.TEMPLATE:\n case $.TITLE: {\n startTagInHead(p, token);\n break;\n }\n // Re-process the token in the appropriate mode\n case $.CAPTION:\n case $.COLGROUP:\n case $.TBODY:\n case $.TFOOT:\n case $.THEAD: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE;\n p.insertionMode = InsertionMode.IN_TABLE;\n startTagInTable(p, token);\n break;\n }\n case $.COL: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_COLUMN_GROUP;\n p.insertionMode = InsertionMode.IN_COLUMN_GROUP;\n startTagInColumnGroup(p, token);\n break;\n }\n case $.TR: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_TABLE_BODY;\n p.insertionMode = InsertionMode.IN_TABLE_BODY;\n startTagInTableBody(p, token);\n break;\n }\n case $.TD:\n case $.TH: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_ROW;\n p.insertionMode = InsertionMode.IN_ROW;\n startTagInRow(p, token);\n break;\n }\n default: {\n p.tmplInsertionModeStack[0] = InsertionMode.IN_BODY;\n p.insertionMode = InsertionMode.IN_BODY;\n startTagInBody(p, token);\n }\n }\n}\nfunction endTagInTemplate(p, token) {\n if (token.tagID === $.TEMPLATE) {\n templateEndTagInHead(p, token);\n }\n}\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p.tmplInsertionModeStack.shift();\n p._resetInsertionMode();\n p.onEof(token);\n }\n else {\n stopParsing(p, token);\n }\n}\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction endTagAfterBody(p, token) {\n var _a;\n if (token.tagID === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = InsertionMode.AFTER_AFTER_BODY;\n }\n //NOTE: <html> is never popped from the stack, so we need to updated\n //the end location explicitly.\n if (p.options.sourceCodeLocationInfo && p.openElements.tagIDs[0] === $.HTML) {\n p._setEndLocation(p.openElements.items[0], token);\n // Update the body element, if it doesn't have an end tag\n const bodyElement = p.openElements.items[1];\n if (bodyElement && !((_a = p.treeAdapter.getNodeSourceCodeLocation(bodyElement)) === null || _a === void 0 ? void 0 : _a.endTag)) {\n p._setEndLocation(bodyElement, token);\n }\n }\n }\n else {\n tokenAfterBody(p, token);\n }\n}\nfunction tokenAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.FRAMESET: {\n p._insertElement(token, NS.HTML);\n break;\n }\n case $.FRAME: {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagInFrameset(p, token) {\n if (token.tagID === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n if (!p.fragmentContext && p.openElements.currentTagId !== $.FRAMESET) {\n p.insertionMode = InsertionMode.AFTER_FRAMESET;\n }\n }\n}\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\nfunction endTagAfterFrameset(p, token) {\n if (token.tagID === $.HTML) {\n p.insertionMode = InsertionMode.AFTER_AFTER_FRAMESET;\n }\n}\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagID === $.HTML) {\n startTagInBody(p, token);\n }\n else {\n tokenAfterAfterBody(p, token);\n }\n}\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = InsertionMode.IN_BODY;\n modeInBody(p, token);\n}\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n switch (token.tagID) {\n case $.HTML: {\n startTagInBody(p, token);\n break;\n }\n case $.NOFRAMES: {\n startTagInHead(p, token);\n break;\n }\n default:\n // Do nothing\n }\n}\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\nfunction popUntilHtmlOrIntegrationPoint(p) {\n while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {\n p.openElements.pop();\n }\n}\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token)) {\n popUntilHtmlOrIntegrationPoint(p);\n p._startTagOutsideForeignContent(token);\n }\n else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n }\n else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n foreignContent.adjustTokenXMLAttrs(token);\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n }\n else {\n p._insertElement(token, currentNs);\n }\n token.ackSelfClosing = true;\n }\n}\nfunction endTagInForeignContent(p, token) {\n if (token.tagID === $.P || token.tagID === $.BR) {\n popUntilHtmlOrIntegrationPoint(p);\n p._endTagOutsideForeignContent(token);\n return;\n }\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._endTagOutsideForeignContent(token);\n break;\n }\n const tagName = p.treeAdapter.getTagName(element);\n if (tagName.toLowerCase() === token.tagName) {\n //NOTE: update the token tag name for `_setEndLocation`.\n token.tagName = tagName;\n p.openElements.shortenToLength(i);\n break;\n }\n }\n}\n//# sourceMappingURL=index.js.map","import { TAG_NAMES as $, NS, hasUnescapedText } from '../common/html.js';\nimport { escapeText, escapeAttribute } from 'entities/lib/escape.js';\nimport { defaultTreeAdapter } from '../tree-adapters/default.js';\n// Sets\nconst VOID_ELEMENTS = new Set([\n $.AREA,\n $.BASE,\n $.BASEFONT,\n $.BGSOUND,\n $.BR,\n $.COL,\n $.EMBED,\n $.FRAME,\n $.HR,\n $.IMG,\n $.INPUT,\n $.KEYGEN,\n $.LINK,\n $.META,\n $.PARAM,\n $.SOURCE,\n $.TRACK,\n $.WBR,\n]);\nfunction isVoidElement(node, options) {\n return (options.treeAdapter.isElementNode(node) &&\n options.treeAdapter.getNamespaceURI(node) === NS.HTML &&\n VOID_ELEMENTS.has(options.treeAdapter.getTagName(node)));\n}\nconst defaultOpts = { treeAdapter: defaultTreeAdapter, scriptingEnabled: true };\n/**\n * Serializes an AST node to an HTML string.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');\n *\n * // Serializes a document.\n * const html = parse5.serialize(document);\n *\n * // Serializes the <html> element content.\n * const str = parse5.serialize(document.childNodes[1]);\n *\n * console.log(str); //> '<head></head><body>Hi there!</body>'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serialize(node, options) {\n const opts = { ...defaultOpts, ...options };\n if (isVoidElement(node, opts)) {\n return '';\n }\n return serializeChildNodes(node, opts);\n}\n/**\n * Serializes an AST element node to an HTML string, including the element node.\n *\n * @example\n *\n * ```js\n * const parse5 = require('parse5');\n *\n * const document = parse5.parseFragment('<div>Hello, <b>world</b>!</div>');\n *\n * // Serializes the <div> element.\n * const html = parse5.serializeOuter(document.childNodes[0]);\n *\n * console.log(str); //> '<div>Hello, <b>world</b>!</div>'\n * ```\n *\n * @param node Node to serialize.\n * @param options Serialization options.\n */\nexport function serializeOuter(node, options) {\n const opts = { ...defaultOpts, ...options };\n return serializeNode(node, opts);\n}\nfunction serializeChildNodes(parentNode, options) {\n let html = '';\n // Get container of the child nodes\n const container = options.treeAdapter.isElementNode(parentNode) &&\n options.treeAdapter.getTagName(parentNode) === $.TEMPLATE &&\n options.treeAdapter.getNamespaceURI(parentNode) === NS.HTML\n ? options.treeAdapter.getTemplateContent(parentNode)\n : parentNode;\n const childNodes = options.treeAdapter.getChildNodes(container);\n if (childNodes) {\n for (const currentNode of childNodes) {\n html += serializeNode(currentNode, options);\n }\n }\n return html;\n}\nfunction serializeNode(node, options) {\n if (options.treeAdapter.isElementNode(node)) {\n return serializeElement(node, options);\n }\n if (options.treeAdapter.isTextNode(node)) {\n return serializeTextNode(node, options);\n }\n if (options.treeAdapter.isCommentNode(node)) {\n return serializeCommentNode(node, options);\n }\n if (options.treeAdapter.isDocumentTypeNode(node)) {\n return serializeDocumentTypeNode(node, options);\n }\n // Return an empty string for unknown nodes\n return '';\n}\nfunction serializeElement(node, options) {\n const tn = options.treeAdapter.getTagName(node);\n return `<${tn}${serializeAttributes(node, options)}>${isVoidElement(node, options) ? '' : `${serializeChildNodes(node, options)}</${tn}>`}`;\n}\nfunction serializeAttributes(node, { treeAdapter }) {\n let html = '';\n for (const attr of treeAdapter.getAttrList(node)) {\n html += ' ';\n if (!attr.namespace) {\n html += attr.name;\n }\n else\n switch (attr.namespace) {\n case NS.XML: {\n html += `xml:${attr.name}`;\n break;\n }\n case NS.XMLNS: {\n if (attr.name !== 'xmlns') {\n html += 'xmlns:';\n }\n html += attr.name;\n break;\n }\n case NS.XLINK: {\n html += `xlink:${attr.name}`;\n break;\n }\n default: {\n html += `${attr.prefix}:${attr.name}`;\n }\n }\n html += `=\"${escapeAttribute(attr.value)}\"`;\n }\n return html;\n}\nfunction serializeTextNode(node, options) {\n const { treeAdapter } = options;\n const content = treeAdapter.getTextNodeContent(node);\n const parent = treeAdapter.getParentNode(node);\n const parentTn = parent && treeAdapter.isElementNode(parent) && treeAdapter.getTagName(parent);\n return parentTn &&\n treeAdapter.getNamespaceURI(parent) === NS.HTML &&\n hasUnescapedText(parentTn, options.scriptingEnabled)\n ? content\n : escapeText(content);\n}\nfunction serializeCommentNode(node, { treeAdapter }) {\n return `<!--${treeAdapter.getCommentNodeContent(node)}-->`;\n}\nfunction serializeDocumentTypeNode(node, { treeAdapter }) {\n return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`;\n}\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('hast-util-raw').Options} Options\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').ParserOptions<DefaultTreeAdapterMap>} ParserOptions\n * @typedef {import('parse5').Token.CharacterToken} CharacterToken\n * @typedef {import('parse5').Token.CommentToken} CommentToken\n * @typedef {import('parse5').Token.DoctypeToken} DoctypeToken\n * @typedef {import('parse5').Token.Location} Location\n * @typedef {import('parse5').Token.TagToken} TagToken\n *\n * @typedef {import('unist').Point} Point\n */\n\n/**\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Nodes) => undefined} handle\n * Add a hast node to the parser.\n * @property {Options} options\n * User configuration.\n * @property {Parser<DefaultTreeAdapterMap>} parser\n * Current parser.\n * @property {boolean} stitches\n * Whether there are stitches.\n */\n\n/**\n * @typedef Stitch\n * Custom comment-like value we pass through parse5, which contains a\n * replacement node that we’ll swap back in afterwards.\n * @property {'comment'} type\n * Node type.\n * @property {{stitch: Nodes}} value\n * Replacement value.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {Parser, Token, TokenizerMode, html} from 'parse5'\nimport {pointEnd, pointStart} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n// Node types associated with MDX.\n// <https://github.com/mdx-js/mdx/blob/8a56312/packages/mdx/lib/node-types.js>\nconst knownMdxNames = new Set([\n 'mdxFlowExpression',\n 'mdxJsxFlowElement',\n 'mdxJsxTextElement',\n 'mdxTextExpression',\n 'mdxjsEsm'\n])\n\n/** @type {ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Pass a hast tree through an HTML parser, which will fix nesting, and turn\n * raw nodes into actual nodes.\n *\n * @param {Nodes} tree\n * Original hast tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * Parsed again tree.\n */\nexport function raw(tree, options) {\n const document = documentMode(tree)\n /** @type {(node: Nodes, state: State) => undefined} */\n const one = zwitch('type', {\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n unknown\n })\n\n /** @type {State} */\n const state = {\n parser: document\n ? new Parser(parseOptions)\n : Parser.getFragmentParser(undefined, parseOptions),\n handle(node) {\n one(node, state)\n },\n stitches: false,\n options: options || {}\n }\n\n one(tree, state)\n resetTokenizer(state, pointStart())\n\n const p5 = document ? state.parser.document : state.parser.getFragment()\n const result = fromParse5(p5, {\n // To do: support `space`?\n file: state.options.file\n })\n\n if (state.stitches) {\n visit(result, 'comment', function (node, index, parent) {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent && index !== undefined) {\n /** @type {Array<RootContent>} */\n const siblings = parent.children\n // @ts-expect-error: assume the stitch is allowed.\n siblings[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n result.type === 'root' &&\n result.children.length === 1 &&\n result.children[0].type === tree.type\n ) {\n return result.children[0]\n }\n\n return result\n}\n\n/**\n * Transform all nodes\n *\n * @param {Array<RootContent>} nodes\n * hast content.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction all(nodes, state) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n state.handle(nodes[index])\n }\n }\n}\n\n/**\n * Transform a root.\n *\n * @param {Root} node\n * hast root node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction root(node, state) {\n all(node.children, state)\n}\n\n/**\n * Transform an element.\n *\n * @param {Element} node\n * hast element node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction element(node, state) {\n startTag(node, state)\n\n all(node.children, state)\n\n endTag(node, state)\n}\n\n/**\n * Transform a text.\n *\n * @param {Text} node\n * hast text node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction text(node, state) {\n // Allow `DATA` through `PLAINTEXT`,\n // but when hanging in a tag for example,\n // switch back to `DATA`.\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: <https://github.com/inikulin/parse5/blob/46cba43/packages/parse5/lib/tokenizer/index.ts#L58>\n if (state.parser.tokenizer.state > 4) {\n state.parser.tokenizer.state = 0\n }\n\n /** @type {CharacterToken} */\n const token = {\n type: Token.TokenType.CHARACTER,\n chars: node.value,\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a doctype.\n *\n * @param {Doctype} node\n * hast doctype node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction doctype(node, state) {\n /** @type {DoctypeToken} */\n const token = {\n type: Token.TokenType.DOCTYPE,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a stitch.\n *\n * @param {Nodes} node\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction stitch(node, state) {\n // Mark that there are stitches, so we need to walk the tree and revert them.\n state.stitches = true\n\n /** @type {Nodes} */\n const clone = cloneWithoutChildren(node)\n\n // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n // passed through node).\n if ('children' in node && 'children' in clone) {\n // Root in root out.\n const fakeRoot = /** @type {Root} */ (\n raw({type: 'root', children: node.children}, state.options)\n )\n clone.children = fakeRoot.children\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}}, state)\n}\n\n/**\n * Transform a comment (or stitch).\n *\n * @param {Comment | Stitch} node\n * hast comment node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction comment(node, state) {\n /** @type {string} */\n // @ts-expect-error: we pass stitches through.\n const data = node.value\n\n /** @type {CommentToken} */\n const token = {\n type: Token.TokenType.COMMENT,\n data,\n location: createParse5Location(node)\n }\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a raw node.\n *\n * @param {Raw} node\n * hast raw node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction handleRaw(node, state) {\n // Reset preprocessor:\n // See: <https://github.com/inikulin/parse5/blob/6f7ca60/packages/parse5/lib/tokenizer/preprocessor.ts#L18-L31>.\n state.parser.tokenizer.preprocessor.html = ''\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.pos = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastGapPos = -2\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.gapStack = []\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.skipNextNewLine = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastChunkWritten = false\n state.parser.tokenizer.preprocessor.endOfChunkHit = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.isEol = false\n\n // Now pass `node.value`.\n setPoint(state, pointStart(node))\n state.parser.tokenizer.write(node.value, false)\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer._runParsingLoop()\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: <https://github.com/inikulin/parse5/blob/46cba43/packages/parse5/lib/tokenizer/index.ts#L58>\n // Note: a change to `parse5`, which breaks this, was merged but not released.\n // Investigate when it is.\n if (\n state.parser.tokenizer.state === 72 /* NAMED_CHARACTER_REFERENCE */ ||\n state.parser.tokenizer.state === 78 /* NUMERIC_CHARACTER_REFERENCE_END */\n ) {\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastChunkWritten = true\n /** @type {number} */\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n const cp = state.parser.tokenizer._consume()\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer._callState(cp)\n }\n}\n\n/**\n * Crash on an unknown node.\n *\n * @param {unknown} node_\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Never.\n */\nfunction unknown(node_, state) {\n const node = /** @type {Nodes} */ (node_)\n\n if (\n state.options.passThrough &&\n state.options.passThrough.includes(node.type)\n ) {\n stitch(node, state)\n } else {\n let extra = ''\n\n if (knownMdxNames.has(node.type)) {\n extra =\n \". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax\"\n }\n\n throw new Error('Cannot compile `' + node.type + '` node' + extra)\n }\n}\n\n/**\n * Reset the tokenizer of a parser.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction resetTokenizer(state, point) {\n setPoint(state, point)\n\n // Process final characters if they’re still there after hibernating.\n /** @type {CharacterToken} */\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n const token = state.parser.tokenizer.currentCharacterToken\n\n if (token && token.location) {\n token.location.endLine = state.parser.tokenizer.preprocessor.line\n token.location.endCol = state.parser.tokenizer.preprocessor.col + 1\n token.location.endOffset = state.parser.tokenizer.preprocessor.offset + 1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n }\n\n // Reset tokenizer:\n // See: <https://github.com/inikulin/parse5/blob/6f7ca60/packages/parse5/lib/tokenizer/index.ts#L187-L223>.\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.paused = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.inLoop = false\n\n // Note: don’t reset `state`, `inForeignNode`, or `lastStartTagName`, we\n // manually update those when needed.\n state.parser.tokenizer.active = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.returnState = TokenizerMode.DATA\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.charRefCode = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.consumedAfterSnapshot = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentLocation = null\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentCharacterToken = null\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentToken = null\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentAttr = {name: '', value: ''}\n}\n\n/**\n * Set current location.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction setPoint(state, point) {\n if (point && point.offset !== undefined) {\n /** @type {Location} */\n const location = {\n startLine: point.line,\n startCol: point.column,\n startOffset: point.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n }\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lineStartPos = -point.column + 1 // Looks weird, but ensures we get correct positional info.\n state.parser.tokenizer.preprocessor.droppedBufferSize = point.offset\n state.parser.tokenizer.preprocessor.line = point.line\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentLocation = location\n }\n}\n\n/**\n * Emit a start tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction startTag(node, state) {\n const tagName = node.tagName.toLowerCase()\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointStart(node))\n\n const current = state.parser.openElements.current\n let ns = 'namespaceURI' in current ? current.namespaceURI : webNamespaces.html\n\n if (ns === webNamespaces.html && tagName === 'svg') {\n ns = webNamespaces.svg\n }\n\n const result = toParse5(\n // Shallow clone to not delve into `children`: we only need the attributes.\n {...node, children: []},\n {space: ns === webNamespaces.svg ? 'svg' : 'html'}\n )\n\n /** @type {TagToken} */\n const tag = {\n type: Token.TokenType.START_TAG,\n tagName,\n tagID: html.getTagID(tagName),\n // We always send start and end tags.\n selfClosing: false,\n ackSelfClosing: false,\n // Always element.\n /* c8 ignore next */\n attrs: 'attrs' in result ? result.attrs : [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Set a tag name, similar to how the tokenizer would do it.\n state.parser.tokenizer.lastStartTagName = tagName\n\n // `inForeignNode` is correctly set by the parser.\n}\n\n/**\n * Emit an end tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction endTag(node, state) {\n const tagName = node.tagName.toLowerCase()\n // Do not emit closing tags for HTML void elements.\n if (\n !state.parser.tokenizer.inForeignNode &&\n htmlVoidElements.includes(tagName)\n ) {\n return\n }\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointEnd(node))\n\n /** @type {TagToken} */\n const tag = {\n type: Token.TokenType.END_TAG,\n tagName,\n tagID: html.getTagID(tagName),\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Switch back to the data state after alternative states that don’t accept\n // tags:\n if (\n // Current element is closed.\n tagName === state.parser.tokenizer.lastStartTagName &&\n // `<textarea>` and `<title>`\n (state.parser.tokenizer.state === TokenizerMode.RCDATA ||\n // `<iframe>`, `<noembed>`, `<style>`, `<xmp>`\n state.parser.tokenizer.state === TokenizerMode.RAWTEXT ||\n // `<script>`\n state.parser.tokenizer.state === TokenizerMode.SCRIPT_DATA)\n ) {\n state.parser.tokenizer.state = TokenizerMode.DATA\n }\n}\n\n/**\n * Check if `node` represents a whole document or a fragment.\n *\n * @param {Nodes} node\n * hast node.\n * @returns {boolean}\n * Whether this represents a whole document or a fragment.\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName.toLowerCase() === 'html'))\n )\n}\n\n/**\n * Get a `parse5` location from a node.\n *\n * @param {Nodes | Stitch} node\n * hast node.\n * @returns {Location}\n * `parse5` location.\n */\nfunction createParse5Location(node) {\n const start = pointStart(node) || {\n line: undefined,\n column: undefined,\n offset: undefined\n }\n const end = pointEnd(node) || {\n line: undefined,\n column: undefined,\n offset: undefined\n }\n\n /** @type {Record<keyof Location, number | undefined>} */\n const location = {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n\n // @ts-expect-error: unist point values can be `undefined` in hast, which\n // `parse5` types don’t want.\n return location\n}\n\n/**\n * @template {Nodes} NodeType\n * Node type.\n * @param {NodeType} node\n * Node to clone.\n * @returns {NodeType}\n * Cloned node, without children.\n */\nfunction cloneWithoutChildren(node) {\n return 'children' in node\n ? structuredClone({...node, children: []})\n : structuredClone(node)\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} RawOptions\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit<RawOptions, 'file'>} Options\n * Configuration.\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Parse the tree (and raw nodes) again, keeping positional info okay.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeRaw(options) {\n /**\n * @param {Root} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Root}\n * New tree.\n */\n return function (tree, file) {\n // Assume root in -> root out.\n const result = /** @type {Root} */ (raw(tree, {...options, file}))\n return result\n }\n}\n","export var emptyMulticharIndex = {};\nexport var emptyRegularIndex = {};\nfunction extendIndex(item, index) {\n var currentIndex = index;\n for (var pos = 0; pos < item.length; pos++) {\n var isLast = pos === item.length - 1;\n var char = item.charAt(pos);\n var charIndex = currentIndex[char] || (currentIndex[char] = { chars: {} });\n if (isLast) {\n charIndex.self = item;\n }\n currentIndex = charIndex.chars;\n }\n}\nexport function createMulticharIndex(items) {\n if (items.length === 0) {\n return emptyMulticharIndex;\n }\n var index = {};\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n extendIndex(item, index);\n }\n return index;\n}\nexport function createRegularIndex(items) {\n if (items.length === 0) {\n return emptyRegularIndex;\n }\n var result = {};\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var item = items_2[_i];\n result[item] = true;\n }\n return result;\n}\n","export var emptyPseudoSignatures = {};\nexport var defaultPseudoSignature = {\n type: 'String',\n optional: true\n};\nfunction calculatePseudoSignature(types) {\n var result = {\n type: 'NoArgument',\n optional: false\n };\n function setResultType(type) {\n if (result.type && result.type !== type && result.type !== 'NoArgument') {\n throw new Error(\"Conflicting pseudo-class argument type: \\\"\".concat(result.type, \"\\\" vs \\\"\").concat(type, \"\\\".\"));\n }\n result.type = type;\n }\n for (var _i = 0, types_1 = types; _i < types_1.length; _i++) {\n var type = types_1[_i];\n if (type === 'NoArgument') {\n result.optional = true;\n }\n if (type === 'Formula') {\n setResultType('Formula');\n }\n if (type === 'FormulaOfSelector') {\n setResultType('Formula');\n result.ofSelector = true;\n }\n if (type === 'String') {\n setResultType('String');\n }\n if (type === 'Selector') {\n setResultType('Selector');\n }\n }\n return result;\n}\nexport function inverseCategories(obj) {\n var result = {};\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var category = _a[_i];\n var items = obj[category];\n if (items) {\n for (var _b = 0, _c = items; _b < _c.length; _b++) {\n var item = _c[_b];\n (result[item] || (result[item] = [])).push(category);\n }\n }\n }\n return result;\n}\nexport function calculatePseudoSignatures(definitions) {\n var pseudoClassesToArgumentTypes = inverseCategories(definitions);\n var result = {};\n for (var _i = 0, _a = Object.keys(pseudoClassesToArgumentTypes); _i < _a.length; _i++) {\n var pseudoClass = _a[_i];\n var argumentTypes = pseudoClassesToArgumentTypes[pseudoClass];\n if (argumentTypes) {\n result[pseudoClass] = calculatePseudoSignature(argumentTypes);\n }\n }\n return result;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar emptyXmlOptions = {};\nvar defaultXmlOptions = { wildcard: true };\nexport function getXmlOptions(param) {\n if (param) {\n if (typeof param === 'boolean') {\n return defaultXmlOptions;\n }\n else {\n return param;\n }\n }\n else {\n return emptyXmlOptions;\n }\n}\nfunction withMigration(migration, merge) {\n return function (base, extension) { return merge(migration(base), migration(extension)); };\n}\nfunction withNoNegative(merge) {\n return function (base, extension) {\n var result = merge(base, extension);\n if (!result) {\n throw new Error(\"Syntax definition cannot be null or undefined.\");\n }\n return result;\n };\n}\nfunction withPositive(positive, merge) {\n return function (base, extension) {\n if (extension === true) {\n return positive;\n }\n return merge(base === true ? positive : base, extension);\n };\n}\nfunction mergeSection(values) {\n return function (base, extension) {\n if (!extension || !base) {\n return extension;\n }\n if (typeof extension !== 'object' || extension === null) {\n throw new Error(\"Unexpected syntax definition extension type: \".concat(extension, \".\"));\n }\n var result = __assign({}, base);\n for (var _i = 0, _a = Object.entries(extension); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n var mergeSchema = values[key];\n result[key] = mergeSchema(base[key], value);\n }\n return result;\n };\n}\nfunction replaceValueIfSpecified(base, extension) {\n if (extension !== undefined) {\n return extension;\n }\n return base;\n}\nfunction concatArray(base, extension) {\n if (!extension) {\n return base;\n }\n if (!base) {\n return extension;\n }\n return base.concat(extension);\n}\nfunction mergeDefinitions(base, extension) {\n if (!extension) {\n return base;\n }\n if (!base) {\n return extension;\n }\n var result = __assign({}, base);\n for (var _i = 0, _a = Object.entries(extension); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (!value) {\n delete result[key];\n continue;\n }\n var baseValue = base[key];\n if (!baseValue) {\n result[key] = value;\n continue;\n }\n result[key] = baseValue.concat(value);\n }\n return result;\n}\nexport var extendSyntaxDefinition = withNoNegative(mergeSection({\n baseSyntax: replaceValueIfSpecified,\n tag: withPositive(defaultXmlOptions, mergeSection({\n wildcard: replaceValueIfSpecified\n })),\n ids: replaceValueIfSpecified,\n classNames: replaceValueIfSpecified,\n namespace: withPositive(defaultXmlOptions, mergeSection({\n wildcard: replaceValueIfSpecified\n })),\n combinators: concatArray,\n attributes: mergeSection({\n operators: concatArray,\n caseSensitivityModifiers: concatArray,\n unknownCaseSensitivityModifiers: replaceValueIfSpecified\n }),\n pseudoClasses: mergeSection({\n unknown: replaceValueIfSpecified,\n definitions: mergeDefinitions\n }),\n pseudoElements: mergeSection({\n unknown: replaceValueIfSpecified,\n notation: replaceValueIfSpecified,\n definitions: withMigration(function (definitions) { return (Array.isArray(definitions) ? { NoArgument: definitions } : definitions); }, mergeDefinitions)\n })\n}));\nvar css1SyntaxDefinition = {\n tag: {},\n ids: true,\n classNames: true,\n combinators: [],\n pseudoElements: {\n unknown: 'reject',\n notation: 'singleColon',\n definitions: ['first-letter', 'first-line']\n },\n pseudoClasses: {\n unknown: 'reject',\n definitions: {\n NoArgument: ['link', 'visited', 'active']\n }\n }\n};\nvar css2SyntaxDefinition = extendSyntaxDefinition(css1SyntaxDefinition, {\n tag: { wildcard: true },\n combinators: ['>', '+'],\n attributes: {\n unknownCaseSensitivityModifiers: 'reject',\n operators: ['=', '~=', '|=']\n },\n pseudoElements: {\n definitions: ['before', 'after']\n },\n pseudoClasses: {\n unknown: 'reject',\n definitions: {\n NoArgument: ['hover', 'focus', 'first-child'],\n String: ['lang']\n }\n }\n});\nvar selectors3SyntaxDefinition = extendSyntaxDefinition(css2SyntaxDefinition, {\n namespace: {\n wildcard: true\n },\n combinators: ['~'],\n attributes: {\n operators: ['^=', '$=', '*=']\n },\n pseudoElements: {\n notation: 'both'\n },\n pseudoClasses: {\n definitions: {\n NoArgument: [\n 'root',\n 'last-child',\n 'first-of-type',\n 'last-of-type',\n 'only-child',\n 'only-of-type',\n 'empty',\n 'target',\n 'enabled',\n 'disabled',\n 'checked',\n 'indeterminate'\n ],\n Formula: ['nth-child', 'nth-last-child', 'nth-of-type', 'nth-last-of-type'],\n Selector: ['not']\n }\n }\n});\nvar selectors4SyntaxDefinition = extendSyntaxDefinition(selectors3SyntaxDefinition, {\n combinators: ['||'],\n attributes: {\n caseSensitivityModifiers: ['i', 'I', 's', 'S']\n },\n pseudoClasses: {\n definitions: {\n NoArgument: [\n 'any-link',\n 'local-link',\n 'target-within',\n 'scope',\n 'current',\n 'past',\n 'future',\n 'focus-within',\n 'focus-visible',\n 'read-write',\n 'read-only',\n 'placeholder-shown',\n 'default',\n 'valid',\n 'invalid',\n 'in-range',\n 'out-of-range',\n 'required',\n 'optional',\n 'blank',\n 'user-invalid'\n ],\n Formula: ['nth-col', 'nth-last-col'],\n String: ['dir'],\n FormulaOfSelector: ['nth-child', 'nth-last-child'],\n Selector: ['current', 'is', 'where', 'has']\n }\n }\n});\nvar progressiveSyntaxDefinition = extendSyntaxDefinition(selectors4SyntaxDefinition, {\n pseudoElements: {\n unknown: 'accept'\n },\n pseudoClasses: {\n unknown: 'accept'\n },\n attributes: {\n unknownCaseSensitivityModifiers: 'accept'\n }\n});\nexport var cssSyntaxDefinitions = {\n css1: css1SyntaxDefinition,\n css2: css2SyntaxDefinition,\n css3: selectors3SyntaxDefinition,\n 'selectors-3': selectors3SyntaxDefinition,\n 'selectors-4': selectors4SyntaxDefinition,\n latest: selectors4SyntaxDefinition,\n progressive: progressiveSyntaxDefinition\n};\n","export function isIdentStart(c) {\n return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c === '-' || c === '_' || c === '\\\\' || c >= '\\u00a0';\n}\nexport function isIdent(c) {\n return ((c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n c === '-' ||\n c === '_' ||\n c >= '\\u00a0');\n}\nexport function isHex(c) {\n return (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F') || (c >= '0' && c <= '9');\n}\nexport var identEscapeChars = {\n '!': true,\n '\"': true,\n '#': true,\n $: true,\n '%': true,\n '&': true,\n \"'\": true,\n '(': true,\n ')': true,\n '*': true,\n '+': true,\n ',': true,\n '.': true,\n '/': true,\n ';': true,\n '<': true,\n '=': true,\n '>': true,\n '?': true,\n '@': true,\n '[': true,\n '\\\\': true,\n ']': true,\n '^': true,\n '`': true,\n '{': true,\n '|': true,\n '}': true,\n '~': true\n};\nexport var stringRenderEscapeChars = {\n '\\n': true,\n '\\r': true,\n '\\t': true,\n '\\f': true,\n '\\v': true\n};\nexport var whitespaceChars = {\n ' ': true,\n '\\t': true,\n '\\n': true,\n '\\r': true,\n '\\f': true\n};\nexport var quoteChars = {\n '\"': true,\n \"'\": true\n};\nexport var digitsChars = {\n 0: true,\n 1: true,\n 2: true,\n 3: true,\n 4: true,\n 5: true,\n 6: true,\n 7: true,\n 8: true,\n 9: true\n};\nexport var maxHexLength = 6;\nexport function escapeIdentifier(s) {\n var len = s.length;\n var result = '';\n var i = 0;\n while (i < len) {\n var chr = s.charAt(i);\n if (identEscapeChars[chr] || (chr === '-' && i === 1 && s.charAt(0) === '-')) {\n result += '\\\\' + chr;\n }\n else {\n if (chr === '-' ||\n chr === '_' ||\n (chr >= 'A' && chr <= 'Z') ||\n (chr >= 'a' && chr <= 'z') ||\n (chr >= '0' && chr <= '9' && i !== 0 && !(i === 1 && s.charAt(0) === '-'))) {\n result += chr;\n }\n else {\n var charCode = chr.charCodeAt(0);\n if ((charCode & 0xf800) === 0xd800) {\n var extraCharCode = s.charCodeAt(i++);\n if ((charCode & 0xfc00) !== 0xd800 || (extraCharCode & 0xfc00) !== 0xdc00) {\n throw Error('UCS-2(decode): illegal sequence');\n }\n charCode = ((charCode & 0x3ff) << 10) + (extraCharCode & 0x3ff) + 0x10000;\n }\n result += '\\\\' + charCode.toString(16) + ' ';\n }\n }\n i++;\n }\n return result.trim();\n}\nexport function escapeString(s) {\n var len = s.length;\n var result = '';\n var i = 0;\n while (i < len) {\n var chr = s.charAt(i);\n if (chr === '\"') {\n chr = '\\\\\"';\n }\n else if (chr === '\\\\') {\n chr = '\\\\\\\\';\n }\n else if (stringRenderEscapeChars[chr]) {\n chr = '\\\\' + chr.charCodeAt(0).toString(16) + (i === len - 1 ? '' : ' ');\n }\n result += chr;\n i++;\n }\n return \"\\\"\".concat(result, \"\\\"\");\n}\n","import { createMulticharIndex, createRegularIndex, emptyMulticharIndex, emptyRegularIndex } from './indexes.js';\nimport { calculatePseudoSignatures, defaultPseudoSignature, emptyPseudoSignatures } from './pseudo-signatures.js';\nimport { cssSyntaxDefinitions, extendSyntaxDefinition, getXmlOptions } from './syntax-definitions.js';\nimport { digitsChars, isHex, isIdent, isIdentStart, maxHexLength, quoteChars, whitespaceChars } from './utils.js';\nvar errorPrefix = \"css-selector-parser parse error: \";\n/**\n * Creates a parse function to be used later to parse CSS selectors.\n */\nexport function createParser(options) {\n if (options === void 0) { options = {}; }\n var _a = options.syntax, syntax = _a === void 0 ? 'latest' : _a, substitutes = options.substitutes, _b = options.strict, strict = _b === void 0 ? true : _b;\n var syntaxDefinition = typeof syntax === 'object' ? syntax : cssSyntaxDefinitions[syntax];\n if (syntaxDefinition.baseSyntax) {\n syntaxDefinition = extendSyntaxDefinition(cssSyntaxDefinitions[syntaxDefinition.baseSyntax], syntaxDefinition);\n }\n var _c = syntaxDefinition.tag\n ? [true, Boolean(getXmlOptions(syntaxDefinition.tag).wildcard)]\n : [false, false], tagNameEnabled = _c[0], tagNameWildcardEnabled = _c[1];\n var idEnabled = Boolean(syntaxDefinition.ids);\n var classNamesEnabled = Boolean(syntaxDefinition.classNames);\n var namespaceEnabled = Boolean(syntaxDefinition.namespace);\n var namespaceWildcardEnabled = syntaxDefinition.namespace &&\n (syntaxDefinition.namespace === true || syntaxDefinition.namespace.wildcard === true);\n if (namespaceEnabled && !tagNameEnabled) {\n throw new Error(\"\".concat(errorPrefix, \"Namespaces cannot be enabled while tags are disabled.\"));\n }\n var substitutesEnabled = Boolean(substitutes);\n var combinatorsIndex = syntaxDefinition.combinators\n ? createMulticharIndex(syntaxDefinition.combinators)\n : emptyMulticharIndex;\n var _d = syntaxDefinition.attributes\n ? [\n true,\n syntaxDefinition.attributes.operators\n ? createMulticharIndex(syntaxDefinition.attributes.operators)\n : emptyMulticharIndex,\n syntaxDefinition.attributes.caseSensitivityModifiers\n ? createRegularIndex(syntaxDefinition.attributes.caseSensitivityModifiers)\n : emptyRegularIndex,\n syntaxDefinition.attributes.unknownCaseSensitivityModifiers === 'accept'\n ]\n : [false, emptyMulticharIndex, emptyRegularIndex, false], attributesEnabled = _d[0], attributesOperatorsIndex = _d[1], attributesCaseSensitivityModifiers = _d[2], attributesAcceptUnknownCaseSensitivityModifiers = _d[3];\n var attributesCaseSensitivityModifiersEnabled = attributesAcceptUnknownCaseSensitivityModifiers || Object.keys(attributesCaseSensitivityModifiers).length > 0;\n var _e = syntaxDefinition.pseudoClasses\n ? [\n true,\n syntaxDefinition.pseudoClasses.definitions\n ? calculatePseudoSignatures(syntaxDefinition.pseudoClasses.definitions)\n : emptyPseudoSignatures,\n syntaxDefinition.pseudoClasses.unknown === 'accept'\n ]\n : [false, emptyPseudoSignatures, false], pseudoClassesEnabled = _e[0], pseudoClassesDefinitions = _e[1], pseudoClassesAcceptUnknown = _e[2];\n var _f = syntaxDefinition.pseudoElements\n ? [\n true,\n syntaxDefinition.pseudoElements.notation === 'singleColon' ||\n syntaxDefinition.pseudoElements.notation === 'both',\n !syntaxDefinition.pseudoElements.notation ||\n syntaxDefinition.pseudoElements.notation === 'doubleColon' ||\n syntaxDefinition.pseudoElements.notation === 'both',\n syntaxDefinition.pseudoElements.definitions\n ? calculatePseudoSignatures(Array.isArray(syntaxDefinition.pseudoElements.definitions)\n ? { NoArgument: syntaxDefinition.pseudoElements.definitions }\n : syntaxDefinition.pseudoElements.definitions)\n : emptyPseudoSignatures,\n syntaxDefinition.pseudoElements.unknown === 'accept'\n ]\n : [false, false, false, emptyPseudoSignatures, false], pseudoElementsEnabled = _f[0], pseudoElementsSingleColonNotationEnabled = _f[1], pseudoElementsDoubleColonNotationEnabled = _f[2], pseudoElementsDefinitions = _f[3], pseudoElementsAcceptUnknown = _f[4];\n var str = '';\n var l = str.length;\n var pos = 0;\n var chr = '';\n var is = function (comparison) { return chr === comparison; };\n var isTagStart = function () { return is('*') || isIdentStart(chr); };\n var rewind = function (newPos) {\n pos = newPos;\n chr = str.charAt(pos);\n };\n var next = function () {\n pos++;\n chr = str.charAt(pos);\n };\n var readAndNext = function () {\n var current = chr;\n pos++;\n chr = str.charAt(pos);\n return current;\n };\n /** @throws ParserError */\n function fail(errorMessage) {\n var position = Math.min(l - 1, pos);\n var error = new Error(\"\".concat(errorPrefix).concat(errorMessage, \" Pos: \").concat(position, \".\"));\n error.position = position;\n error.name = 'ParserError';\n throw error;\n }\n function assert(condition, errorMessage) {\n if (!condition) {\n return fail(errorMessage);\n }\n }\n var assertNonEof = function () {\n assert(pos < l, 'Unexpected end of input.');\n };\n var isEof = function () { return pos >= l; };\n var pass = function (character) {\n assert(pos < l, \"Expected \\\"\".concat(character, \"\\\" but end of input reached.\"));\n assert(chr === character, \"Expected \\\"\".concat(character, \"\\\" but \\\"\").concat(chr, \"\\\" found.\"));\n pos++;\n chr = str.charAt(pos);\n };\n function matchMulticharIndex(index) {\n var match = matchMulticharIndexPos(index, pos);\n if (match) {\n pos += match.length;\n chr = str.charAt(pos);\n return match;\n }\n }\n function matchMulticharIndexPos(index, subPos) {\n var char = str.charAt(subPos);\n var charIndex = index[char];\n if (charIndex) {\n var subMatch = matchMulticharIndexPos(charIndex.chars, subPos + 1);\n if (subMatch) {\n return subMatch;\n }\n if (charIndex.self) {\n return charIndex.self;\n }\n }\n }\n /**\n * @see https://www.w3.org/TR/css-syntax/#hex-digit-diagram\n */\n function parseHex() {\n var hex = readAndNext();\n var count = 1;\n while (isHex(chr) && count < maxHexLength) {\n hex += readAndNext();\n count++;\n }\n skipSingleWhitespace();\n return String.fromCharCode(parseInt(hex, 16));\n }\n /**\n * @see https://www.w3.org/TR/css-syntax/#string-token-diagram\n */\n function parseString(quote) {\n var result = '';\n pass(quote);\n while (pos < l) {\n if (is(quote)) {\n next();\n return result;\n }\n else if (is('\\\\')) {\n next();\n if (is(quote)) {\n result += quote;\n next();\n }\n else if (chr === '\\n' || chr === '\\f') {\n next();\n }\n else if (chr === '\\r') {\n next();\n if (is('\\n')) {\n next();\n }\n }\n else if (isHex(chr)) {\n result += parseHex();\n }\n else {\n result += chr;\n next();\n }\n }\n else {\n result += chr;\n next();\n }\n }\n return result;\n }\n /**\n * @see https://www.w3.org/TR/css-syntax/#ident-token-diagram\n */\n function parseIdentifier() {\n if (!isIdentStart(chr)) {\n return null;\n }\n var result = '';\n while (is('-')) {\n result += chr;\n next();\n }\n if (result === '-' && !isIdent(chr) && !is('\\\\')) {\n fail('Identifiers cannot consist of a single hyphen.');\n }\n if (strict && result.length >= 2) {\n // Checking this only for strict mode since browsers work fine with these identifiers.\n fail('Identifiers cannot start with two hyphens with strict mode on.');\n }\n if (digitsChars[chr]) {\n fail('Identifiers cannot start with hyphens followed by digits.');\n }\n while (pos < l) {\n if (isIdent(chr)) {\n result += readAndNext();\n }\n else if (is('\\\\')) {\n next();\n assertNonEof();\n if (isHex(chr)) {\n result += parseHex();\n }\n else {\n result += readAndNext();\n }\n }\n else {\n break;\n }\n }\n return result;\n }\n function parsePseudoClassString() {\n var result = '';\n while (pos < l) {\n if (is(')')) {\n break;\n }\n else if (is('\\\\')) {\n next();\n if (isEof() && !strict) {\n return (result + '\\\\').trim();\n }\n assertNonEof();\n if (isHex(chr)) {\n result += parseHex();\n }\n else {\n result += readAndNext();\n }\n }\n else {\n result += readAndNext();\n }\n }\n return result.trim();\n }\n function skipSingleWhitespace() {\n if (chr === ' ' || chr === '\\t' || chr === '\\f' || chr === '\\n') {\n next();\n return;\n }\n if (chr === '\\r') {\n next();\n }\n if (chr === '\\n') {\n next();\n }\n }\n function skipWhitespace() {\n while (whitespaceChars[chr]) {\n next();\n }\n }\n function parseSelector(relative) {\n if (relative === void 0) { relative = false; }\n skipWhitespace();\n var rules = [parseRule(relative)];\n while (is(',')) {\n next();\n skipWhitespace();\n rules.push(parseRule(relative));\n }\n return {\n type: 'Selector',\n rules: rules\n };\n }\n function parseAttribute() {\n pass('[');\n skipWhitespace();\n var attr;\n if (is('|')) {\n assert(namespaceEnabled, 'Namespaces are not enabled.');\n next();\n var name_1 = parseIdentifier();\n assert(name_1, 'Expected attribute name.');\n attr = {\n type: 'Attribute',\n name: name_1,\n namespace: { type: 'NoNamespace' }\n };\n }\n else if (is('*')) {\n assert(namespaceEnabled, 'Namespaces are not enabled.');\n assert(namespaceWildcardEnabled, 'Wildcard namespace is not enabled.');\n next();\n pass('|');\n var name_2 = parseIdentifier();\n assert(name_2, 'Expected attribute name.');\n attr = {\n type: 'Attribute',\n name: name_2,\n namespace: { type: 'WildcardNamespace' }\n };\n }\n else {\n var identifier = parseIdentifier();\n assert(identifier, 'Expected attribute name.');\n attr = {\n type: 'Attribute',\n name: identifier\n };\n if (is('|')) {\n var savedPos = pos;\n next();\n if (isIdentStart(chr)) {\n assert(namespaceEnabled, 'Namespaces are not enabled.');\n var name_3 = parseIdentifier();\n assert(name_3, 'Expected attribute name.');\n attr = {\n type: 'Attribute',\n name: name_3,\n namespace: { type: 'NamespaceName', name: identifier }\n };\n }\n else {\n rewind(savedPos);\n }\n }\n }\n assert(attr.name, 'Expected attribute name.');\n skipWhitespace();\n if (isEof() && !strict) {\n return attr;\n }\n if (is(']')) {\n next();\n }\n else {\n attr.operator = matchMulticharIndex(attributesOperatorsIndex);\n assert(attr.operator, 'Expected a valid attribute selector operator.');\n skipWhitespace();\n assertNonEof();\n if (quoteChars[chr]) {\n attr.value = {\n type: 'String',\n value: parseString(chr)\n };\n }\n else if (substitutesEnabled && is('$')) {\n next();\n var name_4 = parseIdentifier();\n assert(name_4, 'Expected substitute name.');\n attr.value = {\n type: 'Substitution',\n name: name_4\n };\n }\n else {\n var value = parseIdentifier();\n assert(value, 'Expected attribute value.');\n attr.value = {\n type: 'String',\n value: value\n };\n }\n skipWhitespace();\n if (isEof() && !strict) {\n return attr;\n }\n if (!is(']')) {\n var caseSensitivityModifier = parseIdentifier();\n assert(caseSensitivityModifier, 'Expected end of attribute selector.');\n attr.caseSensitivityModifier = caseSensitivityModifier;\n assert(attributesCaseSensitivityModifiersEnabled, 'Attribute case sensitivity modifiers are not enabled.');\n assert(attributesAcceptUnknownCaseSensitivityModifiers ||\n attributesCaseSensitivityModifiers[attr.caseSensitivityModifier], 'Unknown attribute case sensitivity modifier.');\n skipWhitespace();\n if (isEof() && !strict) {\n return attr;\n }\n }\n pass(']');\n }\n return attr;\n }\n function parseNumber() {\n var result = '';\n while (digitsChars[chr]) {\n result += readAndNext();\n }\n assert(result !== '', 'Formula parse error.');\n return parseInt(result);\n }\n var isNumberStart = function () { return is('-') || is('+') || digitsChars[chr]; };\n function parseFormula() {\n if (is('e') || is('o')) {\n var ident = parseIdentifier();\n if (ident === 'even') {\n skipWhitespace();\n return [2, 0];\n }\n if (ident === 'odd') {\n skipWhitespace();\n return [2, 1];\n }\n }\n var firstNumber = null;\n var firstNumberMultiplier = 1;\n if (is('-')) {\n next();\n firstNumberMultiplier = -1;\n }\n if (isNumberStart()) {\n if (is('+')) {\n next();\n }\n firstNumber = parseNumber();\n if (!is('\\\\') && !is('n')) {\n return [0, firstNumber * firstNumberMultiplier];\n }\n }\n if (firstNumber === null) {\n firstNumber = 1;\n }\n firstNumber *= firstNumberMultiplier;\n var identifier;\n if (is('\\\\')) {\n next();\n if (isHex(chr)) {\n identifier = parseHex();\n }\n else {\n identifier = readAndNext();\n }\n }\n else {\n identifier = readAndNext();\n }\n assert(identifier === 'n', 'Formula parse error: expected \"n\".');\n skipWhitespace();\n if (is('+') || is('-')) {\n var sign = is('+') ? 1 : -1;\n next();\n skipWhitespace();\n return [firstNumber, sign * parseNumber()];\n }\n else {\n return [firstNumber, 0];\n }\n }\n function parsePseudoArgument(pseudoName, type, signature) {\n var argument;\n if (is('(')) {\n next();\n skipWhitespace();\n if (substitutesEnabled && is('$')) {\n next();\n var name_5 = parseIdentifier();\n assert(name_5, 'Expected substitute name.');\n argument = {\n type: 'Substitution',\n name: name_5\n };\n }\n else if (signature.type === 'String') {\n argument = {\n type: 'String',\n value: parsePseudoClassString()\n };\n assert(argument.value, \"Expected \".concat(type, \" argument value.\"));\n }\n else if (signature.type === 'Selector') {\n argument = parseSelector(true);\n }\n else if (signature.type === 'Formula') {\n var _a = parseFormula(), a = _a[0], b = _a[1];\n argument = {\n type: 'Formula',\n a: a,\n b: b\n };\n if (signature.ofSelector) {\n skipWhitespace();\n if (is('o') || is('\\\\')) {\n var ident = parseIdentifier();\n assert(ident === 'of', 'Formula of selector parse error.');\n skipWhitespace();\n argument = {\n type: 'FormulaOfSelector',\n a: a,\n b: b,\n selector: parseRule()\n };\n }\n }\n }\n else {\n return fail(\"Invalid \".concat(type, \" signature.\"));\n }\n skipWhitespace();\n if (isEof() && !strict) {\n return argument;\n }\n pass(')');\n }\n else {\n assert(signature.optional, \"Argument is required for \".concat(type, \" \\\"\").concat(pseudoName, \"\\\".\"));\n }\n return argument;\n }\n function parseTagName() {\n if (is('*')) {\n assert(tagNameWildcardEnabled, 'Wildcard tag name is not enabled.');\n next();\n return { type: 'WildcardTag' };\n }\n else if (isIdentStart(chr)) {\n assert(tagNameEnabled, 'Tag names are not enabled.');\n var name_6 = parseIdentifier();\n assert(name_6, 'Expected tag name.');\n return {\n type: 'TagName',\n name: name_6\n };\n }\n else {\n return fail('Expected tag name.');\n }\n }\n function parseTagNameWithNamespace() {\n if (is('*')) {\n var savedPos = pos;\n next();\n if (!is('|')) {\n rewind(savedPos);\n return parseTagName();\n }\n next();\n if (!isTagStart()) {\n rewind(savedPos);\n return parseTagName();\n }\n assert(namespaceEnabled, 'Namespaces are not enabled.');\n assert(namespaceWildcardEnabled, 'Wildcard namespace is not enabled.');\n var tagName = parseTagName();\n tagName.namespace = { type: 'WildcardNamespace' };\n return tagName;\n }\n else if (is('|')) {\n assert(namespaceEnabled, 'Namespaces are not enabled.');\n next();\n var tagName = parseTagName();\n tagName.namespace = { type: 'NoNamespace' };\n return tagName;\n }\n else if (isIdentStart(chr)) {\n var identifier = parseIdentifier();\n assert(identifier, 'Expected tag name.');\n if (!is('|')) {\n assert(tagNameEnabled, 'Tag names are not enabled.');\n return {\n type: 'TagName',\n name: identifier\n };\n }\n var savedPos = pos;\n next();\n if (!isTagStart()) {\n rewind(savedPos);\n return {\n type: 'TagName',\n name: identifier\n };\n }\n assert(namespaceEnabled, 'Namespaces are not enabled.');\n var tagName = parseTagName();\n tagName.namespace = { type: 'NamespaceName', name: identifier };\n return tagName;\n }\n else {\n return fail('Expected tag name.');\n }\n }\n function parseRule(relative) {\n var _a, _b;\n if (relative === void 0) { relative = false; }\n var rule = { type: 'Rule', items: [] };\n if (relative) {\n var combinator = matchMulticharIndex(combinatorsIndex);\n if (combinator) {\n rule.combinator = combinator;\n skipWhitespace();\n }\n }\n while (pos < l) {\n if (isTagStart()) {\n assert(rule.items.length === 0, 'Unexpected tag/namespace start.');\n rule.items.push(parseTagNameWithNamespace());\n }\n else if (is('|')) {\n var savedPos = pos;\n next();\n if (isTagStart()) {\n assert(rule.items.length === 0, 'Unexpected tag/namespace start.');\n rewind(savedPos);\n rule.items.push(parseTagNameWithNamespace());\n }\n else {\n rewind(savedPos);\n break;\n }\n }\n else if (is('.')) {\n assert(classNamesEnabled, 'Class names are not enabled.');\n next();\n var className = parseIdentifier();\n assert(className, 'Expected class name.');\n rule.items.push({ type: 'ClassName', name: className });\n }\n else if (is('#')) {\n assert(idEnabled, 'IDs are not enabled.');\n next();\n var idName = parseIdentifier();\n assert(idName, 'Expected ID name.');\n rule.items.push({ type: 'Id', name: idName });\n }\n else if (is('[')) {\n assert(attributesEnabled, 'Attributes are not enabled.');\n rule.items.push(parseAttribute());\n }\n else if (is(':')) {\n var isDoubleColon = false;\n var isPseudoElement = false;\n next();\n if (is(':')) {\n assert(pseudoElementsEnabled, 'Pseudo elements are not enabled.');\n assert(pseudoElementsDoubleColonNotationEnabled, 'Pseudo elements double colon notation is not enabled.');\n isDoubleColon = true;\n next();\n }\n var pseudoName = parseIdentifier();\n assert(isDoubleColon || pseudoName, 'Expected pseudo-class name.');\n assert(!isDoubleColon || pseudoName, 'Expected pseudo-element name.');\n assert(pseudoName, 'Expected pseudo-class name.');\n assert(!isDoubleColon ||\n pseudoElementsAcceptUnknown ||\n Object.prototype.hasOwnProperty.call(pseudoElementsDefinitions, pseudoName), \"Unknown pseudo-element \\\"\".concat(pseudoName, \"\\\".\"));\n isPseudoElement =\n pseudoElementsEnabled &&\n (isDoubleColon ||\n (!isDoubleColon &&\n pseudoElementsSingleColonNotationEnabled &&\n Object.prototype.hasOwnProperty.call(pseudoElementsDefinitions, pseudoName)));\n if (isPseudoElement) {\n var signature = (_a = pseudoElementsDefinitions[pseudoName]) !== null && _a !== void 0 ? _a : (pseudoElementsAcceptUnknown && defaultPseudoSignature);\n var pseudoElement = {\n type: 'PseudoElement',\n name: pseudoName\n };\n var argument = parsePseudoArgument(pseudoName, 'pseudo-element', signature);\n if (argument) {\n assert(argument.type !== 'Formula' && argument.type !== 'FormulaOfSelector', 'Pseudo-elements cannot have formula argument.');\n pseudoElement.argument = argument;\n }\n rule.items.push(pseudoElement);\n }\n else {\n assert(pseudoClassesEnabled, 'Pseudo-classes are not enabled.');\n var signature = (_b = pseudoClassesDefinitions[pseudoName]) !== null && _b !== void 0 ? _b : (pseudoClassesAcceptUnknown && defaultPseudoSignature);\n assert(signature, \"Unknown pseudo-class: \\\"\".concat(pseudoName, \"\\\".\"));\n var argument = parsePseudoArgument(pseudoName, 'pseudo-class', signature);\n var pseudoClass = {\n type: 'PseudoClass',\n name: pseudoName\n };\n if (argument) {\n pseudoClass.argument = argument;\n }\n rule.items.push(pseudoClass);\n }\n }\n else {\n break;\n }\n }\n if (rule.items.length === 0) {\n if (isEof()) {\n return fail('Expected rule but end of input reached.');\n }\n else {\n return fail(\"Expected rule but \\\"\".concat(chr, \"\\\" found.\"));\n }\n }\n skipWhitespace();\n if (!isEof() && !is(',') && !is(')')) {\n var combinator = matchMulticharIndex(combinatorsIndex);\n skipWhitespace();\n rule.nestedRule = parseRule();\n rule.nestedRule.combinator = combinator;\n }\n return rule;\n }\n return function (input) {\n // noinspection SuspiciousTypeOfGuard\n if (typeof input !== 'string') {\n throw new Error(\"\".concat(errorPrefix, \"Expected string input.\"));\n }\n str = input;\n l = str.length;\n pos = 0;\n chr = str.charAt(0);\n return parseSelector();\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction astMethods(type) {\n return function (generatorName, checkerName) {\n var _a;\n return (_a = {},\n _a[generatorName] = function (props) { return (__assign({ type: type }, props)); },\n _a[checkerName] = function (entity) {\n return typeof entity === 'object' && entity !== null && entity.type === type;\n },\n _a);\n };\n}\n/**\n * AST structure generators and matchers.\n * For instance, `ast.selector({rules: [...]})` creates AstSelector and `ast.isSelector(...)` checks if\n * AstSelector was specified.\n *\n * @example\n *\n * // Represents CSS selector: ns|div#user-34.user.user-active[role=\"button\"]:lang(en)::before > *\n * const selector = ast.selector({\n * rules: [\n * ast.rule({\n * items: [\n * ast.tagName({name: 'div', namespace: ast.namespaceName({name: 'ns'})}),\n * ast.id({name: 'user-34'}),\n * ast.className({name: 'user'}),\n * ast.className({name: 'user-active'}),\n * ast.attribute({\n * name: 'role',\n * operator: '=',\n * value: ast.string({value: 'button'})\n * }),\n * ast.pseudoClass({\n * name: 'lang',\n * argument: ast.string({value: 'en'})\n * }),\n * ast.pseudoElement({name: 'before'})\n * ],\n * nestedRule: ast.rule({combinator: '>', items: [ast.wildcardTag()]})\n * })\n * ]\n * });\n * console.log(ast.isSelector(selector)); // prints true\n * console.log(ast.isRule(selector)); // prints false\n */\nexport var ast = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, astMethods('Selector')('selector', 'isSelector')), astMethods('Rule')('rule', 'isRule')), astMethods('TagName')('tagName', 'isTagName')), astMethods('Id')('id', 'isId')), astMethods('ClassName')('className', 'isClassName')), astMethods('WildcardTag')('wildcardTag', 'isWildcardTag')), astMethods('NamespaceName')('namespaceName', 'isNamespaceName')), astMethods('WildcardNamespace')('wildcardNamespace', 'isWildcardNamespace')), astMethods('NoNamespace')('noNamespace', 'isNoNamespace')), astMethods('Attribute')('attribute', 'isAttribute')), astMethods('PseudoClass')('pseudoClass', 'isPseudoClass')), astMethods('PseudoElement')('pseudoElement', 'isPseudoElement')), astMethods('String')('string', 'isString')), astMethods('Formula')('formula', 'isFormula')), astMethods('FormulaOfSelector')('formulaOfSelector', 'isFormulaOfSelector')), astMethods('Substitution')('substitution', 'isSubstitution'));\n","/**\n * @typedef {import('css-selector-parser').AstSelector} AstSelector\n */\n\nimport {createParser} from 'css-selector-parser'\n\nconst cssSelectorParse = createParser({syntax: 'selectors-4'})\n\n/**\n * @param {string} selector\n * Selector to parse.\n * @returns {AstSelector}\n * Parsed selector.\n */\nexport function parse(selector) {\n if (typeof selector !== 'string') {\n throw new TypeError('Expected `string` as selector, not `' + selector + '`')\n }\n\n return cssSelectorParse(selector)\n}\n","const rtlRange = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst ltrRange =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n/* eslint-disable no-misleading-character-class */\nconst rtl = new RegExp('^[^' + ltrRange + ']*[' + rtlRange + ']')\nconst ltr = new RegExp('^[^' + rtlRange + ']*[' + ltrRange + ']')\n/* eslint-enable no-misleading-character-class */\n\n/**\n * Detect the direction of text: left-to-right, right-to-left, or neutral\n *\n * @param {string} value\n * @returns {'rtl'|'ltr'|'neutral'}\n */\nexport function direction(value) {\n const source = String(value || '')\n return rtl.test(source) ? 'rtl' : ltr.test(source) ? 'ltr' : 'neutral'\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Nodes} node\n * Node to serialize.\n * @returns {string}\n * Serialized node.\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.â€\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.â€\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Nodes} node\n * Node.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Parents} node\n * Node.\n * @returns {string}\n * Serialized node.\n */\nfunction all(node) {\n let index = -1\n /** @type {Array<string>} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n *\n * @typedef {import('unist-util-visit').Visitor<ElementContent>} Visitor\n *\n * @typedef {import('./index.js').Direction} Direction\n * @typedef {import('./index.js').State} State\n */\n\nimport {direction} from 'direction'\nimport {toString} from 'hast-util-to-string'\nimport {svg} from 'property-information'\nimport {EXIT, SKIP, visit} from 'unist-util-visit'\n\n/**\n * Enter a node.\n *\n * The caller is responsible for calling the return value `exit`.\n *\n * @param {State} state\n * Current state.\n *\n * Will be mutated: `exit` undos the changes.\n * @param {Nodes} node\n * Node to enter.\n * @returns {() => undefined}\n * Call to exit.\n */\n// eslint-disable-next-line complexity\nexport function enterState(state, node) {\n const schema = state.schema\n const language = state.language\n const currentDirection = state.direction\n const editableOrEditingHost = state.editableOrEditingHost\n /** @type {Direction | undefined} */\n let dirInferred\n\n if (node.type === 'element') {\n const lang = node.properties.xmlLang || node.properties.lang\n const type = node.properties.type || 'text'\n const dir = dirProperty(node)\n\n if (lang !== null && lang !== undefined) {\n state.language = String(lang)\n }\n\n if (schema && schema.space === 'html') {\n if (node.properties.contentEditable === 'true') {\n state.editableOrEditingHost = true\n }\n\n if (node.tagName === 'svg') {\n state.schema = svg\n }\n\n // See: <https://html.spec.whatwg.org/#the-directionality>.\n // Explicit `[dir=rtl]`.\n if (dir === 'rtl') {\n dirInferred = dir\n } else if (\n // Explicit `[dir=ltr]`.\n dir === 'ltr' ||\n // HTML with an invalid or no `[dir]`.\n (dir !== 'auto' && node.tagName === 'html') ||\n // `input[type=tel]` with an invalid or no `[dir]`.\n (dir !== 'auto' && node.tagName === 'input' && type === 'tel')\n ) {\n dirInferred = 'ltr'\n // `[dir=auto]` or `bdi` with an invalid or no `[dir]`.\n } else if (dir === 'auto' || node.tagName === 'bdi') {\n if (node.tagName === 'textarea') {\n // Check contents of `<textarea>`.\n dirInferred = dirBidi(toString(node))\n } else if (\n node.tagName === 'input' &&\n (type === 'email' ||\n type === 'search' ||\n type === 'tel' ||\n type === 'text')\n ) {\n // Check value of `<input>`.\n dirInferred = node.properties.value\n ? dirBidi(String(node.properties.value))\n : 'ltr'\n } else {\n // Check text nodes in `node`.\n visit(node, inferDirectionality)\n }\n }\n\n if (dirInferred) {\n state.direction = dirInferred\n }\n }\n // Turn off editing mode in non-HTML spaces.\n else if (state.editableOrEditingHost) {\n state.editableOrEditingHost = false\n }\n }\n\n return reset\n\n /**\n * @returns {undefined}\n * Nothing.\n */\n function reset() {\n state.schema = schema\n state.language = language\n state.direction = currentDirection\n state.editableOrEditingHost = editableOrEditingHost\n }\n\n /** @type {Visitor} */\n function inferDirectionality(child) {\n if (child.type === 'text') {\n dirInferred = dirBidi(child.value)\n return dirInferred ? EXIT : undefined\n }\n\n if (\n child !== node &&\n child.type === 'element' &&\n (child.tagName === 'bdi' ||\n child.tagName === 'script' ||\n child.tagName === 'style' ||\n child.tagName === 'textare' ||\n dirProperty(child))\n ) {\n return SKIP\n }\n }\n}\n\n/**\n * See `wooorm/direction`.\n *\n * @param {string} value\n * Value to check.\n * @returns {Exclude<Direction, 'auto'> | undefined}\n * Directionality.\n */\nfunction dirBidi(value) {\n const result = direction(value)\n return result === 'neutral' ? undefined : result\n}\n\n/**\n * @param {ElementContent} node\n * Node to check.\n * @returns {Direction | undefined}\n * Directionality.\n */\nfunction dirProperty(node) {\n const value =\n node.type === 'element' && typeof node.properties.dir === 'string'\n ? node.properties.dir.toLowerCase()\n : undefined\n\n return value === 'auto' || value === 'ltr' || value === 'rtl'\n ? value\n : undefined\n}\n","/**\n * @typedef {import('css-selector-parser').AstAttribute} AstAttribute\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {find} from 'property-information'\nimport * as spaces from 'space-separated-tokens'\n\n/**\n * @param {AstAttribute} query\n * Query.\n * @param {Element} element\n * Element.\n * @param {Schema} schema\n * Schema of element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nexport function attribute(query, element, schema) {\n const info = find(schema, query.name)\n const propertyValue = element.properties[info.property]\n let value = normalizeValue(propertyValue, info)\n\n // Exists.\n if (!query.value) {\n return value !== undefined\n }\n\n assert(query.value.type === 'String', 'expected plain string')\n let key = query.value.value\n\n // Case-sensitivity.\n if (query.caseSensitivityModifier === 'i') {\n key = key.toLowerCase()\n\n if (value) {\n value = value.toLowerCase()\n }\n }\n\n if (value !== undefined) {\n switch (query.operator) {\n // Exact.\n case '=': {\n return key === value\n }\n\n // Ends.\n case '$=': {\n return key === value.slice(-key.length)\n }\n\n // Contains.\n case '*=': {\n return value.includes(key)\n }\n\n // Begins.\n case '^=': {\n return key === value.slice(0, key.length)\n }\n\n // Exact or prefix.\n case '|=': {\n return (\n key === value ||\n (key === value.slice(0, key.length) &&\n value.charAt(key.length) === '-')\n )\n }\n\n // Space-separated list.\n case '~=': {\n return (\n // For all other values (including comma-separated lists), return whether this\n // is an exact match.\n key === value ||\n // If this is a space-separated list, and the query is contained in it, return\n // true.\n spaces.parse(value).includes(key)\n )\n }\n // Other values are not yet supported by CSS.\n // No default\n }\n }\n\n return false\n}\n\n/**\n *\n * @param {Properties[keyof Properties]} value\n * @param {Info} info\n * @returns {string | undefined}\n */\nfunction normalizeValue(value, info) {\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'boolean') {\n if (value) {\n return info.attribute\n }\n } else if (Array.isArray(value)) {\n if (value.length > 0) {\n return (info.commaSeparated ? commas : spaces.stringify)(value)\n }\n } else {\n return String(value)\n }\n}\n","/**\n * @typedef {import('css-selector-parser').AstClassName} AstClassName\n * @typedef {import('hast').Element} Element\n */\n\n/** @type {Array<never>} */\nconst emptyClassNames = []\n\n/**\n * Check whether an element has all class names.\n *\n * @param {AstClassName} query\n * AST rule (with `classNames`).\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nexport function className(query, element) {\n // Assume array.\n const value = /** @type {Readonly<Array<string>>} */ (\n element.properties.className || emptyClassNames\n )\n\n return value.includes(query.name)\n}\n","/**\n * @typedef {import('css-selector-parser').AstId} AstId\n *\n * @typedef {import('hast').Element} Element\n */\n\n// Workaround to show references to above types in VS Code.\n''\n\n/**\n * Check whether an element has an ID.\n *\n * @param {AstId} query\n * AST rule (with `ids`).\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nexport function id(query, element) {\n return element.properties.id === query.name\n}\n","/**\n * @typedef {import('css-selector-parser').AstTagName} AstTagName\n *\n * @typedef {import('hast').Element} Element\n */\n\n// Workaround to show references to above types in VS Code.\n''\n\n/**\n * Check whether an element has a tag name.\n *\n * @param {AstTagName} query\n * AST rule (with `tag`).\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nexport function name(query, element) {\n return query.name === element.tagName\n}\n","/**\n * See <https://tools.ietf.org/html/rfc4647#section-3.1>\n * for more info on the algorithms.\n */\n\n/**\n * @typedef {string} Tag\n * BCP-47 tag.\n * @typedef {Array<Tag>} Tags\n * List of BCP-47 tags.\n * @typedef {string} Range\n * RFC 4647 range.\n * @typedef {Array<Range>} Ranges\n * List of RFC 4647 range.\n *\n * @callback Check\n * An internal check.\n * @param {Tag} tag\n * BCP-47 tag.\n * @param {Range} range\n * RFC 4647 range.\n * @returns {boolean}\n * Whether the range matches the tag.\n *\n * @typedef {FilterOrLookup<true>} Filter\n * Filter: yields all tags that match a range.\n * @typedef {FilterOrLookup<false>} Lookup\n * Lookup: yields the best tag that matches a range.\n */\n\n/**\n * @template {boolean} IsFilter\n * Whether to filter or perform a lookup.\n * @callback FilterOrLookup\n * A check.\n * @param {Tag|Tags} tags\n * One or more BCP-47 tags.\n * @param {Range|Ranges|undefined} [ranges='*']\n * One or more RFC 4647 ranges.\n * @returns {IsFilter extends true ? Tags : Tag|undefined}\n * Result.\n */\n\n/**\n * Factory to perform a filter or a lookup.\n *\n * This factory creates a function that accepts a list of tags and a list of\n * ranges, and contains logic to exit early for lookups.\n * `check` just has to deal with one tag and one range.\n * This match function iterates over ranges, and for each range,\n * iterates over tags.\n * That way, earlier ranges matching any tag have precedence over later ranges.\n *\n * @template {boolean} IsFilter\n * @param {Check} check\n * A check.\n * @param {IsFilter} filter\n * Whether to filter or perform a lookup.\n * @returns {FilterOrLookup<IsFilter>}\n * Filter or lookup.\n */\nfunction factory(check, filter) {\n /**\n * @param {Tag|Tags} tags\n * One or more BCP-47 tags.\n * @param {Range|Ranges|undefined} [ranges='*']\n * One or more RFC 4647 ranges.\n * @returns {IsFilter extends true ? Tags : Tag|undefined}\n * Result.\n */\n return function (tags, ranges) {\n let left = cast(tags, 'tag')\n const right = cast(\n ranges === null || ranges === undefined ? '*' : ranges,\n 'range'\n )\n /** @type {Tags} */\n const matches = []\n let rightIndex = -1\n\n while (++rightIndex < right.length) {\n const range = right[rightIndex].toLowerCase()\n\n // Ignore wildcards in lookup mode.\n if (!filter && range === '*') continue\n\n let leftIndex = -1\n /** @type {Tags} */\n const next = []\n\n while (++leftIndex < left.length) {\n if (check(left[leftIndex].toLowerCase(), range)) {\n // Exit if this is a lookup and we have a match.\n if (!filter) {\n return /** @type {IsFilter extends true ? Tags : Tag|undefined} */ (\n left[leftIndex]\n )\n }\n\n matches.push(left[leftIndex])\n } else {\n next.push(left[leftIndex])\n }\n }\n\n left = next\n }\n\n // If this is a filter, return the list. If it’s a lookup, we didn’t find\n // a match, so return `undefined`.\n return /** @type {IsFilter extends true ? Tags : Tag|undefined} */ (\n filter ? matches : undefined\n )\n }\n}\n\n/**\n * Basic Filtering (Section 3.3.1) matches a language priority list consisting\n * of basic language ranges (Section 2.1) to sets of language tags.\n *\n * @param {Tag|Tags} tags\n * One or more BCP-47 tags.\n * @param {Range|Ranges|undefined} [ranges='*']\n * One or more RFC 4647 ranges.\n * @returns {Tags}\n * List of BCP-47 tags.\n */\nexport const basicFilter = factory(function (tag, range) {\n return range === '*' || tag === range || tag.includes(range + '-')\n}, true)\n\n/**\n * Extended Filtering (Section 3.3.2) matches a language priority list\n * consisting of extended language ranges (Section 2.2) to sets of language\n * tags.\n *\n * @param {Tag|Tags} tags\n * One or more BCP-47 tags.\n * @param {Range|Ranges|undefined} [ranges='*']\n * One or more RFC 4647 ranges.\n * @returns {Tags}\n * List of BCP-47 tags.\n */\nexport const extendedFilter = factory(function (tag, range) {\n // 3.3.2.1\n const left = tag.split('-')\n const right = range.split('-')\n let leftIndex = 0\n let rightIndex = 0\n\n // 3.3.2.2\n if (right[rightIndex] !== '*' && left[leftIndex] !== right[rightIndex]) {\n return false\n }\n\n leftIndex++\n rightIndex++\n\n // 3.3.2.3\n while (rightIndex < right.length) {\n // 3.3.2.3.A\n if (right[rightIndex] === '*') {\n rightIndex++\n continue\n }\n\n // 3.3.2.3.B\n if (!left[leftIndex]) return false\n\n // 3.3.2.3.C\n if (left[leftIndex] === right[rightIndex]) {\n leftIndex++\n rightIndex++\n continue\n }\n\n // 3.3.2.3.D\n if (left[leftIndex].length === 1) return false\n\n // 3.3.2.3.E\n leftIndex++\n }\n\n // 3.3.2.4\n return true\n}, true)\n\n/**\n * Lookup (Section 3.4) matches a language priority list consisting of basic\n * language ranges to sets of language tags to find the one exact language tag\n * that best matches the range.\n *\n * @param {Tag|Tags} tags\n * One or more BCP-47 tags.\n * @param {Range|Ranges|undefined} [ranges='*']\n * One or more RFC 4647 ranges.\n * @returns {Tag|undefined}\n * BCP-47 tag.\n */\nexport const lookup = factory(function (tag, range) {\n let right = range\n\n /* eslint-disable-next-line no-constant-condition */\n while (true) {\n if (right === '*' || tag === right) return true\n\n let index = right.lastIndexOf('-')\n\n if (index < 0) return false\n\n if (right.charAt(index - 2) === '-') index -= 2\n\n right = right.slice(0, index)\n }\n}, false)\n\n/**\n * Validate tags or ranges, and cast them to arrays.\n *\n * @param {string|Array<string>} values\n * @param {string} name\n * @returns {Array<string>}\n */\nfunction cast(values, name) {\n const value = values && typeof values === 'string' ? [values] : values\n\n if (!value || typeof value !== 'object' || !('length' in value)) {\n throw new Error(\n 'Invalid ' + name + ' `' + value + '`, expected non-empty string'\n )\n }\n\n return value\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Check if `node` is an element and has a `name` property.\n *\n * @template {string} Key\n * Type of key.\n * @param {Nodes} node\n * Node to check (typically `Element`).\n * @param {Key} name\n * Property name to check.\n * @returns {node is Element & {properties: Record<Key, Array<number | string> | number | string | true>}}}\n * Whether `node` is an element that has a `name` property.\n *\n * Note: see <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/27c9274/types/hast/index.d.ts#L37C29-L37C98>.\n */\nexport function hasProperty(node, name) {\n const value =\n node.type === 'element' &&\n own.call(node.properties, name) &&\n node.properties[name]\n\n return value !== null && value !== undefined && value !== false\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nconst whitespace = new Set([9, 10, 12, 13, 32]);\nconst ZERO = \"0\".charCodeAt(0);\nconst NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nexport function parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n let idx = 0;\n let a = 0;\n let sign = readSign();\n let number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(`n-th rule couldn't be parsed ('${formula}')`);\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n const start = idx;\n let value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\n//# sourceMappingURL=parse.js.map","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","import boolbase from \"boolbase\";\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nexport function compile(parsed) {\n const a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n const b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return (index) => index <= b;\n if (a === 0)\n return (index) => index === b;\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase.trueFunc : (index) => index >= b;\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n const absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n const bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? (index) => index >= b && index % absA === bMod\n : (index) => index <= b && index % absA === bMod;\n}\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing (2n+3)</caption>\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value (-2n+10)</caption>\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nexport function generate(parsed) {\n const a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n let b = parsed[1] - 1;\n let n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n const aPos = -a;\n // Get `b mod a`\n const minValue = ((b % aPos) + aPos) % aPos;\n return () => {\n const val = minValue + aPos * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n () => null\n : // Return `b` exactly once\n () => (n++ === 0 ? b : null);\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return () => a * n++ + b;\n}\n//# sourceMappingURL=compile.js.map","import { parse } from \"./parse.js\";\nimport { compile, generate } from \"./compile.js\";\nexport { parse, compile, generate };\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nexport default function nthCheck(formula) {\n return compile(parse(formula));\n}\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing</caption>\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value</caption>\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nexport function sequence(formula) {\n return generate(parse(formula));\n}\n//# sourceMappingURL=index.js.map","/**\n * @typedef {import('css-selector-parser').AstPseudoClass} AstPseudoClass\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('./index.js').State} State\n */\n\nimport {extendedFilter} from 'bcp-47-match'\nimport {parse as commas} from 'comma-separated-tokens'\nimport {ok as assert, unreachable} from 'devlop'\nimport {hasProperty} from 'hast-util-has-property'\nimport {whitespace} from 'hast-util-whitespace'\nimport fauxEsmNthCheck from 'nth-check'\nimport {zwitch} from 'zwitch'\nimport {walk} from './walk.js'\n\n/** @type {import('nth-check').default} */\n// @ts-expect-error: types are broken.\nconst nthCheck = fauxEsmNthCheck.default || fauxEsmNthCheck\n\n/** @type {(rule: AstPseudoClass, element: Element, index: number | undefined, parent: Parents | undefined, state: State) => boolean} */\nexport const pseudo = zwitch('name', {\n handlers: {\n 'any-link': anyLink,\n blank,\n checked,\n dir,\n disabled,\n empty,\n enabled,\n 'first-child': firstChild,\n 'first-of-type': firstOfType,\n has,\n is,\n lang,\n 'last-child': lastChild,\n 'last-of-type': lastOfType,\n not,\n 'nth-child': nthChild,\n 'nth-last-child': nthLastChild,\n 'nth-last-of-type': nthLastOfType,\n 'nth-of-type': nthOfType,\n 'only-child': onlyChild,\n 'only-of-type': onlyOfType,\n optional,\n 'read-only': readOnly,\n 'read-write': readWrite,\n required,\n root,\n scope\n },\n invalid: invalidPseudo,\n unknown: unknownPseudo\n})\n\n/**\n * Check whether an element matches an `:any-link` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction anyLink(_, element) {\n return (\n (element.tagName === 'a' ||\n element.tagName === 'area' ||\n element.tagName === 'link') &&\n hasProperty(element, 'href')\n )\n}\n\n/**\n * @param {State} state\n * State.\n * @param {AstPseudoClass} query\n * Query.\n */\nfunction assertDeep(state, query) {\n if (state.shallow) {\n throw new Error('Cannot use `:' + query.name + '` without parent')\n }\n}\n\n/**\n * Check whether an element matches a `:blank` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction blank(_, element) {\n return !someChildren(element, check)\n\n /**\n * @param {ElementContent} child\n * @returns {boolean}\n */\n function check(child) {\n return (\n child.type === 'element' || (child.type === 'text' && !whitespace(child))\n )\n }\n}\n\n/**\n * Check whether an element matches a `:checked` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction checked(_, element) {\n if (element.tagName === 'input' || element.tagName === 'menuitem') {\n return Boolean(\n (element.properties.type === 'checkbox' ||\n element.properties.type === 'radio') &&\n hasProperty(element, 'checked')\n )\n }\n\n if (element.tagName === 'option') {\n return hasProperty(element, 'selected')\n }\n\n return false\n}\n\n/**\n * Check whether an element matches a `:dir()` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction dir(query, _1, _2, _3, state) {\n assert(query.argument, 'expected `argument`')\n assert(query.argument.type === 'String', 'expected plain text')\n return state.direction === query.argument.value\n}\n\n/**\n * Check whether an element matches a `:disabled` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction disabled(_, element) {\n return (\n (element.tagName === 'button' ||\n element.tagName === 'input' ||\n element.tagName === 'select' ||\n element.tagName === 'textarea' ||\n element.tagName === 'optgroup' ||\n element.tagName === 'option' ||\n element.tagName === 'menuitem' ||\n element.tagName === 'fieldset') &&\n hasProperty(element, 'disabled')\n )\n}\n\n/**\n * Check whether an element matches an `:empty` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction empty(_, element) {\n return !someChildren(element, check)\n\n /**\n * @param {ElementContent} child\n * @returns {boolean}\n */\n function check(child) {\n return child.type === 'element' || child.type === 'text'\n }\n}\n\n/**\n * Check whether an element matches an `:enabled` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction enabled(query, element) {\n return !disabled(query, element)\n}\n\n/**\n * Check whether an element matches a `:first-child` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction firstChild(query, _1, _2, _3, state) {\n assertDeep(state, query)\n return state.elementIndex === 0\n}\n\n/**\n * Check whether an element matches a `:first-of-type` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction firstOfType(query, _1, _2, _3, state) {\n assertDeep(state, query)\n return state.typeIndex === 0\n}\n\n/**\n * @param {AstPseudoClass} query\n * Query.\n * @returns {(value: number) => boolean}\n * N.\n */\nfunction getCachedNthCheck(query) {\n /** @type {(value: number) => boolean} */\n // @ts-expect-error: cache.\n let fn = query._cachedFn\n\n if (!fn) {\n const value = query.argument\n assert(value, 'expected `argument`')\n\n if (value.type !== 'Formula') {\n throw new Error(\n 'Expected `nth` formula, such as `even` or `2n+1` (`of` is not yet supported)'\n )\n }\n\n fn = nthCheck(value.a + 'n+' + value.b)\n // @ts-expect-error: cache.\n query._cachedFn = fn\n }\n\n return fn\n}\n\n/**\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} _1\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _2\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction has(query, element, _1, _2, state) {\n assert(query.argument, 'expected `argument`')\n assert(query.argument.type === 'Selector', 'expected selector')\n\n /** @type {State} */\n const childState = {\n ...state,\n // Not found yet.\n found: false,\n // One result is enough.\n one: true,\n results: [],\n rootQuery: query.argument,\n scopeElements: [element],\n // Do walk deep.\n shallow: false\n }\n\n walk(childState, {type: 'root', children: element.children})\n\n return childState.results.length > 0\n}\n\n// Shouldn’t be called, parser gives correct data.\n/* c8 ignore next 3 */\nfunction invalidPseudo() {\n unreachable('Invalid pseudo-selector')\n}\n\n/**\n * Check whether an element `:is` further selectors.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} _1\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _2\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction is(query, element, _1, _2, state) {\n assert(query.argument, 'expected `argument`')\n assert(query.argument.type === 'Selector', 'expected selector')\n\n /** @type {State} */\n const childState = {\n ...state,\n // Not found yet.\n found: false,\n // One result is enough.\n one: true,\n results: [],\n rootQuery: query.argument,\n scopeElements: [element],\n // Do walk deep.\n shallow: false\n }\n\n walk(childState, element)\n\n return childState.results[0] === element\n}\n\n/**\n * Check whether an element matches a `:lang()` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction lang(query, _1, _2, _3, state) {\n assert(query.argument, 'expected `argument`')\n assert(query.argument.type === 'String', 'expected string')\n\n return (\n state.language !== '' &&\n state.language !== undefined &&\n extendedFilter(state.language, commas(query.argument.value)).length > 0\n )\n}\n\n/**\n * Check whether an element matches a `:last-child` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction lastChild(query, _1, _2, _3, state) {\n assertDeep(state, query)\n return Boolean(\n state.elementCount && state.elementIndex === state.elementCount - 1\n )\n}\n\n/**\n * Check whether an element matches a `:last-of-type` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction lastOfType(query, _1, _2, _3, state) {\n assertDeep(state, query)\n return (\n typeof state.typeIndex === 'number' &&\n typeof state.typeCount === 'number' &&\n state.typeIndex === state.typeCount - 1\n )\n}\n\n/**\n * Check whether an element does `:not` match further selectors.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} index\n * Index of `element` in `parent`.\n * @param {Parents | undefined} parent\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction not(query, element, index, parent, state) {\n return !is(query, element, index, parent, state)\n}\n\n/**\n * Check whether an element matches an `:nth-child` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction nthChild(query, _1, _2, _3, state) {\n const fn = getCachedNthCheck(query)\n assertDeep(state, query)\n return typeof state.elementIndex === 'number' && fn(state.elementIndex)\n}\n\n/**\n * Check whether an element matches an `:nth-last-child` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction nthLastChild(query, _1, _2, _3, state) {\n const fn = getCachedNthCheck(query)\n assertDeep(state, query)\n return Boolean(\n typeof state.elementCount === 'number' &&\n typeof state.elementIndex === 'number' &&\n fn(state.elementCount - state.elementIndex - 1)\n )\n}\n\n/**\n * Check whether an element matches a `:nth-last-of-type` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction nthLastOfType(query, _1, _2, _3, state) {\n const fn = getCachedNthCheck(query)\n assertDeep(state, query)\n return (\n typeof state.typeCount === 'number' &&\n typeof state.typeIndex === 'number' &&\n fn(state.typeCount - 1 - state.typeIndex)\n )\n}\n\n/**\n * Check whether an element matches an `:nth-of-type` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction nthOfType(query, _1, _2, _3, state) {\n const fn = getCachedNthCheck(query)\n assertDeep(state, query)\n return typeof state.typeIndex === 'number' && fn(state.typeIndex)\n}\n\n/**\n * Check whether an element matches an `:only-child` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction onlyChild(query, _1, _2, _3, state) {\n assertDeep(state, query)\n return state.elementCount === 1\n}\n\n/**\n * Check whether an element matches an `:only-of-type` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} _1\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction onlyOfType(query, _1, _2, _3, state) {\n assertDeep(state, query)\n return state.typeCount === 1\n}\n\n/**\n * Check whether an element matches an `:optional` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction optional(query, element) {\n return !required(query, element)\n}\n\n/**\n * Check whether an element matches a `:read-only` pseudo.\n *\n * @param {AstPseudoClass} query\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} index\n * Index of `element` in `parent`.\n * @param {Parents | undefined} parent\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction readOnly(query, element, index, parent, state) {\n return !readWrite(query, element, index, parent, state)\n}\n\n/**\n * Check whether an element matches a `:read-write` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} _1\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _2\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction readWrite(_, element, _1, _2, state) {\n return element.tagName === 'input' || element.tagName === 'textarea'\n ? !hasProperty(element, 'readOnly') && !hasProperty(element, 'disabled')\n : Boolean(state.editableOrEditingHost)\n}\n\n/**\n * Check whether an element matches a `:required` pseudo.\n *\n * @param {AstPseudoClass} _\n * Query.\n * @param {Element} element\n * Element.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction required(_, element) {\n return (\n (element.tagName === 'input' ||\n element.tagName === 'textarea' ||\n element.tagName === 'select') &&\n hasProperty(element, 'required')\n )\n}\n\n/**\n * Check whether an element matches a `:root` pseudo.\n *\n * @param {AstPseudoClass} _1\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} parent\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction root(_1, element, _2, parent, state) {\n return Boolean(\n (!parent || parent.type === 'root') &&\n state.schema &&\n (state.schema.space === 'html' || state.schema.space === 'svg') &&\n (element.tagName === 'html' || element.tagName === 'svg')\n )\n}\n\n/**\n * Check whether an element matches a `:scope` pseudo.\n *\n * @param {AstPseudoClass} _1\n * Query.\n * @param {Element} element\n * Element.\n * @param {number | undefined} _2\n * Index of `element` in `parent`.\n * @param {Parents | undefined} _3\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nfunction scope(_1, element, _2, _3, state) {\n return state.scopeElements.includes(element)\n}\n\n/**\n * Check children.\n *\n * @param {Element} element\n * Element.\n * @param {(child: ElementContent) => boolean} check\n * Check.\n * @returns {boolean}\n * Whether a child of `element` matches `check`.\n */\nfunction someChildren(element, check) {\n const children = element.children\n let index = -1\n\n while (++index < children.length) {\n if (check(children[index])) return true\n }\n\n return false\n}\n\n/**\n * @param {unknown} query_\n * Query-like value.\n * @returns {never}\n * Nothing.\n * @throws\n * Exception.\n */\nfunction unknownPseudo(query_) {\n // Runtime JS guarantees it has a `name`.\n const query = /** @type {AstPseudoClass} */ (query_)\n throw new Error('Unknown pseudo-selector `' + query.name + '`')\n}\n","/**\n * @typedef {import('css-selector-parser').AstRule} AstRule\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('./index.js').State} State\n */\n\nimport {attribute} from './attribute.js'\nimport {className} from './class-name.js'\nimport {id} from './id.js'\nimport {name} from './name.js'\nimport {pseudo} from './pseudo.js'\n\n/**\n * Test a rule.\n *\n * @param {AstRule} query\n * AST rule (with `pseudoClasses`).\n * @param {Element} element\n * Element.\n * @param {number | undefined} index\n * Index of `element` in `parent`.\n * @param {Parents | undefined} parent\n * Parent of `element`.\n * @param {State} state\n * State.\n * @returns {boolean}\n * Whether `element` matches `query`.\n */\nexport function test(query, element, index, parent, state) {\n for (const item of query.items) {\n // eslint-disable-next-line unicorn/prefer-switch\n if (item.type === 'Attribute') {\n if (!attribute(item, element, state.schema)) return false\n } else if (item.type === 'Id') {\n if (!id(item, element)) return false\n } else if (item.type === 'ClassName') {\n if (!className(item, element)) return false\n } else if (item.type === 'PseudoClass') {\n if (!pseudo(item, element, index, parent, state)) return false\n } else if (item.type === 'PseudoElement') {\n throw new Error('Invalid selector: `::' + item.name + '`')\n } else if (item.type === 'TagName') {\n if (!name(item, element)) return false\n } else {\n // Otherwise `item.type` is `WildcardTag`, which matches.\n }\n }\n\n return true\n}\n","/**\n * @typedef {import('css-selector-parser').AstRule} AstRule\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('./index.js').State} State\n */\n\n/**\n * @typedef Counts\n * Info on elements in a parent.\n * @property {number} count\n * Number of elements.\n * @property {Map<string, number>} types\n * Number of elements by tag name.\n *\n * @typedef Nest\n * Rule sets by nesting.\n * @property {Array<AstRule> | undefined} adjacentSibling\n * `a + b`\n * @property {Array<AstRule> | undefined} descendant\n * `a b`\n * @property {Array<AstRule> | undefined} directChild\n * `a > b`\n * @property {Array<AstRule> | undefined} generalSibling\n * `a ~ b`\n */\n\nimport {enterState} from './enter-state.js'\nimport {test} from './test.js'\n\n/** @type {Array<never>} */\nconst empty = []\n\n/**\n * Walk a tree.\n *\n * @param {State} state\n * State.\n * @param {Nodes | undefined} tree\n * Tree.\n */\nexport function walk(state, tree) {\n if (tree) {\n one(state, [], tree, undefined, undefined, tree)\n }\n}\n\n/**\n * Add a rule to a nesting map.\n *\n * @param {Nest} nest\n * Nesting.\n * @param {keyof Nest} field\n * Field.\n * @param {AstRule} rule\n * Rule.\n */\nfunction add(nest, field, rule) {\n const list = nest[field]\n if (list) {\n list.push(rule)\n } else {\n nest[field] = [rule]\n }\n}\n\n/**\n * Check in a parent.\n *\n * @param {State} state\n * State.\n * @param {Nest} nest\n * Nesting.\n * @param {Parents} node\n * Parent.\n * @param {Nodes} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\nfunction all(state, nest, node, tree) {\n const fromParent = combine(nest.descendant, nest.directChild)\n /** @type {Array<AstRule> | undefined} */\n let fromSibling\n let index = -1\n /**\n * Total counts.\n * @type {Counts}\n */\n const total = {count: 0, types: new Map()}\n /**\n * Counts of previous siblings.\n * @type {Counts}\n */\n const before = {count: 0, types: new Map()}\n\n while (++index < node.children.length) {\n count(total, node.children[index])\n }\n\n index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n // Uppercase to prevent prototype polution, injecting `constructor` or so.\n // Normalize because HTML is insensitive.\n const name =\n child.type === 'element' ? child.tagName.toUpperCase() : undefined\n // Before counting further elements:\n state.elementIndex = before.count\n state.typeIndex = name ? before.types.get(name) || 0 : 0\n // After counting all elements.\n state.elementCount = total.count\n state.typeCount = name ? total.types.get(name) : 0\n\n // Only apply if this is a parent, this should be an element, but we check\n // for parents so that we delve into custom nodes too.\n if ('children' in child) {\n const forSibling = combine(fromParent, fromSibling)\n const nest = one(\n state,\n forSibling,\n node.children[index],\n index,\n node,\n tree\n )\n fromSibling = combine(nest.generalSibling, nest.adjacentSibling)\n }\n\n // We found one thing, and one is enough.\n if (state.one && state.found) {\n break\n }\n\n count(before, node.children[index])\n }\n}\n\n/**\n * Apply selectors to an element.\n *\n * @param {State} state\n * Current state.\n * @param {Array<AstRule>} rules\n * Rules to apply.\n * @param {Element} node\n * Element to apply rules to.\n * @param {number | undefined} index\n * Index of `node` in `parent`.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Nest}\n * Further rules.\n */\nfunction applySelectors(state, rules, node, index, parent) {\n /** @type {Nest} */\n const nestResult = {\n adjacentSibling: undefined,\n descendant: undefined,\n directChild: undefined,\n generalSibling: undefined\n }\n let selectorIndex = -1\n\n while (++selectorIndex < rules.length) {\n const rule = rules[selectorIndex]\n\n // We found one thing, and one is enough.\n if (state.one && state.found) {\n break\n }\n\n // When shallow, we don’t allow nested rules.\n // Idea: we could allow a stack of parents?\n // Might get quite complex though.\n if (state.shallow && rule.nestedRule) {\n throw new Error('Expected selector without nesting')\n }\n\n // If this rule matches:\n if (test(rule, node, index, parent, state)) {\n const nest = rule.nestedRule\n\n // Are there more?\n if (nest) {\n /** @type {keyof Nest} */\n const label =\n nest.combinator === '+'\n ? 'adjacentSibling'\n : nest.combinator === '~'\n ? 'generalSibling'\n : nest.combinator === '>'\n ? 'directChild'\n : 'descendant'\n add(nestResult, label, nest)\n } else {\n // We have a match!\n state.found = true\n\n if (!state.results.includes(node)) {\n state.results.push(node)\n }\n }\n }\n\n // Descendant.\n if (rule.combinator === undefined) {\n add(nestResult, 'descendant', rule)\n }\n // Adjacent.\n else if (rule.combinator === '~') {\n add(nestResult, 'generalSibling', rule)\n }\n // Drop direct child (`>`), adjacent sibling (`+`).\n }\n\n return nestResult\n}\n\n/**\n * Combine two lists, if needed.\n *\n * This is optimized to create as few lists as possible.\n *\n * @param {Array<AstRule> | undefined} left\n * Rules.\n * @param {Array<AstRule> | undefined} right\n * Rules.\n * @returns {Array<AstRule>}\n * Rules.\n */\nfunction combine(left, right) {\n return left && right && left.length > 0 && right.length > 0\n ? [...left, ...right]\n : left && left.length > 0\n ? left\n : right && right.length > 0\n ? right\n : empty\n}\n\n/**\n * Count a node.\n *\n * @param {Counts} counts\n * Counts.\n * @param {Nodes} node\n * Node (we’re looking for elements).\n * @returns {undefined}\n * Nothing.\n */\nfunction count(counts, node) {\n if (node.type === 'element') {\n // Uppercase to prevent prototype polution, injecting `constructor` or so.\n // Normalize because HTML is insensitive.\n const name = node.tagName.toUpperCase()\n const count = (counts.types.get(name) || 0) + 1\n counts.count++\n counts.types.set(name, count)\n }\n}\n\n/**\n * Check a node.\n *\n * @param {State} state\n * State.\n * @param {Array<AstRule>} currentRules\n * Rules.\n * @param {Nodes} node\n * Node.\n * @param {number | undefined} index\n * Index of `node` in `parent`.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {Nodes} tree\n * Tree.\n * @returns {Nest}\n * Nesting.\n */\nfunction one(state, currentRules, node, index, parent, tree) {\n /** @type {Nest} */\n let nestResult = {\n adjacentSibling: undefined,\n descendant: undefined,\n directChild: undefined,\n generalSibling: undefined\n }\n\n const exit = enterState(state, node)\n\n if (node.type === 'element') {\n let rootRules = state.rootQuery.rules\n\n // Remove direct child rules if this is the root.\n // This only happens for a `:has()` rule, which can be like\n // `a:has(> b)`.\n if (parent && parent !== tree) {\n rootRules = state.rootQuery.rules.filter(\n (d) =>\n d.combinator === undefined ||\n (d.combinator === '>' && parent === tree)\n )\n }\n\n nestResult = applySelectors(\n state,\n // Try the root rules for this element too.\n combine(currentRules, rootRules),\n node,\n index,\n parent\n )\n }\n\n // If this is a parent, and we want to delve into them, and we haven’t found\n // our single result yet.\n if ('children' in node && !state.shallow && !(state.one && state.found)) {\n all(state, nestResult, node, tree)\n }\n\n exit()\n\n return nestResult\n}\n","/**\n * @typedef {import('css-selector-parser').AstSelector} AstSelector\n *\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {'html' | 'svg'} Space\n * Name of namespace.\n *\n * @typedef {'auto' | 'ltr' | 'rtl'} Direction\n * Direction.\n *\n * @typedef State\n * Current state.\n * @property {Direction} direction\n * Current direction.\n * @property {boolean} editableOrEditingHost\n * Whether we’re in `contentEditable`.\n * @property {number | undefined} elementCount\n * Track siblings: there are `n` siblings.\n * @property {number | undefined} elementIndex\n * Track siblings: this current element has `n` elements before it.\n * @property {boolean} found\n * Whether we found at least one match.\n * @property {string | undefined} language\n * Current language.\n * @property {boolean} one\n * Whether we can stop looking after we found one element.\n * @property {Array<Element>} results\n * Matches.\n * @property {AstSelector} rootQuery\n * Original root selectors.\n * @property {Schema} schema\n * Current schema.\n * @property {Array<RootContent>} scopeElements\n * Elements in scope.\n * @property {boolean} shallow\n * Whether we only allow selectors without nesting.\n * @property {number | undefined} typeCount\n * Track siblings: there are `n` siblings with this element’s tag name.\n * @property {number | undefined} typeIndex\n * Track siblings: this current element has `n` elements with its tag name\n * before it.\n */\n\nimport {html, svg} from 'property-information'\nimport {parse} from './parse.js'\nimport {walk} from './walk.js'\n\n/**\n * Check that the given `node` matches `selector`.\n *\n * This only checks the element itself, not the surrounding tree.\n * Thus, nesting in selectors is not supported (`p b`, `p > b`), neither are\n * selectors like `:first-child`, etc.\n * This only checks that the given element matches the selector.\n *\n * @param {string} selector\n * CSS selector, such as (`h1`, `a, b`).\n * @param {Nodes | null | undefined} [node]\n * Node that might match `selector`, should be an element (optional).\n * @param {Space | null | undefined} [space='html']\n * Name of namespace (default: `'html'`).\n * @returns {boolean}\n * Whether `node` matches `selector`.\n */\nexport function matches(selector, node, space) {\n const state = createState(selector, node, space)\n state.one = true\n state.shallow = true\n walk(state, node || undefined)\n return state.results.length > 0\n}\n\n/**\n * Select the first element that matches `selector` in the given `tree`.\n * Searches the tree in *preorder*.\n *\n * @param {string} selector\n * CSS selector, such as (`h1`, `a, b`).\n * @param {Nodes | null | undefined} [tree]\n * Tree to search (optional).\n * @param {Space | null | undefined} [space='html']\n * Name of namespace (default: `'html'`).\n * @returns {Element | undefined}\n * First element in `tree` that matches `selector` or `undefined` if nothing\n * is found; this could be `tree` itself.\n */\nexport function select(selector, tree, space) {\n const state = createState(selector, tree, space)\n state.one = true\n walk(state, tree || undefined)\n return state.results[0]\n}\n\n/**\n * Select all elements that match `selector` in the given `tree`.\n * Searches the tree in *preorder*.\n *\n * @param {string} selector\n * CSS selector, such as (`h1`, `a, b`).\n * @param {Nodes | null | undefined} [tree]\n * Tree to search (optional).\n * @param {Space | null | undefined} [space='html']\n * Name of namespace (default: `'html'`).\n * @returns {Array<Element>}\n * Elements in `tree` that match `selector`.\n * This could include `tree` itself.\n */\nexport function selectAll(selector, tree, space) {\n const state = createState(selector, tree, space)\n walk(state, tree || undefined)\n return state.results\n}\n\n/**\n * @param {string} selector\n * CSS selector, such as (`h1`, `a, b`).\n * @param {Nodes | null | undefined} [tree]\n * Tree to search (optional).\n * @param {Space | null | undefined} [space='html']\n * Name of namespace (default: `'html'`).\n * @returns {State} State\n * State.\n */\nfunction createState(selector, tree, space) {\n return {\n direction: 'ltr',\n editableOrEditingHost: false,\n elementCount: undefined,\n elementIndex: undefined,\n found: false,\n language: undefined,\n one: false,\n // State of the query.\n results: [],\n rootQuery: parse(selector),\n schema: space === 'svg' ? svg : html,\n scopeElements: tree ? (tree.type === 'root' ? tree.children : [tree]) : [],\n shallow: false,\n typeIndex: undefined,\n typeCount: undefined\n }\n}\n","import { visit } from 'unist-util-visit';\nimport { selectAll } from 'hast-util-select';\n/** Get the node tree source code string */\nexport const getCodeString = (data = [], code = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n }\n else if (node.type === 'element' && node.children && Array.isArray(node.children)) {\n code += getCodeString(node.children);\n }\n });\n return code;\n};\nconst remarkRewrite = (options) => {\n const { selector, rewrite } = options || {};\n return (tree) => {\n if (!rewrite || typeof rewrite !== 'function')\n return;\n if (selector && typeof selector === 'string') {\n const selected = selectAll(selector, tree);\n if (selected && selected.length > 0) {\n visit(tree, selected, (node, index, parent) => {\n rewrite(node, index, parent);\n });\n }\n return;\n }\n visit(tree, (node, index, parent) => {\n rewrite(node, index, parent);\n });\n };\n};\nexport default remarkRewrite;\n//# sourceMappingURL=index.js.map","/**\n * @typedef CoreOptions\n * @property {ReadonlyArray<string>} [subset=[]]\n * Whether to only escape the given subset of characters.\n * @property {boolean} [escapeOnly=false]\n * Whether to only escape possibly dangerous characters.\n * Those characters are `\"`, `&`, `'`, `<`, `>`, and `` ` ``.\n *\n * @typedef FormatOptions\n * @property {(code: number, next: number, options: CoreWithFormatOptions) => string} format\n * Format strategy.\n *\n * @typedef {CoreOptions & FormatOptions & import('./util/format-smart.js').FormatSmartOptions} CoreWithFormatOptions\n */\n\nconst defaultSubsetRegex = /[\"&'<>`]/g\nconst surrogatePairsRegex = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g\nconst controlCharactersRegex =\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g\nconst regexEscapeRegex = /[|\\\\{}()[\\]^$+*?.]/g\n\n/** @type {WeakMap<ReadonlyArray<string>, RegExp>} */\nconst subsetToRegexCache = new WeakMap()\n\n/**\n * Encode certain characters in `value`.\n *\n * @param {string} value\n * @param {CoreWithFormatOptions} options\n * @returns {string}\n */\nexport function core(value, options) {\n value = value.replace(\n options.subset\n ? charactersToExpressionCached(options.subset)\n : defaultSubsetRegex,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(surrogatePairsRegex, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(controlCharactersRegex, basic)\n )\n\n /**\n * @param {string} pair\n * @param {number} index\n * @param {string} all\n */\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n /**\n * @param {string} character\n * @param {number} index\n * @param {string} all\n */\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\n/**\n * A wrapper function that caches the result of `charactersToExpression` with a WeakMap.\n * This can improve performance when tooling calls `charactersToExpression` repeatedly\n * with the same subset.\n *\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpressionCached(subset) {\n let cached = subsetToRegexCache.get(subset)\n\n if (!cached) {\n cached = charactersToExpression(subset)\n subsetToRegexCache.set(subset, cached)\n }\n\n return cached\n}\n\n/**\n * @param {ReadonlyArray<string>} subset\n * @returns {RegExp}\n */\nfunction charactersToExpression(subset) {\n /** @type {Array<string>} */\n const groups = []\n let index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(regexEscapeRegex, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","const hexadecimalRegex = /[\\dA-Fa-f]/\n\n/**\n * Configurable ways to encode characters as hexadecimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toHexadecimal(code, next, omit) {\n const value = '&#x' + code.toString(16).toUpperCase()\n return omit && next && !hexadecimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","const decimalRegex = /\\d/\n\n/**\n * Configurable ways to encode characters as decimal references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @returns {string}\n */\nexport function toDecimal(code, next, omit) {\n const value = '&#' + String(code)\n return omit && next && !decimalRegex.test(String.fromCharCode(next))\n ? value\n : value + ';'\n}\n","/**\n * List of legacy HTML named character references that don’t need a trailing semicolon.\n *\n * @type {Array<string>}\n */\nexport const characterEntitiesLegacy = [\n 'AElig',\n 'AMP',\n 'Aacute',\n 'Acirc',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Auml',\n 'COPY',\n 'Ccedil',\n 'ETH',\n 'Eacute',\n 'Ecirc',\n 'Egrave',\n 'Euml',\n 'GT',\n 'Iacute',\n 'Icirc',\n 'Igrave',\n 'Iuml',\n 'LT',\n 'Ntilde',\n 'Oacute',\n 'Ocirc',\n 'Ograve',\n 'Oslash',\n 'Otilde',\n 'Ouml',\n 'QUOT',\n 'REG',\n 'THORN',\n 'Uacute',\n 'Ucirc',\n 'Ugrave',\n 'Uuml',\n 'Yacute',\n 'aacute',\n 'acirc',\n 'acute',\n 'aelig',\n 'agrave',\n 'amp',\n 'aring',\n 'atilde',\n 'auml',\n 'brvbar',\n 'ccedil',\n 'cedil',\n 'cent',\n 'copy',\n 'curren',\n 'deg',\n 'divide',\n 'eacute',\n 'ecirc',\n 'egrave',\n 'eth',\n 'euml',\n 'frac12',\n 'frac14',\n 'frac34',\n 'gt',\n 'iacute',\n 'icirc',\n 'iexcl',\n 'igrave',\n 'iquest',\n 'iuml',\n 'laquo',\n 'lt',\n 'macr',\n 'micro',\n 'middot',\n 'nbsp',\n 'not',\n 'ntilde',\n 'oacute',\n 'ocirc',\n 'ograve',\n 'ordf',\n 'ordm',\n 'oslash',\n 'otilde',\n 'ouml',\n 'para',\n 'plusmn',\n 'pound',\n 'quot',\n 'raquo',\n 'reg',\n 'sect',\n 'shy',\n 'sup1',\n 'sup2',\n 'sup3',\n 'szlig',\n 'thorn',\n 'times',\n 'uacute',\n 'ucirc',\n 'ugrave',\n 'uml',\n 'uuml',\n 'yacute',\n 'yen',\n 'yuml'\n]\n","/**\n * Map of named character references from HTML 4.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntitiesHtml4 = {\n nbsp: ' ',\n iexcl: '¡',\n cent: '¢',\n pound: '£',\n curren: '¤',\n yen: 'Â¥',\n brvbar: '¦',\n sect: '§',\n uml: '¨',\n copy: '©',\n ordf: 'ª',\n laquo: '«',\n not: '¬',\n shy: 'Â',\n reg: '®',\n macr: '¯',\n deg: '°',\n plusmn: '±',\n sup2: '²',\n sup3: '³',\n acute: '´',\n micro: 'µ',\n para: '¶',\n middot: '·',\n cedil: '¸',\n sup1: '¹',\n ordm: 'º',\n raquo: '»',\n frac14: '¼',\n frac12: '½',\n frac34: '¾',\n iquest: '¿',\n Agrave: 'À',\n Aacute: 'Ã',\n Acirc: 'Â',\n Atilde: 'Ã',\n Auml: 'Ä',\n Aring: 'Ã…',\n AElig: 'Æ',\n Ccedil: 'Ç',\n Egrave: 'È',\n Eacute: 'É',\n Ecirc: 'Ê',\n Euml: 'Ë',\n Igrave: 'ÃŒ',\n Iacute: 'Ã',\n Icirc: 'ÃŽ',\n Iuml: 'Ã',\n ETH: 'Ã',\n Ntilde: 'Ñ',\n Ograve: 'Ã’',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Otilde: 'Õ',\n Ouml: 'Ö',\n times: '×',\n Oslash: 'Ø',\n Ugrave: 'Ù',\n Uacute: 'Ú',\n Ucirc: 'Û',\n Uuml: 'Ãœ',\n Yacute: 'Ã',\n THORN: 'Þ',\n szlig: 'ß',\n agrave: 'à ',\n aacute: 'á',\n acirc: 'â',\n atilde: 'ã',\n auml: 'ä',\n aring: 'Ã¥',\n aelig: 'æ',\n ccedil: 'ç',\n egrave: 'è',\n eacute: 'é',\n ecirc: 'ê',\n euml: 'ë',\n igrave: 'ì',\n iacute: 'Ã',\n icirc: 'î',\n iuml: 'ï',\n eth: 'ð',\n ntilde: 'ñ',\n ograve: 'ò',\n oacute: 'ó',\n ocirc: 'ô',\n otilde: 'õ',\n ouml: 'ö',\n divide: '÷',\n oslash: 'ø',\n ugrave: 'ù',\n uacute: 'ú',\n ucirc: 'û',\n uuml: 'ü',\n yacute: 'ý',\n thorn: 'þ',\n yuml: 'ÿ',\n fnof: 'Æ’',\n Alpha: 'Α',\n Beta: 'Î’',\n Gamma: 'Γ',\n Delta: 'Δ',\n Epsilon: 'Ε',\n Zeta: 'Ζ',\n Eta: 'Η',\n Theta: 'Θ',\n Iota: 'Ι',\n Kappa: 'Κ',\n Lambda: 'Λ',\n Mu: 'Îœ',\n Nu: 'Î',\n Xi: 'Ξ',\n Omicron: 'Ο',\n Pi: 'Î ',\n Rho: 'Ρ',\n Sigma: 'Σ',\n Tau: 'Τ',\n Upsilon: 'Î¥',\n Phi: 'Φ',\n Chi: 'Χ',\n Psi: 'Ψ',\n Omega: 'Ω',\n alpha: 'α',\n beta: 'β',\n gamma: 'γ',\n delta: 'δ',\n epsilon: 'ε',\n zeta: 'ζ',\n eta: 'η',\n theta: 'θ',\n iota: 'ι',\n kappa: 'κ',\n lambda: 'λ',\n mu: 'μ',\n nu: 'ν',\n xi: 'ξ',\n omicron: 'ο',\n pi: 'Ï€',\n rho: 'Ï',\n sigmaf: 'Ï‚',\n sigma: 'σ',\n tau: 'Ï„',\n upsilon: 'Ï…',\n phi: 'φ',\n chi: 'χ',\n psi: 'ψ',\n omega: 'ω',\n thetasym: 'Ï‘',\n upsih: 'Ï’',\n piv: 'Ï–',\n bull: '•',\n hellip: '…',\n prime: '′',\n Prime: '″',\n oline: '‾',\n frasl: 'â„',\n weierp: '℘',\n image: 'â„‘',\n real: 'â„œ',\n trade: 'â„¢',\n alefsym: 'ℵ',\n larr: 'â†',\n uarr: '↑',\n rarr: '→',\n darr: '↓',\n harr: '↔',\n crarr: '↵',\n lArr: 'â‡',\n uArr: '⇑',\n rArr: '⇒',\n dArr: '⇓',\n hArr: '⇔',\n forall: '∀',\n part: '∂',\n exist: '∃',\n empty: '∅',\n nabla: '∇',\n isin: '∈',\n notin: '∉',\n ni: '∋',\n prod: 'âˆ',\n sum: '∑',\n minus: '−',\n lowast: '∗',\n radic: '√',\n prop: 'âˆ',\n infin: '∞',\n ang: '∠',\n and: '∧',\n or: '∨',\n cap: '∩',\n cup: '∪',\n int: '∫',\n there4: '∴',\n sim: '∼',\n cong: '≅',\n asymp: '≈',\n ne: '≠',\n equiv: '≡',\n le: '≤',\n ge: '≥',\n sub: '⊂',\n sup: '⊃',\n nsub: '⊄',\n sube: '⊆',\n supe: '⊇',\n oplus: '⊕',\n otimes: '⊗',\n perp: '⊥',\n sdot: 'â‹…',\n lceil: '⌈',\n rceil: '⌉',\n lfloor: '⌊',\n rfloor: '⌋',\n lang: '〈',\n rang: '〉',\n loz: 'â—Š',\n spades: 'â™ ',\n clubs: '♣',\n hearts: '♥',\n diams: '♦',\n quot: '\"',\n amp: '&',\n lt: '<',\n gt: '>',\n OElig: 'Å’',\n oelig: 'Å“',\n Scaron: 'Å ',\n scaron: 'Å¡',\n Yuml: 'Ÿ',\n circ: 'ˆ',\n tilde: 'Ëœ',\n ensp: ' ',\n emsp: ' ',\n thinsp: ' ',\n zwnj: '‌',\n zwj: 'â€',\n lrm: '‎',\n rlm: 'â€',\n ndash: '–',\n mdash: '—',\n lsquo: '‘',\n rsquo: '’',\n sbquo: '‚',\n ldquo: '“',\n rdquo: 'â€',\n bdquo: '„',\n dagger: '†',\n Dagger: '‡',\n permil: '‰',\n lsaquo: '‹',\n rsaquo: '›',\n euro: '€'\n}\n","/**\n * List of legacy (that don’t need a trailing `;`) named references which could,\n * depending on what follows them, turn into a different meaning\n *\n * @type {Array<string>}\n */\nexport const dangerous = [\n 'cent',\n 'copy',\n 'divide',\n 'gt',\n 'lt',\n 'not',\n 'para',\n 'times'\n]\n","import {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterEntitiesHtml4} from 'character-entities-html4'\nimport {dangerous} from '../constant/dangerous.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * `characterEntitiesHtml4` but inverted.\n *\n * @type {Record<string, string>}\n */\nconst characters = {}\n\n/** @type {string} */\nlet key\n\nfor (key in characterEntitiesHtml4) {\n if (own.call(characterEntitiesHtml4, key)) {\n characters[characterEntitiesHtml4[key]] = key\n }\n}\n\nconst notAlphanumericRegex = /[^\\dA-Za-z]/\n\n/**\n * Configurable ways to encode characters as named references.\n *\n * @param {number} code\n * @param {number} next\n * @param {boolean|undefined} omit\n * @param {boolean|undefined} attribute\n * @returns {string}\n */\nexport function toNamed(code, next, omit, attribute) {\n const character = String.fromCharCode(code)\n\n if (own.call(characters, character)) {\n const name = characters[character]\n const value = '&' + name\n\n if (\n omit &&\n characterEntitiesLegacy.includes(name) &&\n !dangerous.includes(name) &&\n (!attribute ||\n (next &&\n next !== 61 /* `=` */ &&\n notAlphanumericRegex.test(String.fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n","/**\n * @typedef FormatSmartOptions\n * @property {boolean} [useNamedReferences=false]\n * Prefer named character references (`&`) where possible.\n * @property {boolean} [useShortestReferences=false]\n * Prefer the shortest possible reference, if that results in less bytes.\n * **Note**: `useNamedReferences` can be omitted when using `useShortestReferences`.\n * @property {boolean} [omitOptionalSemicolons=false]\n * Whether to omit semicolons when possible.\n * **Note**: This creates what HTML calls “parse errors†but is otherwise still valid HTML — don’t use this except when building a minifier.\n * Omitting semicolons is possible for certain named and numeric references in some cases.\n * @property {boolean} [attribute=false]\n * Create character references which don’t fail in attributes.\n * **Note**: `attribute` only applies when operating dangerously with\n * `omitOptionalSemicolons: true`.\n */\n\nimport {toHexadecimal} from './to-hexadecimal.js'\nimport {toDecimal} from './to-decimal.js'\nimport {toNamed} from './to-named.js'\n\n/**\n * Configurable ways to encode a character yielding pretty or small results.\n *\n * @param {number} code\n * @param {number} next\n * @param {FormatSmartOptions} options\n * @returns {string}\n */\nexport function formatSmart(code, next, options) {\n let numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n /** @type {string|undefined} */\n let named\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n )\n }\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (\n (options.useShortestReferences || !named) &&\n options.useShortestReferences\n ) {\n const decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n if (decimal.length < numeric.length) {\n numeric = decimal\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n","/**\n * @typedef {import('./core.js').CoreOptions & import('./util/format-smart.js').FormatSmartOptions} Options\n * @typedef {import('./core.js').CoreOptions} LightOptions\n */\n\nimport {core} from './core.js'\nimport {formatSmart} from './util/format-smart.js'\nimport {formatBasic} from './util/format-basic.js'\n\n/**\n * Encode special characters in `value`.\n *\n * @param {string} value\n * Value to encode.\n * @param {Options} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntities(value, options) {\n return core(value, Object.assign({format: formatSmart}, options))\n}\n\n/**\n * Encode special characters in `value` as hexadecimals.\n *\n * @param {string} value\n * Value to encode.\n * @param {LightOptions} [options]\n * Configuration.\n * @returns {string}\n * Encoded value.\n */\nexport function stringifyEntitiesLight(value, options) {\n return core(value, Object.assign({format: formatBasic}, options))\n}\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\nconst htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g\n\n// Declare arrays as variables so it can be cached by `stringifyEntities`\nconst bogusCommentEntitySubset = ['>']\nconst commentEntitySubset = ['<', '>']\n\n/**\n * Serialize a comment.\n *\n * @param {Comment} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function comment(node, _1, _2, state) {\n // See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>\n return state.settings.bogusComments\n ? '<?' +\n stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: bogusCommentEntitySubset\n })\n ) +\n '>'\n : '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'\n\n /**\n * @param {string} $0\n */\n function encode($0) {\n return stringifyEntities(\n $0,\n Object.assign({}, state.settings.characterReferences, {\n subset: commentEntitySubset\n })\n )\n }\n}\n","/**\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\n// Make VS code see references to the above types.\n''\n\n/**\n * Serialize a doctype.\n *\n * @param {Doctype} _1\n * Node to handle.\n * @param {number | undefined} _2\n * Index of `node` in `parent.\n * @param {Parents | undefined} _3\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function doctype(_1, _2, _3, state) {\n return (\n '<!' +\n (state.settings.upperDoctype ? 'DOCTYPE' : 'doctype') +\n (state.settings.tightDoctype ? '' : ' ') +\n 'html>'\n )\n}\n","/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n */\n\nimport {whitespace} from 'hast-util-whitespace'\n\nexport const siblingAfter = siblings(1)\nexport const siblingBefore = siblings(-1)\n\n/** @type {Array<RootContent>} */\nconst emptyChildren = []\n\n/**\n * Factory to check siblings in a direction.\n *\n * @param {number} increment\n */\nfunction siblings(increment) {\n return sibling\n\n /**\n * Find applicable siblings in a direction.\n *\n * @template {Parents} Parent\n * Parent type.\n * @param {Parent | undefined} parent\n * Parent.\n * @param {number | undefined} index\n * Index of child in `parent`.\n * @param {boolean | undefined} [includeWhitespace=false]\n * Whether to include whitespace (default: `false`).\n * @returns {Parent extends {children: Array<infer Child>} ? Child | undefined : never}\n * Child of parent.\n */\n function sibling(parent, index, includeWhitespace) {\n const siblings = parent ? parent.children : emptyChildren\n let offset = (index || 0) + increment\n let next = siblings[offset]\n\n if (!includeWhitespace) {\n while (next && whitespace(next)) {\n offset += increment\n next = siblings[offset]\n }\n }\n\n // @ts-expect-error: it’s a correct child.\n return next\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @callback OmitHandle\n * Check if a tag can be omitted.\n * @param {Element} element\n * Element to check.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether to omit a tag.\n *\n */\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to check if a given node can have a tag omitted.\n *\n * @param {Record<string, OmitHandle>} handlers\n * Omission handlers, where each key is a tag name, and each value is the\n * corresponding handler.\n * @returns {OmitHandle}\n * Whether to omit a tag of an element.\n */\nexport function omission(handlers) {\n return omit\n\n /**\n * Check if a given node can have a tag omitted.\n *\n * @type {OmitHandle}\n */\n function omit(node, index, parent) {\n return (\n own.call(handlers, node.tagName) &&\n handlers[node.tagName](node, index, parent)\n )\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter} from './util/siblings.js'\nimport {omission} from './omission.js'\n\nexport const closing = omission({\n body,\n caption: headOrColgroupOrCaption,\n colgroup: headOrColgroupOrCaption,\n dd,\n dt,\n head: headOrColgroupOrCaption,\n html,\n li,\n optgroup,\n option,\n p,\n rp: rubyElement,\n rt: rubyElement,\n tbody,\n td: cells,\n tfoot,\n th: cells,\n thead,\n tr\n})\n\n/**\n * Macro for `</head>`, `</colgroup>`, and `</caption>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction headOrColgroupOrCaption(_, index, parent) {\n const next = siblingAfter(parent, index, true)\n return (\n !next ||\n (next.type !== 'comment' &&\n !(next.type === 'text' && whitespace(next.value.charAt(0))))\n )\n}\n\n/**\n * Whether to omit `</html>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction html(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</body>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction body(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || next.type !== 'comment'\n}\n\n/**\n * Whether to omit `</p>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction p(_, index, parent) {\n const next = siblingAfter(parent, index)\n return next\n ? next.type === 'element' &&\n (next.tagName === 'address' ||\n next.tagName === 'article' ||\n next.tagName === 'aside' ||\n next.tagName === 'blockquote' ||\n next.tagName === 'details' ||\n next.tagName === 'div' ||\n next.tagName === 'dl' ||\n next.tagName === 'fieldset' ||\n next.tagName === 'figcaption' ||\n next.tagName === 'figure' ||\n next.tagName === 'footer' ||\n next.tagName === 'form' ||\n next.tagName === 'h1' ||\n next.tagName === 'h2' ||\n next.tagName === 'h3' ||\n next.tagName === 'h4' ||\n next.tagName === 'h5' ||\n next.tagName === 'h6' ||\n next.tagName === 'header' ||\n next.tagName === 'hgroup' ||\n next.tagName === 'hr' ||\n next.tagName === 'main' ||\n next.tagName === 'menu' ||\n next.tagName === 'nav' ||\n next.tagName === 'ol' ||\n next.tagName === 'p' ||\n next.tagName === 'pre' ||\n next.tagName === 'section' ||\n next.tagName === 'table' ||\n next.tagName === 'ul')\n : !parent ||\n // Confusing parent.\n !(\n parent.type === 'element' &&\n (parent.tagName === 'a' ||\n parent.tagName === 'audio' ||\n parent.tagName === 'del' ||\n parent.tagName === 'ins' ||\n parent.tagName === 'map' ||\n parent.tagName === 'noscript' ||\n parent.tagName === 'video')\n )\n}\n\n/**\n * Whether to omit `</li>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction li(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'li')\n}\n\n/**\n * Whether to omit `</dt>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dt(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd')\n )\n}\n\n/**\n * Whether to omit `</dd>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction dd(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'dt' || next.tagName === 'dd'))\n )\n}\n\n/**\n * Whether to omit `</rt>` or `</rp>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction rubyElement(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'rp' || next.tagName === 'rt'))\n )\n}\n\n/**\n * Whether to omit `</optgroup>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction optgroup(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'optgroup')\n}\n\n/**\n * Whether to omit `</option>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction option(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'option' || next.tagName === 'optgroup'))\n )\n}\n\n/**\n * Whether to omit `</thead>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction thead(_, index, parent) {\n const next = siblingAfter(parent, index)\n return Boolean(\n next &&\n next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot')\n )\n}\n\n/**\n * Whether to omit `</tbody>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tbody(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'tbody' || next.tagName === 'tfoot'))\n )\n}\n\n/**\n * Whether to omit `</tfoot>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tfoot(_, index, parent) {\n return !siblingAfter(parent, index)\n}\n\n/**\n * Whether to omit `</tr>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction tr(_, index, parent) {\n const next = siblingAfter(parent, index)\n return !next || (next.type === 'element' && next.tagName === 'tr')\n}\n\n/**\n * Whether to omit `</td>` or `</th>`.\n *\n * @param {Element} _\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the closing tag can be omitted.\n */\nfunction cells(_, index, parent) {\n const next = siblingAfter(parent, index)\n return (\n !next ||\n (next.type === 'element' &&\n (next.tagName === 'td' || next.tagName === 'th'))\n )\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\nimport {whitespace} from 'hast-util-whitespace'\nimport {siblingAfter, siblingBefore} from './util/siblings.js'\nimport {closing} from './closing.js'\nimport {omission} from './omission.js'\n\nexport const opening = omission({\n body,\n colgroup,\n head,\n html,\n tbody\n})\n\n/**\n * Whether to omit `<html>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction html(node) {\n const head = siblingAfter(node, -1)\n return !head || head.type !== 'comment'\n}\n\n/**\n * Whether to omit `<head>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction head(node) {\n const children = node.children\n /** @type {Array<string>} */\n const seen = []\n let index = -1\n\n while (++index < children.length) {\n const child = children[index]\n if (\n child.type === 'element' &&\n (child.tagName === 'title' || child.tagName === 'base')\n ) {\n if (seen.includes(child.tagName)) return false\n seen.push(child.tagName)\n }\n }\n\n return children.length > 0\n}\n\n/**\n * Whether to omit `<body>`.\n *\n * @param {Element} node\n * Element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction body(node) {\n const head = siblingAfter(node, -1, true)\n\n return (\n !head ||\n (head.type !== 'comment' &&\n !(head.type === 'text' && whitespace(head.value.charAt(0))) &&\n !(\n head.type === 'element' &&\n (head.tagName === 'meta' ||\n head.tagName === 'link' ||\n head.tagName === 'script' ||\n head.tagName === 'style' ||\n head.tagName === 'template')\n ))\n )\n}\n\n/**\n * Whether to omit `<colgroup>`.\n * The spec describes some logic for the opening tag, but it’s easier to\n * implement in the closing tag, to the same effect, so we handle it there\n * instead.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction colgroup(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1, true)\n\n // Previous colgroup was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n previous.tagName === 'colgroup' &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'col')\n}\n\n/**\n * Whether to omit `<tbody>`.\n *\n * @param {Element} node\n * Element.\n * @param {number | undefined} index\n * Index of element in parent.\n * @param {Parents | undefined} parent\n * Parent of element.\n * @returns {boolean}\n * Whether the opening tag can be omitted.\n */\nfunction tbody(node, index, parent) {\n const previous = siblingBefore(parent, index)\n const head = siblingAfter(node, -1)\n\n // Previous table section was already omitted.\n if (\n parent &&\n previous &&\n previous.type === 'element' &&\n (previous.tagName === 'thead' || previous.tagName === 'tbody') &&\n closing(previous, parent.children.indexOf(previous), parent)\n ) {\n return false\n }\n\n return Boolean(head && head.type === 'element' && head.tagName === 'tr')\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Properties} Properties\n *\n * @typedef {import('../index.js').State} State\n */\n\nimport {ccount} from 'ccount'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {find, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringifyEntities} from 'stringify-entities'\nimport {closing} from '../omission/closing.js'\nimport {opening} from '../omission/opening.js'\n\n/**\n * Maps of subsets.\n *\n * Each value is a matrix of tuples.\n * The value at `0` causes parse errors, the value at `1` is valid.\n * Of both, the value at `0` is unsafe, and the value at `1` is safe.\n *\n * @type {Record<'double' | 'name' | 'single' | 'unquoted', Array<[Array<string>, Array<string>]>>}\n */\nconst constants = {\n // See: <https://html.spec.whatwg.org/#attribute-name-state>.\n name: [\n ['\\t\\n\\f\\r &/=>'.split(''), '\\t\\n\\f\\r \"&\\'/=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'/<=>'.split(''), '\\0\\t\\n\\f\\r \"&\\'/<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(unquoted)-state>.\n unquoted: [\n ['\\t\\n\\f\\r &>'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')],\n ['\\0\\t\\n\\f\\r \"&\\'<=>`'.split(''), '\\0\\t\\n\\f\\r \"&\\'<=>`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state>.\n single: [\n [\"&'\".split(''), '\"&\\'`'.split('')],\n [\"\\0&'\".split(''), '\\0\"&\\'`'.split('')]\n ],\n // See: <https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state>.\n double: [\n ['\"&'.split(''), '\"&\\'`'.split('')],\n ['\\0\"&'.split(''), '\\0\"&\\'`'.split('')]\n ]\n}\n\n/**\n * Serialize an element node.\n *\n * @param {Element} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function element(node, index, parent, state) {\n const schema = state.schema\n const omit = schema.space === 'svg' ? false : state.settings.omitOptionalTags\n let selfClosing =\n schema.space === 'svg'\n ? state.settings.closeEmptyElements\n : state.settings.voids.includes(node.tagName.toLowerCase())\n /** @type {Array<string>} */\n const parts = []\n /** @type {string} */\n let last\n\n if (schema.space === 'html' && node.tagName === 'svg') {\n state.schema = svg\n }\n\n const attributes = serializeAttributes(state, node.properties)\n\n const content = state.all(\n schema.space === 'html' && node.tagName === 'template' ? node.content : node\n )\n\n state.schema = schema\n\n // If the node is categorised as void, but it has children, remove the\n // categorisation.\n // This enables for example `menuitem`s, which are void in W3C HTML but not\n // void in WHATWG HTML, to be stringified properly.\n // Note: `menuitem` has since been removed from the HTML spec, and so is no\n // longer void.\n if (content) selfClosing = false\n\n if (attributes || !omit || !opening(node, index, parent)) {\n parts.push('<', node.tagName, attributes ? ' ' + attributes : '')\n\n if (\n selfClosing &&\n (schema.space === 'svg' || state.settings.closeSelfClosing)\n ) {\n last = attributes.charAt(attributes.length - 1)\n if (\n !state.settings.tightSelfClosing ||\n last === '/' ||\n (last && last !== '\"' && last !== \"'\")\n ) {\n parts.push(' ')\n }\n\n parts.push('/')\n }\n\n parts.push('>')\n }\n\n parts.push(content)\n\n if (!selfClosing && (!omit || !closing(node, index, parent))) {\n parts.push('</' + node.tagName + '>')\n }\n\n return parts.join('')\n}\n\n/**\n * @param {State} state\n * @param {Properties | null | undefined} properties\n * @returns {string}\n */\nfunction serializeAttributes(state, properties) {\n /** @type {Array<string>} */\n const values = []\n let index = -1\n /** @type {string} */\n let key\n\n if (properties) {\n for (key in properties) {\n if (properties[key] !== null && properties[key] !== undefined) {\n const value = serializeAttribute(state, key, properties[key])\n if (value) values.push(value)\n }\n }\n }\n\n while (++index < values.length) {\n const last = state.settings.tightAttributes\n ? values[index].charAt(values[index].length - 1)\n : undefined\n\n // In tight mode, don’t add a space after quoted attributes.\n if (index !== values.length - 1 && last !== '\"' && last !== \"'\") {\n values[index] += ' '\n }\n }\n\n return values.join('')\n}\n\n/**\n * @param {State} state\n * @param {string} key\n * @param {Properties[keyof Properties]} value\n * @returns {string}\n */\nfunction serializeAttribute(state, key, value) {\n const info = find(state.schema, key)\n const x =\n state.settings.allowParseErrors && state.schema.space === 'html' ? 0 : 1\n const y = state.settings.allowDangerousCharacters ? 0 : 1\n let quote = state.quote\n /** @type {string | undefined} */\n let result\n\n if (info.overloadedBoolean && (value === info.attribute || value === '')) {\n value = true\n } else if (\n info.boolean ||\n (info.overloadedBoolean && typeof value !== 'string')\n ) {\n value = Boolean(value)\n }\n\n if (\n value === null ||\n value === undefined ||\n value === false ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return ''\n }\n\n const name = stringifyEntities(\n info.attribute,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: constants.name[x][y]\n })\n )\n\n // No value.\n // There is currently only one boolean property in SVG: `[download]` on\n // `<a>`.\n // This property does not seem to work in browsers (Firefox, Safari, Chrome),\n // so I can’t test if dropping the value works.\n // But I assume that it should:\n //\n // ```html\n // <!doctype html>\n // <svg viewBox=\"0 0 100 100\">\n // <a href=https://example.com download>\n // <circle cx=50 cy=40 r=35 />\n // </a>\n // </svg>\n // ```\n //\n // See: <https://github.com/wooorm/property-information/blob/main/lib/svg.js>\n if (value === true) return name\n\n // `spaces` doesn’t accept a second argument, but it’s given here just to\n // keep the code cleaner.\n value = Array.isArray(value)\n ? (info.commaSeparated ? commas : spaces)(value, {\n padLeft: !state.settings.tightCommaSeparatedLists\n })\n : String(value)\n\n if (state.settings.collapseEmptyAttributes && !value) return name\n\n // Check unquoted value.\n if (state.settings.preferUnquoted) {\n result = stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n attribute: true,\n subset: constants.unquoted[x][y]\n })\n )\n }\n\n // If we don’t want unquoted, or if `value` contains character references when\n // unquoted…\n if (result !== value) {\n // If the alternative is less common than `quote`, switch.\n if (\n state.settings.quoteSmart &&\n ccount(value, quote) > ccount(value, state.alternative)\n ) {\n quote = state.alternative\n }\n\n result =\n quote +\n stringifyEntities(\n value,\n Object.assign({}, state.settings.characterReferences, {\n // Always encode without parse errors in non-HTML.\n subset: (quote === \"'\" ? constants.single : constants.double)[x][y],\n attribute: true\n })\n ) +\n quote\n }\n\n // Don’t add a `=` for unquoted empties.\n return name + (result ? '=' + result : result)\n}\n","/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\nimport {stringifyEntities} from 'stringify-entities'\n\n// Declare array as variable so it can be cached by `stringifyEntities`\nconst textEntitySubset = ['<', '&']\n\n/**\n * Serialize a text node.\n *\n * @param {Raw | Text} node\n * Node to handle.\n * @param {number | undefined} _\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function text(node, _, parent, state) {\n // Check if content of `node` should be escaped.\n return parent &&\n parent.type === 'element' &&\n (parent.tagName === 'script' || parent.tagName === 'style')\n ? node.value\n : stringifyEntities(\n node.value,\n Object.assign({}, state.settings.characterReferences, {\n subset: textEntitySubset\n })\n )\n}\n","/**\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('../index.js').State} State\n */\n\nimport {text} from './text.js'\n\n/**\n * Serialize a raw node.\n *\n * @param {Raw} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function raw(node, index, parent, state) {\n return state.settings.allowDangerousHtml\n ? node.value\n : text(node, index, parent, state)\n}\n","/**\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('../index.js').State} State\n */\n\n// Make VS code see references to the above types.\n''\n\n/**\n * Serialize a root.\n *\n * @param {Root} node\n * Node to handle.\n * @param {number | undefined} _1\n * Index of `node` in `parent.\n * @param {Parents | undefined} _2\n * Parent of `node`.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {string}\n * Serialized node.\n */\nexport function root(node, _1, _2, state) {\n return state.all(node)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n *\n * @typedef {import('../index.js').State} State\n */\n\nimport {zwitch} from 'zwitch'\nimport {comment} from './comment.js'\nimport {doctype} from './doctype.js'\nimport {element} from './element.js'\nimport {raw} from './raw.js'\nimport {root} from './root.js'\nimport {text} from './text.js'\n\n/**\n * @type {(node: Nodes, index: number | undefined, parent: Parents | undefined, state: State) => string}\n */\nexport const handle = zwitch('type', {\n invalid,\n unknown,\n handlers: {comment, doctype, element, raw, root, text}\n})\n\n/**\n * Fail when a non-node is found in the tree.\n *\n * @param {unknown} node\n * Unknown value.\n * @returns {never}\n * Never.\n */\nfunction invalid(node) {\n throw new Error('Expected node, not `' + node + '`')\n}\n\n/**\n * Fail when a node with an unknown type is found in the tree.\n *\n * @param {unknown} node_\n * Unknown node.\n * @returns {never}\n * Never.\n */\nfunction unknown(node_) {\n // `type` is guaranteed by runtime JS.\n const node = /** @type {Nodes} */ (node_)\n throw new Error('Cannot compile unknown node `' + node.type + '`')\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('stringify-entities').Options} StringifyEntitiesOptions\n */\n\n/**\n * @typedef {Omit<StringifyEntitiesOptions, 'attribute' | 'escapeOnly' | 'subset'>} CharacterReferences\n *\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [allowDangerousCharacters=false]\n * Do not encode some characters which cause XSS vulnerabilities in older\n * browsers (default: `false`).\n *\n * > âš ï¸ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Allow `raw` nodes and insert them as raw HTML (default: `false`).\n *\n * When `false`, `Raw` nodes are encoded.\n *\n * > âš ï¸ **Danger**: only set this if you completely trust the content.\n * @property {boolean | null | undefined} [allowParseErrors=false]\n * Do not encode characters which cause parse errors (even though they work),\n * to save bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [bogusComments=false]\n * Use “bogus comments†instead of comments to save byes: `<?charlie>`\n * instead of `<!--charlie-->` (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {CharacterReferences | null | undefined} [characterReferences]\n * Configure how to serialize character references (optional).\n * @property {boolean | null | undefined} [closeEmptyElements=false]\n * Close SVG elements without any content with slash (`/`) on the opening tag\n * instead of an end tag: `<circle />` instead of `<circle></circle>`\n * (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the HTML space.\n * @property {boolean | null | undefined} [closeSelfClosing=false]\n * Close self-closing nodes with an extra slash (`/`): `<img />` instead of\n * `<img>` (default: `false`).\n *\n * See `tightSelfClosing` to control whether a space is used before the\n * slash.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [collapseEmptyAttributes=false]\n * Collapse empty attributes: get `class` instead of `class=\"\"` (default:\n * `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: boolean attributes (such as `hidden`) are always collapsed.\n * @property {boolean | null | undefined} [omitOptionalTags=false]\n * Omit optional opening and closing tags (default: `false`).\n *\n * For example, in `<ol><li>one</li><li>two</li></ol>`, both `</li>` closing\n * tags can be omitted.\n * The first because it’s followed by another `li`, the last because it’s\n * followed by nothing.\n *\n * Not used in the SVG space.\n * @property {boolean | null | undefined} [preferUnquoted=false]\n * Leave attributes unquoted if that results in less bytes (default: `false`).\n *\n * Not used in the SVG space.\n * @property {Quote | null | undefined} [quote='\"']\n * Preferred quote to use (default: `'\"'`).\n * @property {boolean | null | undefined} [quoteSmart=false]\n * Use the other quote if that results in less bytes (default: `false`).\n * @property {Space | null | undefined} [space='html']\n * When an `<svg>` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it (default: `'html'`).\n *\n * > 👉 **Note**: hast is not XML.\n * > It supports SVG as embedded in HTML.\n * > It does not support the features available in XML.\n * > Passing SVG might break but fragments of modern SVG should be fine.\n * > Use [`xast`][xast] if you need to support SVG as XML.\n * @property {boolean | null | undefined} [tightAttributes=false]\n * Join attributes together, without whitespace, if possible: get\n * `class=\"a b\"title=\"c d\"` instead of `class=\"a b\" title=\"c d\"` to save\n * bytes (default: `false`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightCommaSeparatedLists=false]\n * Join known comma-separated attribute values with just a comma (`,`),\n * instead of padding them on the right as well (`,â `, where `â ` represents a\n * space) (default: `false`).\n * @property {boolean | null | undefined} [tightDoctype=false]\n * Drop unneeded spaces in doctypes: `<!doctypehtml>` instead of\n * `<!doctype html>` to save bytes (default: `false`).\n *\n * > 👉 **Note**: intentionally creates parse errors in markup (how parse\n * > errors are handled is well defined, so this works but isn’t pretty).\n * @property {boolean | null | undefined} [tightSelfClosing=false]\n * Do not use an extra space when closing self-closing elements: `<img/>`\n * instead of `<img />` (default: `false`).\n *\n * > 👉 **Note**: only used if `closeSelfClosing: true` or\n * > `closeEmptyElements: true`.\n * @property {boolean | null | undefined} [upperDoctype=false]\n * Use a `<!DOCTYPE…` instead of `<!doctype…` (default: `false`).\n *\n * Useless except for XHTML.\n * @property {ReadonlyArray<string> | null | undefined} [voids]\n * Tag names of elements to serialize without closing tag (default: `html-void-elements`).\n *\n * Not used in the SVG space.\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass this, because\n * > hast is not for XML, and HTML will not add more void elements.\n *\n * @typedef {'\"' | \"'\"} Quote\n * HTML quotes for attribute values.\n *\n * @typedef {Omit<Required<{[key in keyof Options]: Exclude<Options[key], null | undefined>}>, 'space' | 'quote'>} Settings\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Nodes, index: number | undefined, parent: Parents | undefined) => string} one\n * Serialize one node.\n * @property {(node: Parents | undefined) => string} all\n * Serialize the children of a parent node.\n * @property {Settings} settings\n * User configuration.\n * @property {Schema} schema\n * Current schema.\n * @property {Quote} quote\n * Preferred quote.\n * @property {Quote} alternative\n * Alternative quote.\n */\n\nimport {htmlVoidElements} from 'html-void-elements'\nimport {html, svg} from 'property-information'\nimport {handle} from './handle/index.js'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/** @type {CharacterReferences} */\nconst emptyCharacterReferences = {}\n\n/** @type {Array<never>} */\nconst emptyChildren = []\n\n/**\n * Serialize hast as HTML.\n *\n * @param {Array<RootContent> | Nodes} tree\n * Tree to serialize.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized HTML.\n */\nexport function toHtml(tree, options) {\n const options_ = options || emptyOptions\n const quote = options_.quote || '\"'\n const alternative = quote === '\"' ? \"'\" : '\"'\n\n if (quote !== '\"' && quote !== \"'\") {\n throw new Error('Invalid quote `' + quote + '`, expected `\\'` or `\"`')\n }\n\n /** @type {State} */\n const state = {\n one,\n all,\n settings: {\n omitOptionalTags: options_.omitOptionalTags || false,\n allowParseErrors: options_.allowParseErrors || false,\n allowDangerousCharacters: options_.allowDangerousCharacters || false,\n quoteSmart: options_.quoteSmart || false,\n preferUnquoted: options_.preferUnquoted || false,\n tightAttributes: options_.tightAttributes || false,\n upperDoctype: options_.upperDoctype || false,\n tightDoctype: options_.tightDoctype || false,\n bogusComments: options_.bogusComments || false,\n tightCommaSeparatedLists: options_.tightCommaSeparatedLists || false,\n tightSelfClosing: options_.tightSelfClosing || false,\n collapseEmptyAttributes: options_.collapseEmptyAttributes || false,\n allowDangerousHtml: options_.allowDangerousHtml || false,\n voids: options_.voids || htmlVoidElements,\n characterReferences:\n options_.characterReferences || emptyCharacterReferences,\n closeSelfClosing: options_.closeSelfClosing || false,\n closeEmptyElements: options_.closeEmptyElements || false\n },\n schema: options_.space === 'svg' ? svg : html,\n quote,\n alternative\n }\n\n return state.one(\n Array.isArray(tree) ? {type: 'root', children: tree} : tree,\n undefined,\n undefined\n )\n}\n\n/**\n * Serialize a node.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Nodes} node\n * Node to handle.\n * @param {number | undefined} index\n * Index of `node` in `parent.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {string}\n * Serialized node.\n */\nfunction one(node, index, parent) {\n return handle(node, index, parent, this)\n}\n\n/**\n * Serialize all children of `parent`.\n *\n * @this {State}\n * Info passed around about the current state.\n * @param {Parents | undefined} parent\n * Parent whose children to serialize.\n * @returns {string}\n */\nexport function all(parent) {\n /** @type {Array<string>} */\n const results = []\n const children = (parent && parent.children) || emptyChildren\n let index = -1\n\n while (++index < children.length) {\n results[index] = this.one(children[index], index, parent)\n }\n\n return results.join('')\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-html').Options} Options\n * @typedef {import('unified').Compiler<Root, string>} Compiler\n */\n\nimport {toHtml} from 'hast-util-to-html'\n\n/**\n * Plugin to add support for serializing as HTML.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function rehypeStringify(options) {\n /** @type {import('unified').Processor<undefined, undefined, undefined, Root, string>} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n const settings = {...self.data('settings'), ...options}\n\n self.compiler = compiler\n\n /**\n * @type {Compiler}\n */\n function compiler(tree) {\n return toHtml(tree, settings)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n return d\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<Ancestor>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor<Node>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,\n * Extract<Descendant, Parent>\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * import {h} from 'hastscript'\n * import {toString} from 'hast-util-to-string'\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {Root|Root['children'][number]} Node\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Node} node\n * @returns {string}\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.â€\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.â€\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Node} node\n * @returns {string}\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Root|Element} node\n * @returns {string}\n */\nfunction all(node) {\n let index = -1\n /** @type {string[]} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record<string, unknown>} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<string | Props | TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [cascade=true]\n * Whether to drop parent nodes if they had children, but all their children\n * were filtered out.\n */\n\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create a new `tree` of copies of all nodes that pass `test`.\n *\n * The tree is walked in *preorder* (NLR), visiting the node itself, then its\n * head, etc.\n *\n * @param tree\n * Tree to filter.\n * @param options\n * Configuration (optional).\n * @param test\n * `unist-util-is` compatible test.\n * @returns\n * New filtered tree.\n *\n * `null` is returned if `tree` itself didn’t pass the test, or is cascaded\n * away.\n */\nexport const filter =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(node: Tree, options: Options | null | undefined, test: Check | null | undefined) => import('./complex-types.js').Matches<Tree, Check>) &\n * (<Tree extends Node, Check extends Test>(node: Tree, test: Check) => import('./complex-types.js').Matches<Tree, Check>) &\n * (<Tree extends Node>(node: Tree, options?: Options | null | undefined) => Tree)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Options | Test | null | undefined} [options]\n * @param {Test | null | undefined} [test]\n * @returns {Node | null}\n */\n function (tree, options, test) {\n const is = convert(test || options)\n /** @type {boolean | null | undefined} */\n const cascadeRaw =\n options && typeof options === 'object' && 'cascade' in options\n ? /** @type {boolean | null | undefined} */ (options.cascade)\n : undefined\n const cascade =\n cascadeRaw === undefined || cascadeRaw === null ? true : cascadeRaw\n\n return preorder(tree)\n\n /**\n * @param {Node} node\n * Current node.\n * @param {number | undefined} [index]\n * Index of `node` in `parent`.\n * @param {Parent | undefined} [parent]\n * Parent node.\n * @returns {Node | null}\n * Shallow copy of `node`.\n */\n function preorder(node, index, parent) {\n /** @type {Array<Node>} */\n const children = []\n\n if (!is(node, index, parent)) return null\n\n // @ts-expect-error: Looks like a parent.\n if (node.children) {\n let childIndex = -1\n\n // @ts-expect-error Looks like a parent.\n while (++childIndex < node.children.length) {\n // @ts-expect-error Looks like a parent.\n const result = preorder(node.children[childIndex], childIndex, node)\n\n if (result) {\n children.push(result)\n }\n }\n\n // @ts-expect-error Looks like a parent.\n if (cascade && node.children.length > 0 && children.length === 0)\n return null\n }\n\n // Create a shallow clone, using the new children.\n /** @type {typeof node} */\n // @ts-expect-error all the fields will be copied over.\n const next = {}\n /** @type {string} */\n let key\n\n for (key in node) {\n if (own.call(node, key)) {\n // @ts-expect-error: Looks like a record.\n next[key] = key === 'children' ? children : node[key]\n }\n }\n\n return next\n }\n }\n )\n","/**\n * @param {string} string The string to parse\n * @returns {Array<number>} Returns an energetic array.\n */\nfunction parsePart(string) {\n let res = [];\n let m;\n\n for (let str of string.split(\",\").map((str) => str.trim())) {\n // just a number\n if (/^-?\\d+$/.test(str)) {\n res.push(parseInt(str, 10));\n } else if (\n (m = str.match(/^(-?\\d+)(-|\\.\\.\\.?|\\u2025|\\u2026|\\u22EF)(-?\\d+)$/))\n ) {\n // 1-5 or 1..5 (equivalent) or 1...5 (doesn't include 5)\n let [_, lhs, sep, rhs] = m;\n\n if (lhs && rhs) {\n lhs = parseInt(lhs);\n rhs = parseInt(rhs);\n const incr = lhs < rhs ? 1 : -1;\n\n // Make it inclusive by moving the right 'stop-point' away by one.\n if (sep === \"-\" || sep === \"..\" || sep === \"\\u2025\") rhs += incr;\n\n for (let i = lhs; i !== rhs; i += incr) res.push(i);\n }\n }\n }\n\n return res;\n}\n\nexports.default = parsePart;\nmodule.exports = parsePart;\n","// @ts-nocheck\nclike.displayName = 'clike'\nclike.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nc.displayName = 'c'\nc.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function c(Prism) {\n Prism.register(refractorClike)\n Prism.languages.c = Prism.languages.extend('clike', {\n comment: {\n pattern:\n /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n string: {\n // https://en.cppreference.com/w/c/language/string_literal\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n })\n Prism.languages.insertBefore('c', 'string', {\n char: {\n // https://en.cppreference.com/w/c/language/character_constant\n pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('c', 'string', {\n macro: {\n // allow for multiline macro definitions\n // spaces after the # character compile fine with gcc\n pattern:\n /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n string: [\n {\n // highlight the path of the include statement as a string\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n },\n Prism.languages.c['string']\n ],\n char: Prism.languages.c['char'],\n comment: Prism.languages.c['comment'],\n 'macro-name': [\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n },\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }\n ],\n // highlight macro directives as keywords\n directive: {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n punctuation: /##|\\\\(?=[\\r\\n])/,\n expression: {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n }\n })\n Prism.languages.insertBefore('c', 'function', {\n // highlight predefined macros as constants\n constant:\n /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n })\n delete Prism.languages.c['boolean']\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\ncpp.displayName = 'cpp'\ncpp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cpp(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n var keyword =\n /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [\n {\n pattern: RegExp(\n /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n ),\n lookbehind: true\n },\n // This is intended to capture the class name of method implementations like:\n // void foo::bar() const {}\n // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n // it starts with an uppercase letter. This approximation should give decent results.\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/,\n // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i,\n // This also intends to capture the class name of method implementations but here the class has template\n // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n ],\n keyword: keyword,\n number: {\n pattern:\n /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n operator:\n />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n Prism.languages.insertBefore('cpp', 'string', {\n module: {\n // https://en.cppreference.com/w/cpp/language/modules\n pattern: RegExp(\n /(\\b(?:import|module)\\s+)/.source +\n '(?:' +\n // header-name\n /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n '|' +\n // module name or partition or both\n /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n /<mod-name>/g,\n function () {\n return modName\n }\n ) +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n string: /^[<\"][\\s\\S]+/,\n operator: /:/,\n punctuation: /\\./\n }\n },\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n })\n Prism.languages.insertBefore('cpp', 'keyword', {\n 'generic-function': {\n pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<[\\s\\S]+/,\n alias: 'class-name',\n inside: Prism.languages.cpp\n }\n }\n }\n })\n Prism.languages.insertBefore('cpp', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('cpp', 'class-name', {\n // the base clause is an optional list of parent classes\n // https://en.cppreference.com/w/cpp/language/class\n 'base-clause': {\n pattern:\n /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'double-colon',\n {\n // All untokenized words that are not namespaces should be class names\n 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n },\n Prism.languages.cpp['base-clause']\n )\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCpp from './cpp.js'\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\n\n/** @type {import('../core.js').Syntax} */\nexport default function arduino(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.arduino = Prism.languages.extend('cpp', {\n keyword:\n /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n constant:\n /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n builtin:\n /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n })\n Prism.languages.ino = Prism.languages.arduino\n}\n","// @ts-nocheck\nbash.displayName = 'bash'\nbash.aliases = ['sh', 'shell']\n\n/** @type {import('../core.js').Syntax} */\nexport default function bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number:\n /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator:\n /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n },\n // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n },\n // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity:\n /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {â€\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=†and “+=â€).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n // Highlight parameter names as variables\n parameter: {\n pattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?=[=\\s]|$)/,\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n // Here-document with quotes around the tag\n // → No expansion (so no “insideâ€).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n },\n // “Normal†string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern:\n /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'parameter',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.sh = Prism.languages.bash\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['cs', 'dotnet']\n\n/** @type {import('../core.js').Syntax} */\nexport default function csharp(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n }\n\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n // keywords which are used to declare a type\n typeDeclaration: 'class enum interface record struct',\n // contextual keywords\n // (\"var\" and \"dynamic\" are missing because they are used like types)\n contextual:\n 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n // all other keywords\n other:\n 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n }\n\n // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var typeDeclarationKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration\n )\n var keywords = RegExp(\n keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n )\n var nonTypeKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n var nonContextualKeywords = keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.other\n )\n\n // types\n var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n nonTypeKeywords,\n genericName\n ])\n var array = /\\[\\s*(?:,\\s*)*\\]/.source\n var typeExpressionWithoutTuple = replace(\n /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n [identifier, array]\n )\n var tupleElement = replace(\n /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n [generic, nestedRound, array]\n )\n var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n var typeExpression = replace(\n /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n [tuple, identifier, array]\n )\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n }\n\n // strings & characters\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n Prism.languages.csharp = Prism.languages.extend('clike', {\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // Using static\n // using static System.Math;\n pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n identifier\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (type)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n name,\n typeExpression\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (alias)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n lookbehind: true\n },\n {\n // Type declarations\n // class Foo<A, B>\n // interface Foo<out A, B>\n pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n typeDeclarationKeywords,\n genericName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Single catch exception declaration\n // catch(Foo)\n // (things like catch(Foo e) is covered by variable declaration)\n pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Name of the type parameter of generic constraints\n // where Foo : class\n pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n lookbehind: true\n },\n {\n // Casts and checks via as and is.\n // as Foo<A>, is Bar<B>\n // (things like if(a is Foo b) is covered by variable declaration)\n pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n typeExpressionWithoutTuple\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Variable, field and parameter declaration\n // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n pattern: re(\n /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n .source,\n [typeExpression, nonContextualKeywords, name]\n ),\n inside: typeInside\n }\n ],\n keyword: keywords,\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n number:\n /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('csharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('csharp', 'punctuation', {\n 'named-parameter': {\n pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('csharp', 'class-name', {\n namespace: {\n // namespace Foo.Bar {}\n // using Foo.Bar;\n pattern: re(\n /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n [name]\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n 'type-expression': {\n // default(Foo), typeof(Foo<Bar>), sizeof(int)\n pattern: re(\n /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n .source,\n [nestedRound]\n ),\n lookbehind: true,\n alias: 'class-name',\n inside: typeInside\n },\n 'return-type': {\n // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n // int Foo => 0; int Foo { get; set } = 0;\n pattern: re(\n /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n [typeExpression, identifier]\n ),\n inside: typeInside,\n alias: 'class-name'\n },\n 'constructor-invocation': {\n // new List<Foo<Bar[]>> { }\n pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n lookbehind: true,\n inside: typeInside,\n alias: 'class-name'\n },\n /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n 'generic-method': {\n // foo<Bar>()\n pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n inside: {\n function: re(/^<<0>>/.source, [name]),\n generic: {\n pattern: RegExp(generic),\n alias: 'class-name',\n inside: typeInside\n }\n }\n },\n 'type-list': {\n // The list of types inherited or of generic constraints\n // class Foo<F> : Bar, IList<FooBar>\n // where F : Bar, IList<int>\n pattern: re(\n /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n .source,\n [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source,\n nestedRound,\n /\\bnew\\s*\\(\\s*\\)/.source\n ]\n ),\n lookbehind: true,\n inside: {\n 'record-arguments': {\n pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n genericName,\n nestedRound\n ]),\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.csharp\n },\n keyword: keywords,\n 'class-name': {\n pattern: RegExp(typeExpression),\n greedy: true,\n inside: typeInside\n },\n punctuation: /[,()]/\n }\n },\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n // highlight preprocessor directives as keywords\n directive: {\n pattern:\n /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n })\n\n // attributes\n var regularStringOrCharacter = regularString + '|' + character\n var regularStringCharacterOrComment = replace(\n /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n [regularStringOrCharacter]\n )\n var roundExpression = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n )\n\n // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n var attrTarget =\n /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n .source\n var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n identifier,\n roundExpression\n ])\n Prism.languages.insertBefore('csharp', 'class-name', {\n attribute: {\n // Attributes\n // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n pattern: re(\n /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n .source,\n [attrTarget, attr]\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n target: {\n pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n alias: 'keyword'\n },\n 'attribute-arguments': {\n pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n inside: Prism.languages.csharp\n },\n 'class-name': {\n pattern: RegExp(identifier),\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[:,]/\n }\n }\n })\n\n // string interpolation\n var formatString = /:[^}\\r\\n]+/.source\n // multi line\n var mInterpolationRound = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n )\n var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n mInterpolationRound,\n formatString\n ])\n // single line\n var sInterpolationRound = nested(\n replace(\n /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n .source,\n [regularStringOrCharacter]\n ),\n 2\n )\n var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n sInterpolationRound,\n formatString\n ])\n function createInterpolationInside(interpolation, interpolationRound) {\n return {\n interpolation: {\n pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n lookbehind: true,\n inside: {\n 'format-string': {\n pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n interpolationRound,\n formatString\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^:/\n }\n },\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-csharp',\n inside: Prism.languages.csharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.insertBefore('csharp', 'string', {\n 'interpolation-string': [\n {\n pattern: re(\n /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n [mInterpolation]\n ),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n },\n {\n pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n sInterpolation\n ]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n }\n ],\n char: {\n pattern: RegExp(character),\n greedy: true\n }\n })\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n })(Prism)\n}\n","// @ts-nocheck\nmarkup.displayName = 'markup'\nmarkup.aliases = ['atom', 'html', 'mathml', 'rss', 'ssml', 'svg', 'xml']\n\n/** @type {import('../core.js').Syntax} */\nexport default function markup(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern:\n /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern:\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup\n\n // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(\n /(^|[\"'\\s])/.source +\n '(?:' +\n attrName +\n ')' +\n /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n 'i'\n ),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n })\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n","// @ts-nocheck\ncss.displayName = 'css'\ncss.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function css(Prism) {\n ;(function (Prism) {\n var string =\n /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: RegExp(\n '@[\\\\w-](?:' +\n /[^;{\\s\"']|\\s+(?!\\s)/.source +\n '|' +\n string.source +\n ')*?' +\n /(?:;|(?=\\s*\\{))/.source\n ),\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern:\n /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n }\n // See rest below\n }\n },\n\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp(\n '\\\\burl\\\\((?:' +\n string.source +\n '|' +\n /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n ')\\\\)',\n 'i'\n ),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp(\n '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n string.source +\n ')*(?=\\\\s*\\\\{)'\n ),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n }\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n var markup = Prism.languages.markup\n if (markup) {\n markup.tag.addInlined('style', 'css')\n markup.tag.addAttribute('style', 'css')\n }\n })(Prism)\n}\n","// @ts-nocheck\ndiff.displayName = 'diff'\ndiff.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function diff(Prism) {\n ;(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m,\n // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m\n ]\n\n // deleted, inserted, unchanged, diff\n }\n\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!'\n }\n\n // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name]\n var alias = []\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0])\n }\n if (name === 'diff') {\n alias.push('bold')\n }\n Prism.languages.diff[name] = {\n pattern: RegExp(\n '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n 'm'\n ),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0]\n }\n }\n }\n })\n\n // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ngo.displayName = 'go'\ngo.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function go(Prism) {\n Prism.register(refractorClike)\n Prism.languages.go = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n number: [\n // binary and octal integers\n /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i,\n // hexadecimal integers and floats\n /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n // decimal integers and floats\n /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n ],\n operator:\n /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n builtin:\n /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n })\n Prism.languages.insertBefore('go', 'string', {\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n greedy: true\n }\n })\n delete Prism.languages.go['class-name']\n}\n","// @ts-nocheck\nini.displayName = 'ini'\nini.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function ini(Prism) {\n Prism.languages.ini = {\n /**\n * The component mimics the behavior of the Win32 API parser.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n */\n\n comment: {\n pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n lookbehind: true\n },\n section: {\n pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n lookbehind: true,\n inside: {\n 'section-name': {\n pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n lookbehind: true,\n alias: 'selector'\n },\n punctuation: /\\[|\\]/\n }\n },\n key: {\n pattern:\n /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n lookbehind: true,\n alias: 'attr-value',\n inside: {\n 'inner-value': {\n pattern: /^(\"|').+(?=\\1$)/,\n lookbehind: true\n }\n }\n },\n punctuation: /=/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\njava.displayName = 'java'\njava.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function java(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\\s*[(){}[\\]<>=%~.:,;?+\\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/\n\n // full package (optional) + parent classes (optional)\n var classNamePrefix = /(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/.source\n\n // based on the java naming conventions\n var className = {\n pattern: RegExp(\n /(^|[^\\w.])/.source +\n classNamePrefix +\n /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source\n ),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /\\./\n }\n }\n Prism.languages.java = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n className,\n {\n // variables, parameters, and constructor references\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n /(^|[^\\w.])/.source +\n classNamePrefix +\n /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)/\n .source\n ),\n lookbehind: true,\n inside: className.inside\n },\n {\n // class names based on keyword\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n /(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)/\n .source +\n classNamePrefix +\n /[A-Z]\\w*\\b/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n function: [\n Prism.languages.clike.function,\n {\n pattern: /(::\\s*)[a-z_]\\w*/,\n lookbehind: true\n }\n ],\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n operator: {\n pattern:\n /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n lookbehind: true\n },\n constant: /\\b[A-Z][A-Z_\\d]+\\b/\n })\n Prism.languages.insertBefore('java', 'string', {\n 'triple-quoted-string': {\n // http://openjdk.java.net/jeps/355#Description\n pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('java', 'class-name', {\n annotation: {\n pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n lookbehind: true,\n alias: 'punctuation'\n },\n generics: {\n pattern:\n /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n },\n import: [\n {\n pattern: RegExp(\n /(\\bimport\\s+)/.source +\n classNamePrefix +\n /(?:[A-Z]\\w*|\\*)(?=\\s*;)/.source\n ),\n lookbehind: true,\n inside: {\n namespace: className.inside.namespace,\n punctuation: /\\./,\n operator: /\\*/,\n 'class-name': /\\w+/\n }\n },\n {\n pattern: RegExp(\n /(\\bimport\\s+static\\s+)/.source +\n classNamePrefix +\n /(?:\\w+|\\*)(?=\\s*;)/.source\n ),\n lookbehind: true,\n alias: 'static',\n inside: {\n namespace: className.inside.namespace,\n static: /\\b\\w+$/,\n punctuation: /\\./,\n operator: /\\*/,\n 'class-name': /\\w+/\n }\n }\n ],\n namespace: {\n pattern: RegExp(\n /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nregex.displayName = 'regex'\nregex.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function regex(Prism) {\n ;(function (Prism) {\n var specialEscape = {\n pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n alias: 'escape'\n }\n var escape =\n /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n var charSet = {\n pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var charSetWithoutDot = {\n pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n var range = RegExp(rangeChar + '-' + rangeChar)\n\n // the name of a capturing group\n var groupName = {\n pattern: /(<|')[^<>']+(?=[>']$)/,\n lookbehind: true,\n alias: 'variable'\n }\n Prism.languages.regex = {\n 'char-class': {\n pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n lookbehind: true,\n inside: {\n 'char-class-negation': {\n pattern: /(^\\[)\\^/,\n lookbehind: true,\n alias: 'operator'\n },\n 'char-class-punctuation': {\n pattern: /^\\[|\\]$/,\n alias: 'punctuation'\n },\n range: {\n pattern: range,\n inside: {\n escape: escape,\n 'range-punctuation': {\n pattern: /-/,\n alias: 'operator'\n }\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSetWithoutDot,\n escape: escape\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSet,\n backreference: [\n {\n // a backreference which is not an octal escape\n pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n alias: 'keyword'\n },\n {\n pattern: /\\\\k<[^<>']+>/,\n alias: 'keyword',\n inside: {\n 'group-name': groupName\n }\n }\n ],\n anchor: {\n pattern: /[$^]|\\\\[ABbGZz]/,\n alias: 'function'\n },\n escape: escape,\n group: [\n {\n // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n\n // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n pattern:\n /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n alias: 'punctuation',\n inside: {\n 'group-name': groupName\n }\n },\n {\n pattern: /\\)/,\n alias: 'punctuation'\n }\n ],\n quantifier: {\n pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n alias: 'number'\n },\n alternation: {\n pattern: /\\|/,\n alias: 'keyword'\n }\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\n\n/** @type {import('../core.js').Syntax} */\nexport default function javascript(Prism) {\n Prism.register(refractorClike)\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(\n /(^|[^\\w$])/.source +\n '(?:' +\n // constant\n (/NaN|Infinity/.source +\n '|' +\n // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source +\n '|' +\n // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n '|' +\n // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n '|' +\n // decimal bigint\n /\\d+(?:_\\d+)*n/.source +\n '|' +\n // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n .source) +\n ')' +\n /(?![\\w$])/.source\n ),\n lookbehind: true\n },\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n pattern: RegExp(\n // lookbehind\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n // Regex pattern:\n // There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n // classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n // with the only syntax, so we have to define 2 different regex patterns.\n /\\//.source +\n '(?:' +\n /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/\n .source +\n '|' +\n // `v` flag syntax. This supports 3 levels of nested character classes.\n /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/\n .source +\n ')' +\n // lookahead\n /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern:\n /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n })\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript')\n\n // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n Prism.languages.markup.tag.addAttribute(\n /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n .source,\n 'javascript'\n )\n }\n Prism.languages.js = Prism.languages.javascript\n}\n","// @ts-nocheck\njson.displayName = 'json'\njson.aliases = ['webmanifest']\n\n/** @type {import('../core.js').Syntax} */\nexport default function json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\n\n/** @type {import('../core.js').Syntax} */\nexport default function kotlin(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n Prism.languages.kotlin = Prism.languages.extend('clike', {\n keyword: {\n // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n pattern:\n /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n lookbehind: true\n },\n function: [\n {\n pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n greedy: true\n },\n {\n pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n lookbehind: true,\n greedy: true\n }\n ],\n number:\n /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n operator:\n /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n })\n delete Prism.languages.kotlin['class-name']\n var interpolationInside = {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.kotlin\n }\n }\n Prism.languages.insertBefore('kotlin', 'string', {\n // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n 'string-literal': [\n {\n pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n alias: 'multiline',\n inside: {\n interpolation: {\n pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n alias: 'singleline',\n inside: {\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n lookbehind: true,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n char: {\n // https://kotlinlang.org/spec/expressions.html#character-literals\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n greedy: true\n }\n })\n delete Prism.languages.kotlin['string']\n Prism.languages.insertBefore('kotlin', 'keyword', {\n annotation: {\n pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('kotlin', 'function', {\n label: {\n pattern: /\\b\\w+@|@\\w+\\b/,\n alias: 'symbol'\n }\n })\n Prism.languages.kt = Prism.languages.kotlin\n Prism.languages.kts = Prism.languages.kotlin\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCss from './css.js'\nless.displayName = 'less'\nless.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function less(Prism) {\n Prism.register(refractorCss)\n /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n\n Prism.languages.less = Prism.languages.extend('css', {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n }\n ],\n atrule: {\n pattern:\n /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n punctuation: /[:()]/\n }\n },\n // selectors and mixins are considered the same\n selector: {\n pattern:\n /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n // mixin parameters\n variable: /@+[\\w-]+/\n }\n },\n property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n operator: /[+\\-*\\/]/\n })\n Prism.languages.insertBefore('less', 'property', {\n variable: [\n // Variable declaration (the colon must be consumed!)\n {\n pattern: /@[\\w-]+\\s*:/,\n inside: {\n punctuation: /:/\n }\n },\n // Variable usage\n /@@?[\\w-]+/\n ],\n 'mixin-usage': {\n pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n lookbehind: true,\n alias: 'function'\n }\n })\n}\n","// @ts-nocheck\nlua.displayName = 'lua'\nlua.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function lua(Prism) {\n Prism.languages.lua = {\n comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n // \\z may be used to skip the following space\n string: {\n pattern:\n /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n greedy: true\n },\n number:\n /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n keyword:\n /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n operator: [\n /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n {\n // Match \"..\" but don't break \"...\"\n pattern: /(^|[^.])\\.\\.(?!\\.)/,\n lookbehind: true\n }\n ],\n punctuation: /[\\[\\](){},;]|\\.+|:+/\n }\n}\n","// @ts-nocheck\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function makefile(Prism) {\n Prism.languages.makefile = {\n comment: {\n pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'builtin-target': {\n pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n alias: 'builtin'\n },\n target: {\n pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n alias: 'symbol',\n inside: {\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n }\n },\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n // Directives\n keyword:\n /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n function: {\n pattern:\n /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n lookbehind: true\n },\n operator: /(?:::|[?:+!])?=|[|@]/,\n punctuation: /[:;(){}]/\n }\n}\n","// @ts-nocheck\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\n\n/** @type {import('../core.js').Syntax} */\nexport default function yaml(Prism) {\n ;(function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/\n // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag =\n /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/\n // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n var properties =\n '(?:' +\n tag.source +\n '(?:[ \\t]+' +\n anchorOrAlias.source +\n ')?|' +\n anchorOrAlias.source +\n '(?:[ \\t]+' +\n tag.source +\n ')?)'\n // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n var plainKey =\n /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n /<PLAIN>/g,\n function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n .source\n }\n )\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n var pattern =\n /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<value>>/g, function () {\n return value\n })\n return RegExp(pattern, flags)\n }\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(\n /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n /<<prop>>/g,\n function () {\n return properties\n }\n )\n ),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(\n /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')'\n })\n ),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(\n /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n .source\n ),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/false|true/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(\n /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n }\n Prism.languages.yml = Prism.languages.yaml\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\n\n/** @type {import('../core.js').Syntax} */\nexport default function markdown(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow =\n /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine =\n /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern:\n /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern:\n /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string:\n /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern:\n /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n inside\n ) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n })\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp')\n // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang\n\n // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n env.content = Prism.highlight(env.content.value, grammar, codeLang)\n }\n })\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n }\n\n // IE 11 doesn't support `String.fromCodePoint`\n var fromCodePoint = String.fromCodePoint || String.fromCharCode\n\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, '')\n\n // decode known entities\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase()\n if (code[0] === '#') {\n var value\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16)\n } else {\n value = Number(code.slice(1))\n }\n return fromCodePoint(value)\n } else {\n var known = KNOWN_ENTITY_NAMES[code]\n if (known) {\n return known\n }\n\n // unable to decode\n return m\n }\n })\n return text\n }\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\n\n/** @type {import('../core.js').Syntax} */\nexport default function objectivec(Prism) {\n Prism.register(refractorC)\n Prism.languages.objectivec = Prism.languages.extend('c', {\n string: {\n pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n })\n delete Prism.languages.objectivec['class-name']\n Prism.languages.objc = Prism.languages.objectivec\n}\n","// @ts-nocheck\nperl.displayName = 'perl'\nperl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function perl(Prism) {\n ;(function (Prism) {\n var brackets =\n /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n .source\n Prism.languages.perl = {\n comment: [\n {\n // POD\n pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // TODO Could be nice to handle Heredoc too.\n string: [\n {\n pattern: RegExp(\n /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // q/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n // q a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source,\n // q(...)\n // q{...}\n // q[...]\n // q<...>\n brackets\n ].join('|') +\n ')'\n ),\n greedy: true\n },\n // \"...\", `...`\n {\n pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n },\n // '...'\n // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n {\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n }\n ],\n regex: [\n {\n pattern: RegExp(\n /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // m/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n // m a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source,\n // m(...)\n // m{...}\n // m[...]\n // m<...>\n brackets\n ].join('|') +\n ')' +\n /[msixpodualngc]*/.source\n ),\n greedy: true\n },\n // The lookbehinds prevent -s from breaking\n {\n pattern: RegExp(\n /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // s/.../.../\n // eslint-disable-next-line regexp/strict\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n .source,\n // s a...a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n .source,\n // s(...)(...)\n // s{...}{...}\n // s[...][...]\n // s<...><...>\n // s(...)[...]\n brackets + /\\s*/.source + brackets\n ].join('|') +\n ')' +\n /[msixpodualngcer]*/.source\n ),\n lookbehind: true,\n greedy: true\n },\n // /.../\n // The look-ahead tries to prevent two divisions on\n // the same line from being highlighted as regex.\n // This does not support multi-line regex.\n {\n pattern:\n /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n greedy: true\n }\n ],\n // FIXME Not sure about the handling of ::, ', and #\n variable: [\n // ${^POSTMATCH}\n /[&*$@%]\\{\\^[A-Z]+\\}/,\n // $^V\n /[&*$@%]\\^[A-Z_]/,\n // ${...}\n /[&*$@%]#?(?=\\{)/,\n // $foo\n /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/,\n // $1\n /[&*$@%]\\d+/,\n // $_, @_, %!\n // The negative lookahead prevents from breaking the %= operator\n /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n ],\n filehandle: {\n // <>, <FOO>, _\n pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n alias: 'symbol'\n },\n 'v-string': {\n // v1.2, 1.2.3\n pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n alias: 'string'\n },\n function: {\n pattern: /(\\bsub[ \\t]+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n operator:\n /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n punctuation: /[{}[\\];(),:]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nmarkupTemplating.displayName = 'markup-templating'\nmarkupTemplating.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function markupTemplating(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n /**\n * Returns the placeholder for the given language id and index.\n *\n * @param {string} language\n * @param {string|number} index\n * @returns {string}\n */\n function getPlaceholder(language, index) {\n return '___' + language.toUpperCase() + index + '___'\n }\n Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n buildPlaceholders: {\n /**\n * Tokenize all inline templating expressions matching `placeholderPattern`.\n *\n * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n * `true` will be replaced.\n *\n * @param {object} env The environment of the `before-tokenize` hook.\n * @param {string} language The language id.\n * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n * @param {(match: string) => boolean} [replaceFilter]\n */\n value: function (env, language, placeholderPattern, replaceFilter) {\n if (env.language !== language) {\n return\n }\n var tokenStack = (env.tokenStack = [])\n env.code = env.code.replace(placeholderPattern, function (match) {\n if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n return match\n }\n var i = tokenStack.length\n var placeholder\n\n // Check for existing strings\n while (\n env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n -1\n ) {\n ++i\n }\n\n // Create a sparse array\n tokenStack[i] = match\n return placeholder\n })\n\n // Switch the grammar to markup\n env.grammar = Prism.languages.markup\n }\n },\n tokenizePlaceholders: {\n /**\n * Replace placeholders with proper tokens after tokenizing.\n *\n * @param {object} env The environment of the `after-tokenize` hook.\n * @param {string} language The language id.\n */\n value: function (env, language) {\n if (env.language !== language || !env.tokenStack) {\n return\n }\n\n // Switch the grammar back\n env.grammar = Prism.languages[language]\n var j = 0\n var keys = Object.keys(env.tokenStack)\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n // all placeholders are replaced already\n if (j >= keys.length) {\n break\n }\n var token = tokens[i]\n if (\n typeof token === 'string' ||\n (token.content && typeof token.content === 'string')\n ) {\n var k = keys[j]\n var t = env.tokenStack[k]\n var s = typeof token === 'string' ? token : token.content\n var placeholder = getPlaceholder(language, k)\n var index = s.indexOf(placeholder)\n if (index > -1) {\n ++j\n var before = s.substring(0, index)\n var middle = new Prism.Token(\n language,\n Prism.tokenize(t, env.grammar),\n 'language-' + language,\n t\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push.apply(replacement, walkTokens([before]))\n }\n replacement.push(middle)\n if (after) {\n replacement.push.apply(replacement, walkTokens([after]))\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n } else {\n token.content = replacement\n }\n }\n } else if (\n token.content /* && typeof token.content !== 'string' */\n ) {\n walkTokens(token.content)\n }\n }\n return tokens\n }\n walkTokens(env.tokens)\n }\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nphp.displayName = 'php'\nphp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function php(Prism) {\n Prism.register(refractorMarkupTemplating)\n /**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n ;(function (Prism) {\n var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n var constant = [\n {\n pattern: /\\b(?:false|true)\\b/i,\n alias: 'boolean'\n },\n {\n pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n greedy: true,\n lookbehind: true\n },\n /\\b(?:null)\\b/i,\n /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n ]\n var number =\n /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n var operator =\n /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n var punctuation = /[{}\\[\\](),:;]/\n Prism.languages.php = {\n delimiter: {\n pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n alias: 'important'\n },\n comment: comment,\n variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n package: {\n pattern:\n /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n 'class-name-definition': {\n pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n 'function-definition': {\n pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n {\n pattern:\n /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|never|object|self|static|string|void)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n alias: 'type-declaration',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n // yield from\n pattern: /(\\byield\\s+)from\\b/i,\n lookbehind: true\n },\n // `class` is always a keyword unlike other keywords\n /\\bclass\\b/i,\n {\n // https://www.php.net/manual/en/reserved.keywords.php\n //\n // keywords cannot be preceded by \"->\"\n // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n pattern:\n /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n lookbehind: true\n }\n ],\n 'argument-name': {\n pattern: /([(,]\\s*)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-declaration'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n alias: ['class-name-fully-qualified', 'static-context'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-hint'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: ['class-name-fully-qualified', 'return-type'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n function: {\n pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n property: {\n pattern: /(->\\s*)\\w+/,\n lookbehind: true\n },\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n var string_interpolation = {\n pattern:\n /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n lookbehind: true,\n inside: Prism.languages.php\n }\n var string = [\n {\n pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n alias: 'nowdoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<'?|[';]$/\n }\n }\n }\n },\n {\n pattern:\n /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<\"?|[\";]$/\n }\n },\n interpolation: string_interpolation\n }\n },\n {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n alias: 'backtick-quoted-string',\n greedy: true\n },\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n alias: 'single-quoted-string',\n greedy: true\n },\n {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n alias: 'double-quoted-string',\n greedy: true,\n inside: {\n interpolation: string_interpolation\n }\n }\n ]\n Prism.languages.insertBefore('php', 'variable', {\n string: string,\n attribute: {\n pattern:\n /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n greedy: true,\n inside: {\n 'attribute-content': {\n pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n // inside can appear subset of php\n inside: {\n comment: comment,\n string: string,\n 'attribute-class-name': [\n {\n pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'class-name',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n alias: ['class-name', 'class-name-fully-qualified'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n },\n delimiter: {\n pattern: /^#\\[|\\]$/,\n alias: 'punctuation'\n }\n }\n }\n })\n Prism.hooks.add('before-tokenize', function (env) {\n if (!/<\\?/.test(env.code)) {\n return\n }\n var phpPattern =\n /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'php',\n phpPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n })\n })(Prism)\n}\n","// @ts-nocheck\npython.displayName = 'python'\npython.aliases = ['py']\n\n/** @type {import('../core.js').Syntax} */\nexport default function python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n 'string-interpolation': {\n pattern:\n /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n interpolation: {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern:\n /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=\\}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: //,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n decorator: {\n pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n builtin:\n /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n boolean: /\\b(?:False|None|True)\\b/,\n number:\n /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.python['string-interpolation'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.python\n Prism.languages.py = Prism.languages.python\n}\n","// @ts-nocheck\nr.displayName = 'r'\nr.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function r(Prism) {\n Prism.languages.r = {\n comment: /#.*/,\n string: {\n pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'percent-operator': {\n // Includes user-defined operators\n // and %%, %*%, %/%, %in%, %o%, %x%\n pattern: /%[^%\\s]*%/,\n alias: 'operator'\n },\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n ellipsis: /\\.\\.(?:\\.|\\d+)/,\n number: [\n /\\b(?:Inf|NaN)\\b/,\n /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n ],\n keyword:\n /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n punctuation: /[(){}\\[\\],;]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\n\n/** @type {import('../core.js').Syntax} */\nexport default function ruby(Prism) {\n Prism.register(refractorClike)\n /**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * constant, builtin, variable, symbol, regex\n */\n ;(function (Prism) {\n Prism.languages.ruby = Prism.languages.extend('clike', {\n comment: {\n pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n operator:\n /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n punctuation: /[(){}[\\].,;]/\n })\n Prism.languages.insertBefore('ruby', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n var interpolation = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n }\n delete Prism.languages.ruby.function\n var percentExpression =\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n ].join('|') +\n ')'\n var symbolName =\n /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n .source\n Prism.languages.insertBefore('ruby', 'keyword', {\n 'regex-literal': [\n {\n pattern: RegExp(\n /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n ),\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n }\n ],\n variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n symbol: [\n {\n pattern: RegExp(/(^|[^:]):/.source + symbolName),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: RegExp(\n /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n 'method-definition': {\n pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n lookbehind: true,\n inside: {\n function: /\\b\\w+$/,\n keyword: /^self\\b/,\n 'class-name': /^\\w+/,\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('ruby', 'string', {\n 'string-literal': [\n {\n pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?/\n }\n },\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?'|'$/\n }\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n 'command-literal': [\n {\n pattern: RegExp(/%x/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n },\n {\n pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n }\n ]\n })\n delete Prism.languages.ruby.string\n Prism.languages.insertBefore('ruby', 'number', {\n builtin:\n /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n })\n Prism.languages.rb = Prism.languages.ruby\n })(Prism)\n}\n","// @ts-nocheck\nrust.displayName = 'rust'\nrust.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function rust(Prism) {\n ;(function (Prism) {\n var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n for (var i = 0; i < 2; i++) {\n // support 4 levels of nested comments\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return multilineComment\n })\n }\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return /[^\\s\\S]/.source\n })\n Prism.languages.rust = {\n comment: [\n {\n pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n greedy: true\n },\n char: {\n pattern:\n /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n greedy: true\n },\n attribute: {\n pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n greedy: true,\n alias: 'attr-name',\n inside: {\n string: null // see below\n }\n },\n\n // Closure params should not be confused with bitwise OR |\n 'closure-params': {\n pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'closure-punctuation': {\n pattern: /^\\||\\|$/,\n alias: 'punctuation'\n },\n rest: null // see below\n }\n },\n\n 'lifetime-annotation': {\n pattern: /'\\w+/,\n alias: 'symbol'\n },\n 'fragment-specifier': {\n pattern: /(\\$\\w+:)[a-z]+/,\n lookbehind: true,\n alias: 'punctuation'\n },\n variable: /\\$\\w+/,\n 'function-definition': {\n pattern: /(\\bfn\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n 'type-definition': {\n pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n 'module-declaration': [\n {\n pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n lookbehind: true,\n alias: 'namespace'\n },\n {\n pattern:\n /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /::/\n }\n }\n ],\n keyword: [\n // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/,\n // primitives and str\n // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n ],\n // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n // and Rust's naming conventions recommend snake_case anyway.\n // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n macro: {\n pattern: /\\b\\w+!/,\n alias: 'property'\n },\n constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n 'class-name': /\\b[A-Z]\\w*\\b/,\n namespace: {\n pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n inside: {\n punctuation: /::/\n }\n },\n // Hex, oct, bin, dec numbers with visual separators and type suffix\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n }\n Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n Prism.languages.rust['attribute'].inside['string'] =\n Prism.languages.rust['string']\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCss from './css.js'\nsass.displayName = 'sass'\nsass.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function sass(Prism) {\n Prism.register(refractorCss)\n ;(function (Prism) {\n Prism.languages.sass = Prism.languages.extend('css', {\n // Sass comments don't need to be closed, only indented\n comment: {\n pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sass', 'atrule', {\n // We want to consume the whole line\n 'atrule-line': {\n // Includes support for = and + shortcuts\n pattern: /^(?:[ \\t]*)[@+=].+/m,\n greedy: true,\n inside: {\n atrule: /(?:@[\\w-]+|[+=])/\n }\n }\n })\n delete Prism.languages.sass.atrule\n var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n var operator = [\n /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ]\n Prism.languages.insertBefore('sass', 'property', {\n // We want to consume the whole line\n 'variable-line': {\n pattern: /^[ \\t]*\\$.+/m,\n greedy: true,\n inside: {\n punctuation: /:/,\n variable: variable,\n operator: operator\n }\n },\n // We want to consume the whole line\n 'property-line': {\n pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n greedy: true,\n inside: {\n property: [\n /[^:\\s]+(?=\\s*:)/,\n {\n pattern: /(:)[^:\\s]+/,\n lookbehind: true\n }\n ],\n punctuation: /:/,\n variable: variable,\n operator: operator,\n important: Prism.languages.sass.important\n }\n }\n })\n delete Prism.languages.sass.property\n delete Prism.languages.sass.important\n\n // Now that whole lines for other patterns are consumed,\n // what's left should be selectors\n Prism.languages.insertBefore('sass', 'punctuation', {\n selector: {\n pattern:\n /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCss from './css.js'\nscss.displayName = 'scss'\nscss.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function scss(Prism) {\n Prism.register(refractorCss)\n Prism.languages.scss = Prism.languages.extend('css', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n atrule: {\n pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n inside: {\n rule: /@[\\w-]+/\n // See rest below\n }\n },\n\n // url, compassified\n url: /(?:[-a-z]+-)?url(?=\\()/i,\n // CSS selector regex is not appropriate for Sass\n // since there can be lot more things (var, @ directive, nesting..)\n // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n // can \"pass\" as a selector- e.g: proper#{$erty})\n // this one was hard to do, so please be careful if you edit this one :)\n selector: {\n // Initial look-ahead is used to prevent matching of blank selectors\n pattern:\n /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n inside: {\n parent: {\n pattern: /&/,\n alias: 'important'\n },\n placeholder: /%[-\\w]+/,\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n },\n property: {\n pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n inside: {\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n }\n })\n Prism.languages.insertBefore('scss', 'atrule', {\n keyword: [\n /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n {\n pattern: /( )(?:from|through)(?= )/,\n lookbehind: true\n }\n ]\n })\n Prism.languages.insertBefore('scss', 'important', {\n // var and interpolated vars\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n })\n Prism.languages.insertBefore('scss', 'function', {\n 'module-modifier': {\n pattern: /\\b(?:as|hide|show|with)\\b/i,\n alias: 'keyword'\n },\n placeholder: {\n pattern: /%[-\\w]+/,\n alias: 'selector'\n },\n statement: {\n pattern: /\\B!(?:default|optional)\\b/i,\n alias: 'keyword'\n },\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n operator: {\n pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n lookbehind: true\n }\n })\n Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","// @ts-nocheck\nsql.displayName = 'sql'\nsql.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function sql(Prism) {\n Prism.languages.sql = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n variable: [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true\n },\n /@[\\w.$]+/\n ],\n string: {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /^`|`$/\n }\n },\n function:\n /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n // Should we highlight user defined functions too?\n keyword:\n /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","// @ts-nocheck\nswift.displayName = 'swift'\nswift.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function swift(Prism) {\n Prism.languages.swift = {\n comment: {\n // Nested comments are supported up to 2 levels\n pattern:\n /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n lookbehind: true,\n greedy: true\n },\n 'string-literal': [\n // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n {\n pattern: RegExp(\n /(^|[^\"#])/.source +\n '(?:' +\n // single-line string\n /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n .source +\n '|' +\n // multi-line string\n /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n .source +\n ')' +\n /(?![\"#])/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\\\($/,\n alias: 'punctuation'\n },\n punctuation: /\\\\(?=[\\r\\n])/,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: RegExp(\n /(^|[^\"#])(#+)/.source +\n '(?:' +\n // single-line string\n /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n .source +\n '|' +\n // multi-line string\n /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n ')' +\n '\\\\2'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\#+\\($/,\n alias: 'punctuation'\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n directive: {\n // directives with conditions\n pattern: RegExp(\n /#/.source +\n '(?:' +\n (/(?:elseif|if)\\b/.source +\n '(?:[ \\t]*' +\n // This regex is a little complex. It's equivalent to this:\n // (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n // where <round> is a general parentheses expression.\n /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n .source +\n ')+') +\n '|' +\n /(?:else|endif)\\b/.source +\n ')'\n ),\n alias: 'property',\n inside: {\n 'directive-name': /^#\\w+/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n operator: /!|&&|\\|\\||[<>]=?/,\n punctuation: /[(),]/\n }\n },\n literal: {\n pattern:\n /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n alias: 'constant'\n },\n 'other-directive': {\n pattern: /#\\w+\\b/,\n alias: 'property'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'atrule'\n },\n 'function-definition': {\n pattern: /(\\bfunc\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n pattern:\n /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n lookbehind: true,\n alias: 'important'\n },\n keyword:\n /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n nil: {\n pattern: /\\bnil\\b/,\n alias: 'constant'\n },\n 'short-argument': /\\$\\d+\\b/,\n omit: {\n pattern: /\\b_\\b/,\n alias: 'keyword'\n },\n number:\n /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n 'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n // This regex only supports ASCII operators.\n operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n punctuation: /[{}[\\]();,.:\\\\]/\n }\n Prism.languages.swift['string-literal'].forEach(function (rule) {\n rule.inside['interpolation'].inside = Prism.languages.swift\n })\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\n\n/** @type {import('../core.js').Syntax} */\nexport default function typescript(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n\n builtin:\n /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n })\n\n // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n )\n\n // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter']\n delete Prism.languages.typescript['literal-property']\n\n // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n","// @ts-nocheck\nbasic.displayName = 'basic'\nbasic.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function basic(Prism) {\n Prism.languages.basic = {\n comment: {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n punctuation: /[,;:()]/\n }\n}\n","// @ts-nocheck\nimport refractorBasic from './basic.js'\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function vbnet(Prism) {\n Prism.register(refractorBasic)\n Prism.languages.vbnet = Prism.languages.extend('basic', {\n comment: [\n {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n {\n pattern: /(^|[^\\\\:])'.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n punctuation: /[,;:(){}]/\n })\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n * Type of selector.\n * @template {string} [DefaultTagName='div']\n * Type of default tag name.\n * @param {Selector | null | undefined} [selector]\n * Simple CSS selector.\n *\n * Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n * Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}}\n * Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n const value = selector || ''\n /** @type {Properties} */\n const props = {}\n let start = 0\n /** @type {string | undefined} */\n let previous\n /** @type {string | undefined} */\n let tagName\n\n while (start < value.length) {\n search.lastIndex = start\n const match = search.exec(value)\n const subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n tagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n // @ts-expect-error: fine.\n tagName: tagName || defaultTagName || 'div',\n properties: props,\n children: []\n }\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Content} Content\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {Content | Root} Node\n * Any concrete `hast` node.\n * @typedef {Root | Element} HResult\n * Result from a `h` (or `s`) call.\n *\n * @typedef {string | number} HStyleValue\n * Value for a CSS style field.\n * @typedef {Record<string, HStyleValue>} HStyle\n * Supported value of a `style` prop.\n * @typedef {string | number | boolean | null | undefined} HPrimitiveValue\n * Primitive property value.\n * @typedef {Array<string | number>} HArrayValue\n * List of property values for space- or comma separated values (such as `className`).\n * @typedef {HPrimitiveValue | HArrayValue} HPropertyValue\n * Primitive value or list value.\n * @typedef {{[property: string]: HPropertyValue | HStyle}} HProperties\n * Acceptable value for element properties.\n *\n * @typedef {string | number | null | undefined} HPrimitiveChild\n * Primitive children, either ignored (nullish), or turned into text nodes.\n * @typedef {Array<Node | HPrimitiveChild>} HArrayChild\n * List of children.\n * @typedef {Node | HPrimitiveChild | HArrayChild} HChild\n * Acceptable child value.\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n const h =\n /**\n * @type {{\n * (): Root\n * (selector: null | undefined, ...children: Array<HChild>): Root\n * (selector: string, properties?: HProperties, ...children: Array<HChild>): Element\n * (selector: string, ...children: Array<HChild>): Element\n * }}\n */\n (\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @param {string | null} [selector]\n * @param {HProperties | HChild} [properties]\n * @param {Array<HChild>} children\n * @returns {HResult}\n */\n function (selector, properties, ...children) {\n let index = -1\n /** @type {HResult} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // @ts-expect-error Properties are not supported for roots.\n children.unshift(properties)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isProperties(properties, node.tagName)) {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n // @ts-expect-error `node.properties` is set.\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n } else {\n children.unshift(properties)\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n )\n\n return h\n}\n\n/**\n * @param {HProperties | HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n if (name === 'input' || !value.type || typeof value.type !== 'string') {\n return true\n }\n\n if ('children' in value && Array.isArray(value.children)) {\n return false\n }\n\n if (name === 'button') {\n return buttonTypes.has(value.type.toLowerCase())\n }\n\n return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle | HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {HPropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array<string | number>} */\n const finalResult = []\n\n while (++index < result.length) {\n // @ts-expect-error Assume no booleans in array.\n finalResult[index] = parsePrimitive(info, info.property, result[index])\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // @ts-expect-error Assume no booleans in `className`.\n result = properties.className.concat(result)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array<Content>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {HStyle} value\n * Style object.\n * @returns {string}\n * CSS string.\n */\nfunction style(value) {\n /** @type {Array<string>} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {Array<string>} values\n * List of properly cased keys.\n * @returns {Record<string, string>}\n * Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n /** @type {Record<string, string>} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","/**\n * @typedef {import('./core.js').HChild} Child\n * Acceptable child value.\n * @typedef {import('./core.js').HProperties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./core.js').HResult} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n","/**\n * Map of invalid numeric character references to their replacements, according to HTML.\n *\n * @type {Record<number, string>}\n */\nexport const characterReferenceInvalid = {\n 0: '�',\n 128: '€',\n 130: '‚',\n 131: 'Æ’',\n 132: '„',\n 133: '…',\n 134: '†',\n 135: '‡',\n 136: 'ˆ',\n 137: '‰',\n 138: 'Å ',\n 139: '‹',\n 140: 'Å’',\n 142: 'Ž',\n 145: '‘',\n 146: '’',\n 147: '“',\n 148: 'â€',\n 149: '•',\n 150: '–',\n 151: '—',\n 152: 'Ëœ',\n 153: 'â„¢',\n 154: 'Å¡',\n 155: '›',\n 156: 'Å“',\n 158: 'ž',\n 159: 'Ÿ'\n}\n","/**\n * Check if the given character code, or the character code at the first\n * character, is decimal.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is a decimal\n */\nexport function isDecimal(character) {\n const code =\n typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n","/**\n * Check if the given character code, or the character code at the first\n * character, is hexadecimal.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is hexadecimal\n */\nexport function isHexadecimal(character) {\n const code =\n typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 /* a */ && code <= 102) /* z */ ||\n (code >= 65 /* A */ && code <= 70) /* Z */ ||\n (code >= 48 /* A */ && code <= 57) /* Z */\n )\n}\n","/**\n * Check if the given character code, or the character code at the first\n * character, is alphabetical.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is alphabetical.\n */\nexport function isAlphabetical(character) {\n const code =\n typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 && code <= 122) /* a-z */ ||\n (code >= 65 && code <= 90) /* A-Z */\n )\n}\n","import {isAlphabetical} from 'is-alphabetical'\nimport {isDecimal} from 'is-decimal'\n\n/**\n * Check if the given character code, or the character code at the first\n * character, is alphanumerical.\n *\n * @param {string|number} character\n * @returns {boolean} Whether `character` is alphanumerical.\n */\nexport function isAlphanumerical(character) {\n return isAlphabetical(character) || isDecimal(character)\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\nimport {characterEntitiesLegacy} from 'character-entities-legacy'\nimport {characterReferenceInvalid} from 'character-reference-invalid'\nimport {isDecimal} from 'is-decimal'\nimport {isHexadecimal} from 'is-hexadecimal'\nimport {isAlphanumerical} from 'is-alphanumerical'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\n\nconst fromCharCode = String.fromCharCode\n\n// Warning messages.\nconst messages = [\n '',\n /* 1: Non terminated (named) */\n 'Named character references must be terminated by a semicolon',\n /* 2: Non terminated (numeric) */\n 'Numeric character references must be terminated by a semicolon',\n /* 3: Empty (named) */\n 'Named character references cannot be empty',\n /* 4: Empty (numeric) */\n 'Numeric character references cannot be empty',\n /* 5: Unknown (named) */\n 'Named character references must be known',\n /* 6: Disallowed (numeric) */\n 'Numeric character references cannot be disallowed',\n /* 7: Prohibited (numeric) */\n 'Numeric character references cannot be outside the permissible Unicode range'\n]\n\n/**\n * Parse HTML character references.\n *\n * @param {string} value\n * @param {import('../index.js').Options} [options={}]\n */\nexport function parseEntities(value, options = {}) {\n const additional =\n typeof options.additional === 'string'\n ? options.additional.charCodeAt(0)\n : options.additional\n /** @type {Array<string>} */\n const result = []\n let index = 0\n let lines = -1\n let queue = ''\n /** @type {Point|undefined} */\n let point\n /** @type {Array<number>|undefined} */\n let indent\n\n if (options.position) {\n if ('start' in options.position || 'indent' in options.position) {\n // @ts-expect-error: points don’t have indent.\n indent = options.position.indent\n // @ts-expect-error: points don’t have indent.\n point = options.position.start\n } else {\n point = options.position\n }\n }\n\n let line = (point ? point.line : 0) || 1\n let column = (point ? point.column : 0) || 1\n\n // Cache the current point.\n let previous = now()\n /** @type {number|undefined} */\n let character\n\n // Ensure the algorithm walks over the first character (inclusive).\n index--\n\n while (++index <= value.length) {\n // If the previous character was a newline.\n if (character === 10 /* `\\n` */) {\n column = (indent ? indent[lines] : 0) || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === 38 /* `&` */) {\n const following = value.charCodeAt(index + 1)\n\n // The behavior depends on the identity of the next character.\n if (\n following === 9 /* `\\t` */ ||\n following === 10 /* `\\n` */ ||\n following === 12 /* `\\f` */ ||\n following === 32 /* ` ` */ ||\n following === 38 /* `&` */ ||\n following === 60 /* `<` */ ||\n Number.isNaN(following) ||\n (additional && following === additional)\n ) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character)\n column++\n continue\n }\n\n const start = index + 1\n let begin = start\n let end = start\n /** @type {string} */\n let type\n\n if (following === 35 /* `#` */) {\n // Numerical reference.\n end = ++begin\n\n // The behavior further depends on the next character.\n const following = value.charCodeAt(end)\n\n if (following === 88 /* `X` */ || following === 120 /* `x` */) {\n // ASCII hexadecimal digits.\n type = 'hexadecimal'\n end = ++begin\n } else {\n // ASCII decimal digits.\n type = 'decimal'\n }\n } else {\n // Named reference.\n type = 'named'\n }\n\n let characterReferenceCharacters = ''\n let characterReference = ''\n let characters = ''\n // Each type of character reference accepts different characters.\n // This test is used to detect whether a reference has ended (as the semicolon\n // is not strictly needed).\n const test =\n type === 'named'\n ? isAlphanumerical\n : type === 'decimal'\n ? isDecimal\n : isHexadecimal\n\n end--\n\n while (++end <= value.length) {\n const following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += fromCharCode(following)\n\n // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n if (type === 'named' && characterEntitiesLegacy.includes(characters)) {\n characterReferenceCharacters = characters\n // @ts-expect-error: always able to decode.\n characterReference = decodeNamedCharacterReference(characters)\n }\n }\n\n let terminated = value.charCodeAt(end) === 59 /* `;` */\n\n if (terminated) {\n end++\n\n const namedReference =\n type === 'named' ? decodeNamedCharacterReference(characters) : false\n\n if (namedReference) {\n characterReferenceCharacters = characters\n characterReference = namedReference\n }\n }\n\n let diff = 1 + end - start\n let reference = ''\n\n if (!terminated && options.nonTerminated === false) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) reference is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== 'named') {\n warning(4 /* Empty (numeric) */, diff)\n }\n } else if (type === 'named') {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !characterReference) {\n warning(5 /* Unknown (named) */, 1)\n } else {\n // If there’s something after an named reference which is not known,\n // cap the reference.\n if (characterReferenceCharacters !== characters) {\n end = begin + characterReferenceCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n const reason = characterReferenceCharacters\n ? 1 /* Non terminated (named) */\n : 3 /* Empty (named) */\n\n if (options.attribute) {\n const following = value.charCodeAt(end)\n\n if (following === 61 /* `=` */) {\n warning(reason, diff)\n characterReference = ''\n } else if (isAlphanumerical(following)) {\n characterReference = ''\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = characterReference\n } else {\n if (!terminated) {\n // All nonterminated numeric references are not rendered, and emit a\n // warning.\n warning(2 /* Non terminated (numeric) */, diff)\n }\n\n // When terminated and numerical, parse as either hexadecimal or\n // decimal.\n let referenceCode = Number.parseInt(\n characters,\n type === 'hexadecimal' ? 16 : 10\n )\n\n // Emit a warning when the parsed number is prohibited, and replace with\n // replacement character.\n if (prohibited(referenceCode)) {\n warning(7 /* Prohibited (numeric) */, diff)\n reference = fromCharCode(65533 /* `�` */)\n } else if (referenceCode in characterReferenceInvalid) {\n // Emit a warning when the parsed number is disallowed, and replace by\n // an alternative.\n warning(6 /* Disallowed (numeric) */, diff)\n reference = characterReferenceInvalid[referenceCode]\n } else {\n // Parse the number.\n let output = ''\n\n // Emit a warning when the parsed number should not be used.\n if (disallowed(referenceCode)) {\n warning(6 /* Disallowed (numeric) */, diff)\n }\n\n // Serialize the number.\n if (referenceCode > 0xffff) {\n referenceCode -= 0x10000\n output += fromCharCode((referenceCode >>> (10 & 0x3ff)) | 0xd800)\n referenceCode = 0xdc00 | (referenceCode & 0x3ff)\n }\n\n reference = output + fromCharCode(referenceCode)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat a reference.\n if (reference) {\n flush()\n\n previous = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n const next = now()\n next.offset++\n\n if (options.reference) {\n options.reference.call(\n options.referenceContext,\n reference,\n {start: previous, end: next},\n value.slice(start - 1, end)\n )\n }\n\n previous = next\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end)\n queue += characters\n column += characters.length\n index = end - 1\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (character === 10 /* `\\n` */) {\n line++\n lines++\n column = 0\n }\n\n if (Number.isNaN(character)) {\n flush()\n } else {\n queue += fromCharCode(character)\n column++\n }\n }\n }\n\n // Return the reduced nodes.\n return result.join('')\n\n // Get current position.\n function now() {\n return {\n line,\n column,\n offset: index + ((point ? point.offset : 0) || 0)\n }\n }\n\n /**\n * Handle the warning.\n *\n * @param {1|2|3|4|5|6|7} code\n * @param {number} offset\n */\n function warning(code, offset) {\n /** @type {ReturnType<now>} */\n let position\n\n if (options.warning) {\n position = now()\n position.column += offset\n position.offset += offset\n\n options.warning.call(\n options.warningContext,\n messages[code],\n position,\n code\n )\n }\n }\n\n /**\n * Flush `queue` (normal text).\n * Macro invoked before each reference and at the end of `value`.\n * Does nothing when `queue` is empty.\n */\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (options.text) {\n options.text.call(options.textContext, queue, {\n start: previous,\n end: now()\n })\n }\n\n queue = ''\n }\n }\n}\n\n/**\n * Check if `character` is outside the permissible unicode range.\n *\n * @param {number} code\n * @returns {boolean}\n */\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n/**\n * Check if `character` is disallowed.\n *\n * @param {number} code\n * @returns {boolean}\n */\nfunction disallowed(code) {\n return (\n (code >= 0x0001 && code <= 0x0008) ||\n code === 0x000b ||\n (code >= 0x000d && code <= 0x001f) ||\n (code >= 0x007f && code <= 0x009f) ||\n (code >= 0xfdd0 && code <= 0xfdef) ||\n (code & 0xffff) === 0xffff ||\n (code & 0xffff) === 0xfffe\n )\n}\n","// @ts-nocheck\n\n// This is a slimmed down version of `prism-core.js`, to remove globals,\n// document, workers, `util.encode`, `Token.stringify`\n\n// Private helper vars\nvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i\nvar uniqueId = 0\n\n// The grammar object for plaintext\nvar plainTextGrammar = {}\n\nvar _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function (o) {\n return Object.prototype.toString.call(o).slice(8, -1)\n },\n\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function (obj) {\n if (!obj['__id']) {\n Object.defineProperty(obj, '__id', {value: ++uniqueId})\n }\n return obj['__id']\n },\n\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {}\n\n var clone\n var id\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o)\n if (visited[id]) {\n return visited[id]\n }\n clone = /** @type {Record<string, any>} */ ({})\n visited[id] = clone\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited)\n }\n }\n\n return /** @type {any} */ (clone)\n\n case 'Array':\n id = _.util.objId(o)\n if (visited[id]) {\n return visited[id]\n }\n clone = []\n visited[id] = clone\n\n o.forEach(function (v, i) {\n clone[i] = deepClone(v, visited)\n })\n\n return /** @type {any} */ (clone)\n\n default:\n return o\n }\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id])\n\n for (var key in redef) {\n lang[key] = redef[key]\n }\n\n return lang\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function (inside, before, insert, root) {\n root = root || /** @type {any} */ (_.languages)\n var grammar = root[inside]\n /** @type {Grammar} */\n var ret = {}\n\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken]\n }\n }\n }\n\n // Do not insert token which also occur in insert. See #1525\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token]\n }\n }\n }\n\n var old = root[inside]\n root[inside] = ret\n\n // Update references in other language definitions\n _.languages.DFS(_.languages, function (key, value) {\n if (value === old && key != inside) {\n this[key] = ret\n }\n })\n\n return ret\n },\n\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {}\n\n var objId = _.util.objId\n\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i)\n\n var property = o[i]\n var propertyType = _.util.type(property)\n\n if (propertyType === 'Object' && !visited[objId(property)]) {\n visited[objId(property)] = true\n DFS(property, callback, null, visited)\n } else if (propertyType === 'Array' && !visited[objId(property)]) {\n visited[objId(property)] = true\n DFS(property, callback, i, visited)\n }\n }\n }\n }\n },\n\n plugins: {},\n\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function (text, grammar, language) {\n var env = {\n code: text,\n grammar: grammar,\n language: language\n }\n _.hooks.run('before-tokenize', env)\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.')\n }\n env.tokens = _.tokenize(env.code, env.grammar)\n _.hooks.run('after-tokenize', env)\n return Token.stringify(_.util.encode(env.tokens), env.language)\n },\n\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function (text, grammar) {\n var rest = grammar.rest\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token]\n }\n\n delete grammar.rest\n }\n\n var tokenList = new LinkedList()\n addAfter(tokenList, tokenList.head, text)\n\n matchGrammar(text, tokenList, grammar, tokenList.head, 0)\n\n return toArray(tokenList)\n },\n\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function (name, callback) {\n var hooks = _.hooks.all\n\n hooks[name] = hooks[name] || []\n\n hooks[name].push(callback)\n },\n\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function (name, env) {\n var callbacks = _.hooks.all[name]\n\n if (!callbacks || !callbacks.length) {\n return\n }\n\n for (var i = 0, callback; (callback = callbacks[i++]); ) {\n callback(env)\n }\n }\n },\n\n Token: Token\n}\n\n// Typescript note:\n// The following can be used to import the Token type in JSDoc:\n//\n// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n/**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\nfunction Token(type, content, alias, matchedStr) {\n /**\n * The type of the token.\n *\n * This is usually the key of a pattern in a {@link Grammar}.\n *\n * @type {string}\n * @see GrammarToken\n * @public\n */\n this.type = type\n /**\n * The strings or tokens contained by this token.\n *\n * This will be a token stream if the pattern matched also defined an `inside` grammar.\n *\n * @type {string | TokenStream}\n * @public\n */\n this.content = content\n /**\n * The alias(es) of the token.\n *\n * @type {string|string[]}\n * @see GrammarToken\n * @public\n */\n this.alias = alias\n // Copy of the full string this token was created from\n this.length = (matchedStr || '').length | 0\n}\n\n/**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n * The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n/**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\nfunction matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos\n var match = pattern.exec(text)\n if (match && lookbehind && match[1]) {\n // change the match to remove the text matched by the Prism lookbehind group\n var lookbehindLength = match[1].length\n match.index += lookbehindLength\n match[0] = match[0].slice(lookbehindLength)\n }\n return match\n}\n\n/**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\nfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue\n }\n\n var patterns = grammar[token]\n patterns = Array.isArray(patterns) ? patterns : [patterns]\n\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + ',' + j) {\n return\n }\n\n var patternObj = patterns[j]\n var inside = patternObj.inside\n var lookbehind = !!patternObj.lookbehind\n var greedy = !!patternObj.greedy\n var alias = patternObj.alias\n\n if (greedy && !patternObj.pattern.global) {\n // Without the global flag, lastIndex won't work\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0]\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g')\n }\n\n /** @type {RegExp} */\n var pattern = patternObj.pattern || patternObj\n\n for (\n // iterate the token list and keep track of the current token/string position\n var currentNode = startNode.next, pos = startPos;\n currentNode !== tokenList.tail;\n pos += currentNode.value.length, currentNode = currentNode.next\n ) {\n if (rematch && pos >= rematch.reach) {\n break\n }\n\n var str = currentNode.value\n\n if (tokenList.length > text.length) {\n // Something went terribly wrong, ABORT, ABORT!\n return\n }\n\n if (str instanceof Token) {\n continue\n }\n\n var removeCount = 1 // this is the to parameter of removeBetween\n var match\n\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind)\n if (!match || match.index >= text.length) {\n break\n }\n\n var from = match.index\n var to = match.index + match[0].length\n var p = pos\n\n // find the node that contains the match\n p += currentNode.value.length\n while (from >= p) {\n currentNode = currentNode.next\n p += currentNode.value.length\n }\n // adjust pos (and p)\n p -= currentNode.value.length\n pos = p\n\n // the current node is a Token, then the match starts inside another Token, which is invalid\n if (currentNode.value instanceof Token) {\n continue\n }\n\n // find the last node which is affected by this match\n for (\n var k = currentNode;\n k !== tokenList.tail && (p < to || typeof k.value === 'string');\n k = k.next\n ) {\n removeCount++\n p += k.value.length\n }\n removeCount--\n\n // replace with the new match\n str = text.slice(pos, p)\n match.index -= pos\n } else {\n match = matchPattern(pattern, 0, str, lookbehind)\n if (!match) {\n continue\n }\n }\n\n // eslint-disable-next-line no-redeclare\n var from = match.index\n var matchStr = match[0]\n var before = str.slice(0, from)\n var after = str.slice(from + matchStr.length)\n\n var reach = pos + str.length\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach\n }\n\n var removeFrom = currentNode.prev\n\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before)\n pos += before.length\n }\n\n removeRange(tokenList, removeFrom, removeCount)\n\n var wrapped = new Token(\n token,\n inside ? _.tokenize(matchStr, inside) : matchStr,\n alias,\n matchStr\n )\n currentNode = addAfter(tokenList, removeFrom, wrapped)\n\n if (after) {\n addAfter(tokenList, currentNode, after)\n }\n\n if (removeCount > 1) {\n // at least one Token object was removed, so we have to do some rematching\n // this can only happen if the current pattern is greedy\n\n /** @type {RematchOptions} */\n var nestedRematch = {\n cause: token + ',' + j,\n reach: reach\n }\n matchGrammar(\n text,\n tokenList,\n grammar,\n currentNode.prev,\n pos,\n nestedRematch\n )\n\n // the reach might have been extended because of the rematching\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach\n }\n }\n }\n }\n }\n}\n\n/**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n/**\n * @template T\n * @private\n */\nfunction LinkedList() {\n /** @type {LinkedListNode<T>} */\n var head = {value: null, prev: null, next: null}\n /** @type {LinkedListNode<T>} */\n var tail = {value: null, prev: head, next: null}\n head.next = tail\n\n /** @type {LinkedListNode<T>} */\n this.head = head\n /** @type {LinkedListNode<T>} */\n this.tail = tail\n this.length = 0\n}\n\n/**\n * Adds a new node with the given value to the list.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\nfunction addAfter(list, node, value) {\n // assumes that node != list.tail && values.length >= 0\n var next = node.next\n\n var newNode = {value: value, prev: node, next: next}\n node.next = newNode\n next.prev = newNode\n list.length++\n\n return newNode\n}\n/**\n * Removes `count` nodes after the given node. The given node will not be removed.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\nfunction removeRange(list, node, count) {\n var next = node.next\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next\n }\n node.next = next\n next.prev = node\n list.length -= i\n}\n/**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\nfunction toArray(list) {\n var array = []\n var node = list.head.next\n while (node !== list.tail) {\n array.push(node.value)\n node = node.next\n }\n return array\n}\n\nexport const Prism = _\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","/**\n * @typedef _Token A hidden Prism token\n * @property {string} type\n * @property {string} content\n * @property {string} alias\n * @property {number} length\n *\n * @typedef _Env A hidden Prism environment\n * @property {string} type\n * @property {string} tag\n * @property {Text|RefractorElement|Array<Text|RefractorElement>} content\n * @property {Array<string>} classes\n * @property {Record<string, string>} attributes\n * @property {string} language\n *\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {Omit<Element, 'children'> & {children: Array<RefractorElement|Text>}} RefractorElement\n * @typedef {Omit<Root, 'children'> & {children: Array<RefractorElement|Text>}} RefractorRoot\n *\n * @typedef {import('prismjs').Languages} Languages\n * @typedef {import('prismjs').Grammar} Grammar Whatever this is, Prism handles it.\n * @typedef {((prism: unknown) => void) & {displayName: string, aliases?: Array<string>}} Syntax A refractor syntax function\n *\n * @typedef Refractor Virtual syntax highlighting\n * @property {highlight} highlight\n * @property {alias} alias\n * @property {register} register\n * @property {registered} registered\n * @property {listLanguages} listLanguages\n * @property {Languages} languages\n */\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nimport {h} from 'hastscript'\nimport {parseEntities} from 'parse-entities'\nimport {Prism} from './prism-core.js'\n\nconst own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n/** @type {Refractor} */\n// @ts-expect-error: TS is wrong.\nexport const refractor = new Refractor()\n\n// Create.\nrefractor.highlight = highlight\nrefractor.register = register\nrefractor.alias = alias\nrefractor.registered = registered\nrefractor.listLanguages = listLanguages\n\n// @ts-expect-error Overwrite Prism.\nrefractor.util.encode = encode\n// @ts-expect-error Overwrite Prism.\nrefractor.Token.stringify = stringify\n\n/**\n * Highlight `value` (code) as `language` (programming language).\n *\n * @param {string} value\n * Code to highlight.\n * @param {string|Grammar} language\n * Programming language name, alias, or grammar.\n * @returns {RefractorRoot}\n * Node representing highlighted code.\n */\nfunction highlight(value, language) {\n if (typeof value !== 'string') {\n throw new TypeError('Expected `string` for `value`, got `' + value + '`')\n }\n\n /** @type {Grammar} */\n let grammar\n /** @type {string|undefined} */\n let name\n\n // `name` is a grammar object.\n // This was called internally by Prism.js before 1.28.0.\n /* c8 ignore next 2 */\n if (language && typeof language === 'object') {\n grammar = language\n } else {\n name = language\n\n if (typeof name !== 'string') {\n throw new TypeError('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refractor.languages, name)) {\n grammar = refractor.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return {\n type: 'root',\n // @ts-expect-error: we hacked Prism to accept and return the things we want.\n children: Prism.highlight.call(refractor, value, grammar, name)\n }\n}\n\n/**\n * Register a syntax.\n *\n * @param {Syntax} syntax\n * Language function made for refractor, as in, the files in\n * `refractor/lang/*.js`.\n * @returns {void}\n */\nfunction register(syntax) {\n if (typeof syntax !== 'function' || !syntax.displayName) {\n throw new Error('Expected `function` for `syntax`, got `' + syntax + '`')\n }\n\n // Do not duplicate registrations.\n if (!own.call(refractor.languages, syntax.displayName)) {\n syntax(refractor)\n }\n}\n\n/**\n * Register aliases for already registered languages.\n *\n * @param {Record<string, string|Array<string>>|string} language\n * @param {string|Array<string>} [alias]\n * @returns {void}\n */\nfunction alias(language, alias) {\n const languages = refractor.languages\n /** @type {Record<string, string|Array<string>>} */\n let map = {}\n\n if (typeof language === 'string') {\n if (alias) {\n map[language] = alias\n }\n } else {\n map = language\n }\n\n /** @type {string} */\n let key\n\n for (key in map) {\n if (own.call(map, key)) {\n const value = map[key]\n const list = typeof value === 'string' ? [value] : value\n let index = -1\n\n while (++index < list.length) {\n languages[list[index]] = languages[key]\n }\n }\n }\n}\n\n/**\n * Check whether an `alias` or `language` is registered.\n *\n * @param {string} aliasOrLanguage\n * @returns {boolean}\n */\nfunction registered(aliasOrLanguage) {\n if (typeof aliasOrLanguage !== 'string') {\n throw new TypeError(\n 'Expected `string` for `aliasOrLanguage`, got `' + aliasOrLanguage + '`'\n )\n }\n\n return own.call(refractor.languages, aliasOrLanguage)\n}\n\n/**\n * List all registered languages (names and aliases).\n *\n * @returns {Array<string>}\n */\nfunction listLanguages() {\n const languages = refractor.languages\n /** @type {Array<string>} */\n const list = []\n /** @type {string} */\n let language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\n/**\n * @param {string|_Token|Array<string|_Token>} value\n * @param {string} language\n * @returns {Text|RefractorElement|Array<Text|RefractorElement>}\n */\nfunction stringify(value, language) {\n if (typeof value === 'string') {\n return {type: 'text', value}\n }\n\n if (Array.isArray(value)) {\n /** @type {Array<Text|RefractorElement>} */\n const result = []\n let index = -1\n\n while (++index < value.length) {\n if (\n value[index] !== '' &&\n value[index] !== null &&\n value[index] !== undefined\n ) {\n // @ts-expect-error Assume no sub-arrays.\n result.push(stringify(value[index], language))\n }\n }\n\n return result\n }\n\n /** @type {_Env} */\n const env = {\n type: value.type,\n content: stringify(value.content, language),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language\n }\n\n if (value.alias) {\n env.classes.push(\n ...(typeof value.alias === 'string' ? [value.alias] : value.alias)\n )\n }\n\n // @ts-expect-error Prism.\n refractor.hooks.run('wrap', env)\n\n // @ts-expect-error Hush, it’s fine.\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\n/**\n * @template {unknown} T\n * @param {T} tokens\n * @returns {T}\n */\nfunction encode(tokens) {\n return tokens\n}\n\n/**\n * @param {Record<string, string>} attrs\n * @returns {Record<string, string>}\n */\nfunction attributes(attrs) {\n /** @type {string} */\n let key\n\n for (key in attrs) {\n if (own.call(attrs, key)) {\n attrs[key] = parseEntities(attrs[key])\n }\n }\n\n return attrs\n}\n","/**\n * @typedef {import('./core.js').RefractorRoot} RefractorRoot\n * @typedef {import('./core.js').RefractorElement} RefractorElement\n * @typedef {import('./core.js').Text} Text\n * @typedef {import('./core.js').Grammar} Grammar\n * @typedef {import('./core.js').Syntax} Syntax\n */\nimport clike from '../lang/clike.js'\nimport c from '../lang/c.js'\nimport cpp from '../lang/cpp.js'\nimport arduino from '../lang/arduino.js'\nimport bash from '../lang/bash.js'\nimport csharp from '../lang/csharp.js'\nimport markup from '../lang/markup.js'\nimport css from '../lang/css.js'\nimport diff from '../lang/diff.js'\nimport go from '../lang/go.js'\nimport ini from '../lang/ini.js'\nimport java from '../lang/java.js'\nimport regex from '../lang/regex.js'\nimport javascript from '../lang/javascript.js'\nimport json from '../lang/json.js'\nimport kotlin from '../lang/kotlin.js'\nimport less from '../lang/less.js'\nimport lua from '../lang/lua.js'\nimport makefile from '../lang/makefile.js'\nimport yaml from '../lang/yaml.js'\nimport markdown from '../lang/markdown.js'\nimport objectivec from '../lang/objectivec.js'\nimport perl from '../lang/perl.js'\nimport markupTemplating from '../lang/markup-templating.js'\nimport php from '../lang/php.js'\nimport python from '../lang/python.js'\nimport r from '../lang/r.js'\nimport ruby from '../lang/ruby.js'\nimport rust from '../lang/rust.js'\nimport sass from '../lang/sass.js'\nimport scss from '../lang/scss.js'\nimport sql from '../lang/sql.js'\nimport swift from '../lang/swift.js'\nimport typescript from '../lang/typescript.js'\nimport basic from '../lang/basic.js'\nimport vbnet from '../lang/vbnet.js'\nimport {refractor} from './core.js'\n\nrefractor.register(clike)\nrefractor.register(c)\nrefractor.register(cpp)\nrefractor.register(arduino)\nrefractor.register(bash)\nrefractor.register(csharp)\nrefractor.register(markup)\nrefractor.register(css)\nrefractor.register(diff)\nrefractor.register(go)\nrefractor.register(ini)\nrefractor.register(java)\nrefractor.register(regex)\nrefractor.register(javascript)\nrefractor.register(json)\nrefractor.register(kotlin)\nrefractor.register(less)\nrefractor.register(lua)\nrefractor.register(makefile)\nrefractor.register(yaml)\nrefractor.register(markdown)\nrefractor.register(objectivec)\nrefractor.register(perl)\nrefractor.register(markupTemplating)\nrefractor.register(php)\nrefractor.register(python)\nrefractor.register(r)\nrefractor.register(ruby)\nrefractor.register(rust)\nrefractor.register(sass)\nrefractor.register(scss)\nrefractor.register(sql)\nrefractor.register(swift)\nrefractor.register(typescript)\nrefractor.register(basic)\nrefractor.register(vbnet)\n\nexport {refractor} from './core.js'\n","// @ts-nocheck\nabap.displayName = 'abap'\nabap.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function abap(Prism) {\n Prism.languages.abap = {\n comment: /^\\*.*/m,\n string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'string-template': {\n pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n lookbehind: true,\n alias: 'string'\n },\n /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n 'eol-comment': {\n pattern: /(^|\\s)\".*/m,\n lookbehind: true,\n alias: 'comment'\n },\n keyword: {\n pattern:\n /(\\s|\\.|^)(?:\\*-INPUT|\\?TO|ABAP-SOURCE|ABBREVIATED|ABS|ABSTRACT|ACCEPT|ACCEPTING|ACCESSPOLICY|ACCORDING|ACOS|ACTIVATION|ACTUAL|ADD|ADD-CORRESPONDING|ADJACENT|AFTER|ALIAS|ALIASES|ALIGN|ALL|ALLOCATE|ALPHA|ANALYSIS|ANALYZER|AND|ANY|APPEND|APPENDAGE|APPENDING|APPLICATION|ARCHIVE|AREA|ARITHMETIC|AS|ASCENDING|ASIN|ASPECT|ASSERT|ASSIGN|ASSIGNED|ASSIGNING|ASSOCIATION|ASYNCHRONOUS|AT|ATAN|ATTRIBUTES|AUTHORITY|AUTHORITY-CHECK|AVG|BACK|BACKGROUND|BACKUP|BACKWARD|BADI|BASE|BEFORE|BEGIN|BETWEEN|BIG|BINARY|BINDING|BIT|BIT-AND|BIT-NOT|BIT-OR|BIT-XOR|BLACK|BLANK|BLANKS|BLOB|BLOCK|BLOCKS|BLUE|BOUND|BOUNDARIES|BOUNDS|BOXED|BREAK-POINT|BT|BUFFER|BY|BYPASSING|BYTE|BYTE-CA|BYTE-CN|BYTE-CO|BYTE-CS|BYTE-NA|BYTE-NS|BYTE-ORDER|C|CA|CALL|CALLING|CASE|CAST|CASTING|CATCH|CEIL|CENTER|CENTERED|CHAIN|CHAIN-INPUT|CHAIN-REQUEST|CHANGE|CHANGING|CHANNELS|CHAR-TO-HEX|CHARACTER|CHARLEN|CHECK|CHECKBOX|CIRCULAR|CI_|CLASS|CLASS-CODING|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|CLEANUP|CLEAR|CLIENT|CLOB|CLOCK|CLOSE|CN|CNT|CO|COALESCE|CODE|CODING|COLLECT|COLOR|COLUMN|COLUMNS|COL_BACKGROUND|COL_GROUP|COL_HEADING|COL_KEY|COL_NEGATIVE|COL_NORMAL|COL_POSITIVE|COL_TOTAL|COMMENT|COMMENTS|COMMIT|COMMON|COMMUNICATION|COMPARING|COMPONENT|COMPONENTS|COMPRESSION|COMPUTE|CONCAT|CONCATENATE|COND|CONDENSE|CONDITION|CONNECT|CONNECTION|CONSTANTS|CONTEXT|CONTEXTS|CONTINUE|CONTROL|CONTROLS|CONV|CONVERSION|CONVERT|COPIES|COPY|CORRESPONDING|COS|COSH|COUNT|COUNTRY|COVER|CP|CPI|CREATE|CREATING|CRITICAL|CS|CURRENCY|CURRENCY_CONVERSION|CURRENT|CURSOR|CURSOR-SELECTION|CUSTOMER|CUSTOMER-FUNCTION|DANGEROUS|DATA|DATABASE|DATAINFO|DATASET|DATE|DAYLIGHT|DBMAXLEN|DD\\/MM\\/YY|DD\\/MM\\/YYYY|DDMMYY|DEALLOCATE|DECIMALS|DECIMAL_SHIFT|DECLARATIONS|DEEP|DEFAULT|DEFERRED|DEFINE|DEFINING|DEFINITION|DELETE|DELETING|DEMAND|DEPARTMENT|DESCENDING|DESCRIBE|DESTINATION|DETAIL|DIALOG|DIRECTORY|DISCONNECT|DISPLAY|DISPLAY-MODE|DISTANCE|DISTINCT|DIV|DIVIDE|DIVIDE-CORRESPONDING|DIVISION|DO|DUMMY|DUPLICATE|DUPLICATES|DURATION|DURING|DYNAMIC|DYNPRO|E|EACH|EDIT|EDITOR-CALL|ELSE|ELSEIF|EMPTY|ENABLED|ENABLING|ENCODING|END|END-ENHANCEMENT-SECTION|END-LINES|END-OF-DEFINITION|END-OF-FILE|END-OF-PAGE|END-OF-SELECTION|ENDAT|ENDCASE|ENDCATCH|ENDCHAIN|ENDCLASS|ENDDO|ENDENHANCEMENT|ENDEXEC|ENDFOR|ENDFORM|ENDFUNCTION|ENDIAN|ENDIF|ENDING|ENDINTERFACE|ENDLOOP|ENDMETHOD|ENDMODULE|ENDON|ENDPROVIDE|ENDSELECT|ENDTRY|ENDWHILE|ENGINEERING|ENHANCEMENT|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|ENHANCEMENTS|ENTRIES|ENTRY|ENVIRONMENT|EQ|EQUAL|EQUIV|ERRORMESSAGE|ERRORS|ESCAPE|ESCAPING|EVENT|EVENTS|EXACT|EXCEPT|EXCEPTION|EXCEPTION-TABLE|EXCEPTIONS|EXCLUDE|EXCLUDING|EXEC|EXECUTE|EXISTS|EXIT|EXIT-COMMAND|EXP|EXPAND|EXPANDING|EXPIRATION|EXPLICIT|EXPONENT|EXPORT|EXPORTING|EXTEND|EXTENDED|EXTENSION|EXTRACT|FAIL|FETCH|FIELD|FIELD-GROUPS|FIELD-SYMBOL|FIELD-SYMBOLS|FIELDS|FILE|FILTER|FILTER-TABLE|FILTERS|FINAL|FIND|FIRST|FIRST-LINE|FIXED-POINT|FKEQ|FKGE|FLOOR|FLUSH|FONT|FOR|FORM|FORMAT|FORWARD|FOUND|FRAC|FRAME|FRAMES|FREE|FRIENDS|FROM|FUNCTION|FUNCTION-POOL|FUNCTIONALITY|FURTHER|GAPS|GE|GENERATE|GET|GIVING|GKEQ|GKGE|GLOBAL|GRANT|GREATER|GREEN|GROUP|GROUPS|GT|HANDLE|HANDLER|HARMLESS|HASHED|HAVING|HDB|HEAD-LINES|HEADER|HEADERS|HEADING|HELP-ID|HELP-REQUEST|HIDE|HIGH|HINT|HOLD|HOTSPOT|I|ICON|ID|IDENTIFICATION|IDENTIFIER|IDS|IF|IGNORE|IGNORING|IMMEDIATELY|IMPLEMENTATION|IMPLEMENTATIONS|IMPLEMENTED|IMPLICIT|IMPORT|IMPORTING|IN|INACTIVE|INCL|INCLUDE|INCLUDES|INCLUDING|INCREMENT|INDEX|INDEX-LINE|INFOTYPES|INHERITING|INIT|INITIAL|INITIALIZATION|INNER|INOUT|INPUT|INSERT|INSTANCES|INTENSIFIED|INTERFACE|INTERFACE-POOL|INTERFACES|INTERNAL|INTERVALS|INTO|INVERSE|INVERTED-DATE|IS|ISO|ITERATOR|ITNO|JOB|JOIN|KEEP|KEEPING|KERNEL|KEY|KEYS|KEYWORDS|KIND|LANGUAGE|LAST|LATE|LAYOUT|LE|LEADING|LEAVE|LEFT|LEFT-JUSTIFIED|LEFTPLUS|LEFTSPACE|LEGACY|LENGTH|LESS|LET|LEVEL|LEVELS|LIKE|LINE|LINE-COUNT|LINE-SELECTION|LINE-SIZE|LINEFEED|LINES|LIST|LIST-PROCESSING|LISTBOX|LITTLE|LLANG|LOAD|LOAD-OF-PROGRAM|LOB|LOCAL|LOCALE|LOCATOR|LOG|LOG-POINT|LOG10|LOGFILE|LOGICAL|LONG|LOOP|LOW|LOWER|LPAD|LPI|LT|M|MAIL|MAIN|MAJOR-ID|MAPPING|MARGIN|MARK|MASK|MATCH|MATCHCODE|MAX|MAXIMUM|MEDIUM|MEMBERS|MEMORY|MESH|MESSAGE|MESSAGE-ID|MESSAGES|MESSAGING|METHOD|METHODS|MIN|MINIMUM|MINOR-ID|MM\\/DD\\/YY|MM\\/DD\\/YYYY|MMDDYY|MOD|MODE|MODIF|MODIFIER|MODIFY|MODULE|MOVE|MOVE-CORRESPONDING|MULTIPLY|MULTIPLY-CORRESPONDING|NA|NAME|NAMETAB|NATIVE|NB|NE|NESTED|NESTING|NEW|NEW-LINE|NEW-PAGE|NEW-SECTION|NEXT|NO|NO-DISPLAY|NO-EXTENSION|NO-GAP|NO-GAPS|NO-GROUPING|NO-HEADING|NO-SCROLLING|NO-SIGN|NO-TITLE|NO-TOPOFPAGE|NO-ZERO|NODE|NODES|NON-UNICODE|NON-UNIQUE|NOT|NP|NS|NULL|NUMBER|NUMOFCHAR|O|OBJECT|OBJECTS|OBLIGATORY|OCCURRENCE|OCCURRENCES|OCCURS|OF|OFF|OFFSET|OLE|ON|ONLY|OPEN|OPTION|OPTIONAL|OPTIONS|OR|ORDER|OTHER|OTHERS|OUT|OUTER|OUTPUT|OUTPUT-LENGTH|OVERFLOW|OVERLAY|PACK|PACKAGE|PAD|PADDING|PAGE|PAGES|PARAMETER|PARAMETER-TABLE|PARAMETERS|PART|PARTIALLY|PATTERN|PERCENTAGE|PERFORM|PERFORMING|PERSON|PF|PF-STATUS|PINK|PLACES|POOL|POSITION|POS_HIGH|POS_LOW|PRAGMAS|PRECOMPILED|PREFERRED|PRESERVING|PRIMARY|PRINT|PRINT-CONTROL|PRIORITY|PRIVATE|PROCEDURE|PROCESS|PROGRAM|PROPERTY|PROTECTED|PROVIDE|PUBLIC|PUSHBUTTON|PUT|QUEUE-ONLY|QUICKINFO|RADIOBUTTON|RAISE|RAISING|RANGE|RANGES|RAW|READ|READ-ONLY|READER|RECEIVE|RECEIVED|RECEIVER|RECEIVING|RED|REDEFINITION|REDUCE|REDUCED|REF|REFERENCE|REFRESH|REGEX|REJECT|REMOTE|RENAMING|REPLACE|REPLACEMENT|REPLACING|REPORT|REQUEST|REQUESTED|RESERVE|RESET|RESOLUTION|RESPECTING|RESPONSIBLE|RESULT|RESULTS|RESUMABLE|RESUME|RETRY|RETURN|RETURNCODE|RETURNING|RIGHT|RIGHT-JUSTIFIED|RIGHTPLUS|RIGHTSPACE|RISK|RMC_COMMUNICATION_FAILURE|RMC_INVALID_STATUS|RMC_SYSTEM_FAILURE|ROLE|ROLLBACK|ROUND|ROWS|RTTI|RUN|SAP|SAP-SPOOL|SAVING|SCALE_PRESERVING|SCALE_PRESERVING_SCIENTIFIC|SCAN|SCIENTIFIC|SCIENTIFIC_WITH_LEADING_ZERO|SCREEN|SCROLL|SCROLL-BOUNDARY|SCROLLING|SEARCH|SECONDARY|SECONDS|SECTION|SELECT|SELECT-OPTIONS|SELECTION|SELECTION-SCREEN|SELECTION-SET|SELECTION-SETS|SELECTION-TABLE|SELECTIONS|SELECTOR|SEND|SEPARATE|SEPARATED|SET|SHARED|SHIFT|SHORT|SHORTDUMP-ID|SIGN|SIGN_AS_POSTFIX|SIMPLE|SIN|SINGLE|SINH|SIZE|SKIP|SKIPPING|SMART|SOME|SORT|SORTABLE|SORTED|SOURCE|SPACE|SPECIFIED|SPLIT|SPOOL|SPOTS|SQL|SQLSCRIPT|SQRT|STABLE|STAMP|STANDARD|START-OF-SELECTION|STARTING|STATE|STATEMENT|STATEMENTS|STATIC|STATICS|STATUSINFO|STEP-LOOP|STOP|STRLEN|STRUCTURE|STRUCTURES|STYLE|SUBKEY|SUBMATCHES|SUBMIT|SUBROUTINE|SUBSCREEN|SUBSTRING|SUBTRACT|SUBTRACT-CORRESPONDING|SUFFIX|SUM|SUMMARY|SUMMING|SUPPLIED|SUPPLY|SUPPRESS|SWITCH|SWITCHSTATES|SYMBOL|SYNCPOINTS|SYNTAX|SYNTAX-CHECK|SYNTAX-TRACE|SYSTEM-CALL|SYSTEM-EXCEPTIONS|SYSTEM-EXIT|TAB|TABBED|TABLE|TABLES|TABLEVIEW|TABSTRIP|TAN|TANH|TARGET|TASK|TASKS|TEST|TESTING|TEXT|TEXTPOOL|THEN|THROW|TIME|TIMES|TIMESTAMP|TIMEZONE|TITLE|TITLE-LINES|TITLEBAR|TO|TOKENIZATION|TOKENS|TOP-LINES|TOP-OF-PAGE|TRACE-FILE|TRACE-TABLE|TRAILING|TRANSACTION|TRANSFER|TRANSFORMATION|TRANSLATE|TRANSPORTING|TRMAC|TRUNC|TRUNCATE|TRUNCATION|TRY|TYPE|TYPE-POOL|TYPE-POOLS|TYPES|ULINE|UNASSIGN|UNDER|UNICODE|UNION|UNIQUE|UNIT|UNIT_CONVERSION|UNIX|UNPACK|UNTIL|UNWIND|UP|UPDATE|UPPER|USER|USER-COMMAND|USING|UTF-8|VALID|VALUE|VALUE-REQUEST|VALUES|VARY|VARYING|VERIFICATION-MESSAGE|VERSION|VIA|VIEW|VISIBLE|WAIT|WARNING|WHEN|WHENEVER|WHERE|WHILE|WIDTH|WINDOW|WINDOWS|WITH|WITH-HEADING|WITH-TITLE|WITHOUT|WORD|WORK|WRITE|WRITER|X|XML|XOR|XSD|XSTRLEN|YELLOW|YES|YYMMDD|Z|ZERO|ZONE)(?![\\w-])/i,\n lookbehind: true\n },\n /* Numbers can be only integers. Decimal or Hex appear only as strings */\n number: /\\b\\d+\\b/,\n /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n operator: {\n pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n lookbehind: true\n },\n 'string-operator': {\n pattern: /(\\s)&&?(?=\\s)/,\n lookbehind: true,\n /* The official editor highlights */\n alias: 'keyword'\n },\n 'token-operator': [\n {\n /* Special operators used to access structure components, class methods/attributes, etc. */\n pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n {\n /* Special tokens used do delimit string templates */\n pattern: /[|{}]/,\n alias: 'punctuation'\n }\n ],\n punctuation: /[,.:()]/\n }\n}\n","// @ts-nocheck\nabnf.displayName = 'abnf'\nabnf.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function abnf(Prism) {\n ;(function (Prism) {\n var coreRules =\n '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n Prism.languages.abnf = {\n comment: /;.*/,\n string: {\n pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n greedy: true,\n inside: {\n punctuation: /^%[is]/\n }\n },\n range: {\n pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n alias: 'number'\n },\n terminal: {\n pattern:\n /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n alias: 'number'\n },\n repetition: {\n pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n lookbehind: true,\n alias: 'operator'\n },\n definition: {\n pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n punctuation: /<|>/\n }\n },\n 'core-rule': {\n pattern: RegExp(\n '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n 'i'\n ),\n lookbehind: true,\n alias: ['rule', 'constant'],\n inside: {\n punctuation: /<|>/\n }\n },\n rule: {\n pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n lookbehind: true,\n inside: {\n punctuation: /<|>/\n }\n },\n operator: /=\\/?|\\//,\n punctuation: /[()\\[\\]]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function actionscript(Prism) {\n Prism.register(refractorJavascript)\n Prism.languages.actionscript = Prism.languages.extend('javascript', {\n keyword:\n /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n })\n Prism.languages.actionscript['class-name'].alias = 'function'\n\n // doesn't work with AS because AS is too complex\n delete Prism.languages.actionscript['parameter']\n delete Prism.languages.actionscript['literal-property']\n if (Prism.languages.markup) {\n Prism.languages.insertBefore('actionscript', 'string', {\n xml: {\n pattern:\n /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n lookbehind: true,\n inside: Prism.languages.markup\n }\n })\n }\n}\n","// @ts-nocheck\nada.displayName = 'ada'\nada.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function ada(Prism) {\n Prism.languages.ada = {\n comment: /--.*/,\n string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n number: [\n {\n pattern:\n /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n },\n {\n pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n }\n ],\n attribute: {\n pattern: /\\b'\\w+/,\n alias: 'attr-name'\n },\n keyword:\n /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|or|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n punctuation: /\\.\\.?|[,;():]/,\n char: /'.'/,\n variable: /\\b[a-z](?:\\w)*\\b/i\n }\n}\n","// @ts-nocheck\nagda.displayName = 'agda'\nagda.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function agda(Prism) {\n ;(function (Prism) {\n Prism.languages.agda = {\n comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n punctuation: /[(){}⦃⦄.;@]/,\n 'class-name': {\n pattern: /((?:data|record) +)\\S+/,\n lookbehind: true\n },\n function: {\n pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n lookbehind: true\n },\n operator: {\n pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n lookbehind: true\n },\n keyword:\n /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n }\n })(Prism)\n}\n","// @ts-nocheck\nal.displayName = 'al'\nal.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function al(Prism) {\n // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n\n Prism.languages.al = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n function: {\n pattern:\n /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true\n },\n keyword: [\n // keywords\n /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i,\n // objects and metadata that are used like keywords\n /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n ],\n number:\n /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n 'class-name':\n /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n punctuation: /[()\\[\\]{}:.;,]/\n }\n}\n","// @ts-nocheck\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\n\n/** @type {import('../core.js').Syntax} */\nexport default function antlr4(Prism) {\n Prism.languages.antlr4 = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n string: {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n 'character-class': {\n pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n greedy: true,\n alias: 'regex',\n inside: {\n range: {\n pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n lookbehind: true,\n alias: 'punctuation'\n },\n escape:\n /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n punctuation: /[\\[\\]]/\n }\n },\n action: {\n pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n greedy: true,\n inside: {\n content: {\n // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n pattern: /(\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true\n },\n punctuation: /[{}]/\n }\n },\n command: {\n pattern:\n /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n lookbehind: true,\n inside: {\n function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n punctuation: /[,()]/\n }\n },\n annotation: {\n pattern: /@\\w+(?:::\\w+)*/,\n alias: 'keyword'\n },\n label: {\n pattern: /#[ \\t]*\\w+/,\n alias: 'punctuation'\n },\n keyword:\n /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n definition: [\n {\n pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n alias: ['rule', 'class-name']\n },\n {\n pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n alias: ['token', 'constant']\n }\n ],\n constant: /\\b[A-Z][A-Z_]*\\b/,\n operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n punctuation: /[;:()=]/\n }\n Prism.languages.g4 = Prism.languages.antlr4\n}\n","// @ts-nocheck\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function apacheconf(Prism) {\n Prism.languages.apacheconf = {\n comment: /#.*/,\n 'directive-inline': {\n pattern:\n /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n lookbehind: true,\n alias: 'property'\n },\n 'directive-block': {\n pattern:\n /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n inside: {\n 'directive-block': {\n pattern: /^<\\/?\\w+/,\n inside: {\n punctuation: /^<\\/?/\n },\n alias: 'tag'\n },\n 'directive-block-parameter': {\n pattern: /.*[^>]/,\n inside: {\n punctuation: /:/,\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n }\n },\n alias: 'attr-value'\n },\n punctuation: />/\n },\n alias: 'tag'\n },\n 'directive-flags': {\n pattern: /\\[(?:[\\w=],?)+\\]/,\n alias: 'keyword'\n },\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n },\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n regex: /\\^?.*\\$|\\^.*\\$?/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nimport refractorSql from './sql.js'\napex.displayName = 'apex'\napex.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function apex(Prism) {\n Prism.register(refractorClike)\n Prism.register(refractorSql)\n ;(function (Prism) {\n var keywords =\n /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n var className =\n /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n /** @param {string} pattern */\n function insertClassName(pattern) {\n return RegExp(\n pattern.replace(/<CLASS-NAME>/g, function () {\n return className\n }),\n 'i'\n )\n }\n var classNameInside = {\n keyword: keywords,\n punctuation: /[()\\[\\]{};,:.<>]/\n }\n Prism.languages.apex = {\n comment: Prism.languages.clike.comment,\n string: Prism.languages.clike.string,\n sql: {\n pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n lookbehind: true,\n greedy: true,\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n annotation: {\n pattern: /@\\w+\\b/,\n alias: 'punctuation'\n },\n 'class-name': [\n {\n pattern: insertClassName(\n /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n .source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // cast\n pattern: insertClassName(\n /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // variable/parameter declaration and return types\n pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n inside: classNameInside\n }\n ],\n trigger: {\n pattern: /(\\btrigger\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n keyword: keywords,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n operator:\n /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n punctuation: /[()\\[\\]{};,.]/\n }\n })(Prism)\n}\n","// @ts-nocheck\napl.displayName = 'apl'\napl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function apl(Prism) {\n Prism.languages.apl = {\n comment: /(?:â|#[! ]).*$/m,\n string: {\n pattern: /'(?:[^'\\r\\n]|'')*'/,\n greedy: true\n },\n number:\n /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n 'system-function': {\n pattern: /⎕[A-Z]+/i,\n alias: 'function'\n },\n constant: /[â¬âŒ¾#⎕âž]/,\n function: /[-+×÷⌈⌊∣|â³â¸?*âŸâ—‹!⌹<≤=>≥≠≡≢∊â·âˆªâˆ©~∨∧â±â²â´,âªâŒ½âŠ–â‰â†‘↓⊂⊃⊆⊇⌷â‹â’⊤⊥â•âŽâŠ£âŠ¢ââ‚≈â¯â†—¤→]/,\n 'monadic-operator': {\n pattern: /[\\\\\\/⌿â€Â¨â¨âŒ¶&∥]/,\n alias: 'operator'\n },\n 'dyadic-operator': {\n pattern: /[.â£â â¤âˆ˜âŒ¸@⌺â¥]/,\n alias: 'operator'\n },\n assignment: {\n pattern: /â†/,\n alias: 'keyword'\n },\n punctuation: /[\\[;\\]()◇⋄]/,\n dfn: {\n pattern: /[{}âºâµâ¶â¹âˆ‡â«:]/,\n alias: 'builtin'\n }\n }\n}\n","// @ts-nocheck\napplescript.displayName = 'applescript'\napplescript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function applescript(Prism) {\n Prism.languages.applescript = {\n comment: [\n // Allow one level of nesting\n /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n /--.+/,\n /#.+/\n ],\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n operator: [\n /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n ],\n keyword:\n /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n 'class-name':\n /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n punctuation: /[{}():,¬«»《》]/\n }\n}\n","// @ts-nocheck\naql.displayName = 'aql'\naql.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function aql(Prism) {\n Prism.languages.aql = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n property: {\n pattern:\n /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n variable: /@@?\\w+/,\n keyword: [\n {\n pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n lookbehind: true\n },\n /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i,\n // pseudo keywords get a lookbehind to avoid false positives\n {\n pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n lookbehind: true\n },\n {\n pattern: /\\bOPTIONS(?=\\s*\\{)/i\n }\n ],\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n boolean: /\\b(?:false|true)\\b/i,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n number: [\n /\\b0b[01]+/i,\n /\\b0x[0-9a-f]+/i,\n /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n ],\n operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n punctuation: /::|[?.:,;()[\\]{}]/\n }\n}\n","// @ts-nocheck\narff.displayName = 'arff'\narff.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function arff(Prism) {\n Prism.languages.arff = {\n comment: /%.*/,\n string: {\n pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /@(?:attribute|data|end|relation)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n punctuation: /[{},]/\n }\n}\n","// @ts-nocheck\narmasm.displayName = 'armasm'\narmasm.aliases = ['arm-asm']\n\n/** @type {import('../core.js').Syntax} */\nexport default function armasm(Prism) {\n Prism.languages.armasm = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"/,\n greedy: true,\n inside: {\n variable: {\n pattern: /((?:^|[^$])(?:\\${2})*)\\$\\w+/,\n lookbehind: true\n }\n }\n },\n char: {\n pattern: /'(?:[^'\\r\\n]{0,4}|'')'/,\n greedy: true\n },\n 'version-symbol': {\n pattern: /\\|[\\w@]+\\|/,\n greedy: true,\n alias: 'property'\n },\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n directive: {\n pattern:\n /\\b(?:ALIAS|ALIGN|AREA|ARM|ASSERT|ATTR|CN|CODE|CODE16|CODE32|COMMON|CP|DATA|DCB|DCD|DCDO|DCDU|DCFD|DCFDU|DCI|DCQ|DCQU|DCW|DCWU|DN|ELIF|ELSE|END|ENDFUNC|ENDIF|ENDP|ENTRY|EQU|EXPORT|EXPORTAS|EXTERN|FIELD|FILL|FN|FUNCTION|GBLA|GBLL|GBLS|GET|GLOBAL|IF|IMPORT|INCBIN|INCLUDE|INFO|KEEP|LCLA|LCLL|LCLS|LTORG|MACRO|MAP|MEND|MEXIT|NOFP|OPT|PRESERVE8|PROC|QN|READONLY|RELOC|REQUIRE|REQUIRE8|RLIST|ROUT|SETA|SETL|SETS|SN|SPACE|SUBT|THUMB|THUMBX|TTL|WEND|WHILE)\\b/,\n alias: 'property'\n },\n instruction: {\n pattern:\n /((?:^|(?:^|[^\\\\])(?:\\r\\n?|\\n))[ \\t]*(?:(?:[A-Z][A-Z0-9_]*[a-z]\\w*|[a-z]\\w*|\\d+)[ \\t]+)?)\\b[A-Z.]+\\b/,\n lookbehind: true,\n alias: 'keyword'\n },\n variable: /\\$\\w+/,\n number:\n /(?:\\b[2-9]_\\d+|(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e-?\\d+)?|\\b0(?:[fd]_|x)[0-9a-f]+|&[0-9a-f]+)\\b/i,\n register: {\n pattern: /\\b(?:r\\d|lr)\\b/,\n alias: 'symbol'\n },\n operator: /<>|<<|>>|&&|\\|\\||[=!<>/]=?|[+\\-*%#?&|^]|:[A-Z]+:/,\n punctuation: /[()[\\],]/\n }\n Prism.languages['arm-asm'] = Prism.languages.armasm\n}\n","// @ts-nocheck\narturo.displayName = 'arturo'\narturo.aliases = ['art']\n\n/** @type {import('../core.js').Syntax} */\nexport default function arturo(Prism) {\n ;(function (Prism) {\n /**\n * @param {string} lang\n * @param {string} pattern\n */\n var createLanguageString = function (lang, pattern) {\n return {\n pattern: RegExp(\n /\\{!/.source + '(?:' + (pattern || lang) + ')' + /$[\\s\\S]*\\}/.source,\n 'm'\n ),\n greedy: true,\n inside: {\n embedded: {\n pattern: /(^\\{!\\w+\\b)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n alias: 'language-' + lang,\n inside: Prism.languages[lang]\n },\n string: /[\\s\\S]+/\n }\n }\n }\n Prism.languages.arturo = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n character: {\n pattern: /`.`/,\n alias: 'char',\n greedy: true\n },\n number: {\n pattern: /\\b\\d+(?:\\.\\d+(?:\\.\\d+(?:-[\\w+-]+)?)?)?\\b/\n },\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n greedy: true\n },\n regex: {\n pattern: /\\{\\/.*?\\/\\}/,\n greedy: true\n },\n 'html-string': createLanguageString('html'),\n 'css-string': createLanguageString('css'),\n 'js-string': createLanguageString('js'),\n 'md-string': createLanguageString('md'),\n 'sql-string': createLanguageString('sql'),\n 'sh-string': createLanguageString('shell', 'sh'),\n multistring: {\n pattern: /».*|\\{:[\\s\\S]*?:\\}|\\{[\\s\\S]*?\\}|^-{6}$[\\s\\S]*/m,\n alias: 'string',\n greedy: true\n },\n label: {\n pattern: /\\w+\\b\\??:/,\n alias: 'property'\n },\n literal: {\n pattern: /'(?:\\w+\\b\\??:?)/,\n alias: 'constant'\n },\n type: {\n pattern: /:(?:\\w+\\b\\??:?)/,\n alias: 'class-name'\n },\n color: /#\\w+/,\n predicate: {\n pattern:\n /\\b(?:all|and|any|ascii|attr|attribute|attributeLabel|binary|block|char|contains|database|date|dictionary|empty|equal|even|every|exists|false|floating|function|greater|greaterOrEqual|if|in|inline|integer|is|key|label|leap|less|lessOrEqual|literal|logical|lower|nand|negative|nor|not|notEqual|null|numeric|odd|or|path|pathLabel|positive|prefix|prime|regex|same|set|some|sorted|standalone|string|subset|suffix|superset|symbol|symbolLiteral|true|try|type|unless|upper|when|whitespace|word|xnor|xor|zero)\\?/,\n alias: 'keyword'\n },\n 'builtin-function': {\n pattern:\n /\\b(?:abs|acos|acosh|acsec|acsech|actan|actanh|add|after|alert|alias|and|angle|append|arg|args|arity|array|as|asec|asech|asin|asinh|atan|atan2|atanh|attr|attrs|average|before|benchmark|blend|break|call|capitalize|case|ceil|chop|clear|clip|close|color|combine|conj|continue|copy|cos|cosh|crc|csec|csech|ctan|ctanh|cursor|darken|dec|decode|define|delete|desaturate|deviation|dialog|dictionary|difference|digest|digits|div|do|download|drop|dup|e|else|empty|encode|ensure|env|escape|execute|exit|exp|extend|extract|factors|fdiv|filter|first|flatten|floor|fold|from|function|gamma|gcd|get|goto|hash|hypot|if|inc|indent|index|infinity|info|input|insert|inspect|intersection|invert|jaro|join|keys|kurtosis|last|let|levenshtein|lighten|list|ln|log|loop|lower|mail|map|match|max|median|min|mod|module|mul|nand|neg|new|nor|normalize|not|now|null|open|or|outdent|pad|palette|panic|path|pause|permissions|permutate|pi|pop|popup|pow|powerset|powmod|prefix|print|prints|process|product|query|random|range|read|relative|remove|rename|render|repeat|replace|request|return|reverse|round|sample|saturate|script|sec|sech|select|serve|set|shl|shr|shuffle|sin|sinh|size|skewness|slice|sort|spin|split|sqrt|squeeze|stack|strip|sub|suffix|sum|switch|symbols|symlink|sys|take|tan|tanh|terminal|terminate|to|truncate|try|type|unclip|union|unique|unless|until|unzip|upper|values|var|variance|volume|webview|while|with|wordwrap|write|xnor|xor|zip)\\b/,\n alias: 'keyword'\n },\n sugar: {\n pattern: /->|=>|\\||::/,\n alias: 'operator'\n },\n punctuation: /[()[\\],]/,\n symbol: {\n pattern: /<:|-:|ø|@|#|\\+|\\||\\*|\\$|---|-|%|\\/|\\.\\.|\\^|~|=|<|>|\\\\/\n },\n boolean: {\n pattern: /\\b(?:false|maybe|true)\\b/\n }\n }\n Prism.languages.art = Prism.languages['arturo']\n })(Prism)\n}\n","// @ts-nocheck\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\n\n/** @type {import('../core.js').Syntax} */\nexport default function asciidoc(Prism) {\n ;(function (Prism) {\n var attributes = {\n pattern:\n /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n lookbehind: true,\n inside: {\n quoted: {\n pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n inside: {\n punctuation: /^[$`]|[$`]$/\n }\n },\n interpreted: {\n pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n inside: {\n punctuation: /^'|'$/\n // See rest below\n }\n },\n\n string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n variable: /\\w+(?==)/,\n punctuation: /^\\[|\\]$|,/,\n operator: /=/,\n // The negative look-ahead prevents blank matches\n 'attr-value': /(?!^\\s+$).+/\n }\n }\n var asciidoc = (Prism.languages.asciidoc = {\n 'comment-block': {\n pattern: /^(\\/{4,})$[\\s\\S]*?^\\1/m,\n alias: 'comment'\n },\n table: {\n pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n inside: {\n specifiers: {\n pattern:\n /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n alias: 'attr-value'\n },\n punctuation: {\n pattern: /(^|[^\\\\])[|!]=*/,\n lookbehind: true\n }\n // See rest below\n }\n },\n\n 'passthrough-block': {\n pattern: /^(\\+{4,})$[\\s\\S]*?^\\1$/m,\n inside: {\n punctuation: /^\\++|\\++$/\n // See rest below\n }\n },\n\n // Literal blocks and listing blocks\n 'literal-block': {\n pattern: /^(-{4,}|\\.{4,})$[\\s\\S]*?^\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/\n // See rest below\n }\n },\n\n // Sidebar blocks, quote blocks, example blocks and open blocks\n 'other-block': {\n pattern: /^(--|\\*{4,}|_{4,}|={4,})$[\\s\\S]*?^\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/\n // See rest below\n }\n },\n\n // list-punctuation and list-label must appear before indented-block\n 'list-punctuation': {\n pattern:\n /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'list-label': {\n pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'indented-block': {\n pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n lookbehind: true\n },\n comment: /^\\/\\/.*/m,\n title: {\n pattern:\n /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n alias: 'important',\n inside: {\n punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/\n // See rest below\n }\n },\n\n 'attribute-entry': {\n pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n alias: 'tag'\n },\n attributes: attributes,\n hr: {\n pattern: /^'{3,}$/m,\n alias: 'punctuation'\n },\n 'page-break': {\n pattern: /^<{3,}$/m,\n alias: 'punctuation'\n },\n admonition: {\n pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n alias: 'keyword'\n },\n callout: [\n {\n pattern: /(^[ \\t]*)<?\\d*>/m,\n lookbehind: true,\n alias: 'symbol'\n },\n {\n pattern: /<\\d+>/,\n alias: 'symbol'\n }\n ],\n macro: {\n pattern:\n /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: {\n function: /^[a-z\\d-]+(?=:)/,\n punctuation: /^::?/,\n attributes: {\n pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: attributes.inside\n }\n }\n },\n inline: {\n /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n pattern:\n /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n lookbehind: true,\n inside: {\n attributes: attributes,\n url: {\n pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n inside: {\n punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n }\n },\n 'attribute-ref': {\n pattern: /^\\{.+\\}$/,\n inside: {\n variable: {\n pattern: /(^\\{)[a-z\\d,+_-]+/,\n lookbehind: true\n },\n operator: /^[=?!#%@$]|!(?=[:}])/,\n punctuation: /^\\{|\\}$|::?/\n }\n },\n italic: {\n pattern: /^(['_])[\\s\\S]+\\1$/,\n inside: {\n punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n }\n },\n bold: {\n pattern: /^\\*[\\s\\S]+\\*$/,\n inside: {\n punctuation: /^\\*\\*?|\\*\\*?$/\n }\n },\n punctuation:\n /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n }\n },\n replacement: {\n pattern: /\\((?:C|R|TM)\\)/,\n alias: 'builtin'\n },\n entity: /&#?[\\da-z]{1,8};/i,\n 'line-continuation': {\n pattern: /(^| )\\+$/m,\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n\n // Allow some nesting. There is no recursion though, so cloning should not be needed.\n\n function copyFromAsciiDoc(keys) {\n keys = keys.split(' ')\n var o = {}\n for (var i = 0, l = keys.length; i < l; i++) {\n o[keys[i]] = asciidoc[keys[i]]\n }\n return o\n }\n attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n )\n asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n asciidoc['table'].inside.rest = copyFromAsciiDoc(\n 'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n )\n asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n 'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n )\n asciidoc['title'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n )\n\n // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&/, '&')\n }\n })\n Prism.languages.adoc = Prism.languages.asciidoc\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCsharp from './csharp.js'\nimport refractorMarkup from './markup.js'\naspnet.displayName = 'aspnet'\naspnet.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function aspnet(Prism) {\n Prism.register(refractorCsharp)\n Prism.register(refractorMarkup)\n Prism.languages.aspnet = Prism.languages.extend('markup', {\n 'page-directive': {\n pattern: /<%\\s*@.*%>/,\n alias: 'tag',\n inside: {\n 'page-directive': {\n pattern:\n /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.markup.tag.inside\n }\n },\n directive: {\n pattern: /<%.*%>/,\n alias: 'tag',\n inside: {\n directive: {\n pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n alias: 'tag'\n },\n rest: Prism.languages.csharp\n }\n }\n })\n // Regexp copied from prism-markup, with a negative look-ahead added\n Prism.languages.aspnet.tag.pattern =\n /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n\n // match directives of attribute value foo=\"<% Bar %>\"\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n directive: Prism.languages.aspnet['directive']\n },\n Prism.languages.aspnet.tag.inside['attr-value']\n )\n Prism.languages.insertBefore('aspnet', 'comment', {\n 'asp-comment': {\n pattern: /<%--[\\s\\S]*?--%>/,\n alias: ['asp', 'comment']\n }\n })\n\n // script runat=\"server\" contains csharp, not javascript\n Prism.languages.insertBefore(\n 'aspnet',\n Prism.languages.javascript ? 'script' : 'tag',\n {\n 'asp-script': {\n pattern:\n /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n lookbehind: true,\n alias: ['asp', 'script'],\n inside: Prism.languages.csharp || {}\n }\n }\n )\n}\n","// @ts-nocheck\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function asm6502(Prism) {\n Prism.languages.asm6502 = {\n comment: /;.*/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'op-code': {\n pattern:\n /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[xya]\\b/i,\n alias: 'variable'\n },\n punctuation: /[(),:]/\n }\n}\n","// @ts-nocheck\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function asmatmel(Prism) {\n Prism.languages.asmatmel = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n 'r-register': {\n pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n alias: 'variable'\n },\n 'op-code': {\n pattern:\n /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[acznvshtixy]\\b/i,\n alias: 'variable'\n },\n operator: />>=?|<<=?|&[&=]?|\\|[\\|=]?|[-+*/%^!=<>?]=?/,\n punctuation: /[(),:]/\n }\n}\n","// @ts-nocheck\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function autohotkey(Prism) {\n // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n Prism.languages.autohotkey = {\n comment: [\n {\n pattern: /(^|\\s);.*/,\n lookbehind: true\n },\n {\n pattern:\n /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n lookbehind: true,\n greedy: true\n }\n ],\n tag: {\n // labels\n pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n lookbehind: true\n },\n string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n variable: /%\\w+%/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator:\n /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n command: {\n pattern:\n /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n alias: 'selector'\n },\n constant:\n /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n builtin:\n /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n symbol:\n /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n directive: {\n pattern: /#[a-z]+\\b/i,\n alias: 'important'\n },\n keyword:\n /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n punctuation: /[{}[\\]():,]/\n }\n}\n","// @ts-nocheck\nautoit.displayName = 'autoit'\nautoit.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function autoit(Prism) {\n Prism.languages.autoit = {\n comment: [\n /;.*/,\n {\n // The multi-line comments delimiters can actually be commented out with \";\"\n pattern:\n /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n lookbehind: true\n }\n ],\n url: {\n pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n greedy: true,\n inside: {\n variable: /([%$@])\\w+\\1/\n }\n },\n directive: {\n pattern: /(^[\\t ]*)#[\\w-]+/m,\n lookbehind: true,\n alias: 'keyword'\n },\n function: /\\b\\w+(?=\\()/,\n // Variables and macros\n variable: /[$@]\\w+/,\n keyword:\n /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[\\[\\]().,:]/\n }\n}\n","// @ts-nocheck\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\n\n/** @type {import('../core.js').Syntax} */\nexport default function avisynth(Prism) {\n // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n ;(function (Prism) {\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return replacements[+index]\n })\n }\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n var types = /bool|clip|float|int|string|val/.source\n var internals = [\n // bools\n /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n .source,\n // control\n /apply|assert|default|eval|import|nop|select|undefined/.source,\n // global\n /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n .source,\n // conv\n /hex(?:value)?|value/.source,\n // numeric\n /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n .source,\n // trig\n /a?sinh?|a?cosh?|a?tan[2h]?/.source,\n // bit\n /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n .source,\n // runtime\n /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n .source,\n // script\n /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n .source,\n // string\n /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n .source,\n // version\n /isversionorgreater|version(?:number|string)/.source,\n // helper\n /buildpixeltype|colorspacenametopixeltype/.source,\n // avsplus\n /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n ].join('|')\n var properties = [\n // content\n /has(?:audio|video)/.source,\n // resolution\n /height|width/.source,\n // framerate\n /frame(?:count|rate)|framerate(?:denominator|numerator)/.source,\n // interlacing\n /getparity|is(?:field|frame)based/.source,\n // color format\n /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n .source,\n // audio\n /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n .source\n ].join('|')\n var filters = [\n // source\n /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n .source,\n // color\n /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n .source,\n // overlay\n /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source,\n // geometry\n /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n .source,\n // pixel\n /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n .source,\n // timeline\n /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n .source,\n // interlace\n /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n .source,\n // audio\n /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n .source,\n // conditional\n /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n .source,\n // export\n /imagewriter/.source,\n // debug\n /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n .source\n ].join('|')\n var allinternals = [internals, properties, filters].join('|')\n Prism.languages.avisynth = {\n comment: [\n {\n // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n pattern:\n /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches /* */ block comments\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches # comments\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Handle before strings because optional arguments are surrounded by double quotes\n argument: {\n pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n inside: {\n keyword: /^\\w+/\n }\n },\n // Optional argument assignment\n 'argument-label': {\n pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^\\w+/,\n alias: 'punctuation'\n },\n punctuation: /=$/\n }\n },\n string: [\n {\n // triple double-quoted\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n // single double-quoted\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n constant: {\n // These *are* case-sensitive!\n pattern:\n /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n }\n }\n }\n ],\n // The special \"last\" variable that takes the value of the last implicitly returned clip\n variable: /\\b(?:last)\\b/i,\n boolean: /\\b(?:false|no|true|yes)\\b/i,\n keyword:\n /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n // AviSynth's internal functions, filters, and properties\n 'builtin-function': {\n pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n alias: 'function'\n },\n 'type-cast': {\n pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n alias: 'keyword'\n },\n // External/user-defined filters\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n lookbehind: true\n },\n // Matches a \\ as the first or last character on a line\n 'line-continuation': {\n pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n number:\n /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n punctuation: /[{}\\[\\]();,.]/\n }\n Prism.languages.avs = Prism.languages.avisynth\n })(Prism)\n}\n","// @ts-nocheck\navroIdl.displayName = 'avro-idl'\navroIdl.aliases = ['avdl']\n\n/** @type {import('../core.js').Syntax} */\nexport default function avroIdl(Prism) {\n // GitHub: https://github.com/apache/avro\n // Docs: https://avro.apache.org/docs/current/idl.html\n\n Prism.languages['avro-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n annotation: {\n pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n greedy: true,\n alias: 'function'\n },\n 'function-identifier': {\n pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n greedy: true,\n alias: 'function'\n },\n identifier: {\n pattern: /`[^\\r\\n`]+`/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: [\n {\n pattern:\n /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n lookbehind: true\n },\n /-?\\b(?:Infinity|NaN)\\b/\n ],\n operator: /=/,\n punctuation: /[()\\[\\]{}<>.:,;-]/\n }\n Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","// @ts-nocheck\nawk.displayName = 'awk'\nawk.aliases = ['gawk']\n\n/** @type {import('../core.js').Syntax} */\nexport default function awk(Prism) {\n Prism.languages.awk = {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n regex: {\n pattern: /((?:^|[^\\w\\s)])\\s*)\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\//,\n lookbehind: true,\n greedy: true\n },\n variable: /\\$\\w+/,\n keyword:\n /\\b(?:BEGIN|BEGINFILE|END|ENDFILE|break|case|continue|default|delete|do|else|exit|for|function|getline|if|in|next|nextfile|printf?|return|switch|while)\\b|@(?:include|load)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[a-fA-F0-9]+)\\b/,\n operator: /--|\\+\\+|!?~|>&|>>|<<|(?:\\*\\*|[<>!=+\\-*/%^])=?|&&|\\|[|&]|[?:]/,\n punctuation: /[()[\\]{},;]/\n }\n Prism.languages.gawk = Prism.languages.awk\n}\n","// @ts-nocheck\nbatch.displayName = 'batch'\nbatch.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function batch(Prism) {\n ;(function (Prism) {\n var variable = /%%?[~:\\w]+%?|!\\S+!/\n var parameter = {\n pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n alias: 'attr-name',\n inside: {\n punctuation: /:/\n }\n }\n var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n var number = /(?:\\b|-)\\d+\\b/\n Prism.languages.batch = {\n comment: [\n /^::.*/m,\n {\n pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true\n }\n ],\n label: {\n pattern: /^:.*/m,\n alias: 'property'\n },\n command: [\n {\n // FOR command\n pattern:\n /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:do|in)\\b|^for\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n punctuation: /[()',]/\n }\n },\n {\n // IF command\n pattern:\n /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n }\n },\n {\n // ELSE command\n pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n lookbehind: true,\n inside: {\n keyword: /^else\\b/i\n }\n },\n {\n // SET command\n pattern:\n /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^set\\b/i,\n string: string,\n parameter: parameter,\n variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n number: number,\n operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n punctuation: /[()',]/\n }\n },\n {\n // Other commands\n pattern:\n /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n lookbehind: true,\n inside: {\n keyword: /^\\w+\\b/,\n string: string,\n parameter: parameter,\n label: {\n pattern: /(^\\s*):\\S+/m,\n lookbehind: true,\n alias: 'property'\n },\n variable: variable,\n number: number,\n operator: /\\^/\n }\n }\n ],\n operator: /[&@]/,\n punctuation: /[()']/\n }\n })(Prism)\n}\n","// @ts-nocheck\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\n\n/** @type {import('../core.js').Syntax} */\nexport default function bbcode(Prism) {\n Prism.languages.bbcode = {\n tag: {\n pattern:\n /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n inside: {\n tag: {\n pattern: /^\\[\\/?[^\\s=\\]]+/,\n inside: {\n punctuation: /^\\[\\/?/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\]/,\n 'attr-name': /[^\\s=\\]]+/\n }\n }\n }\n Prism.languages.shortcode = Prism.languages.bbcode\n}\n","// @ts-nocheck\nbbj.displayName = 'bbj'\nbbj.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function bbj(Prism) {\n ;(function (Prism) {\n Prism.languages.bbj = {\n comment: {\n pattern: /(^|[^\\\\:])rem\\s+.*/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(['\"])(?:(?!\\1|\\\\).|\\\\.)*\\1/,\n greedy: true\n },\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:abstract|all|argc|begin|bye|callback|case|chn|class|classend|ctl|day|declare|delete|dim|dom|dread|dsz|else|end|endif|err|exitto|extends|fi|field|for|from|gosub|goto|if|implements|interface|interfaceend|iol|iolist|let|list|load|method|methodend|methodret|on|opts|pfx|print|private|process_events|protected|psz|public|read|read_resource|release|remove_callback|repeat|restore|return|rev|seterr|setesc|sqlchn|sqlunt|ssn|start|static|swend|switch|sys|then|tim|unt|until|use|void|wend|where|while)\\b/i,\n function: /\\b\\w+(?=\\()/,\n boolean: /\\b(?:BBjAPI\\.TRUE|BBjAPI\\.FALSE)\\b/i,\n operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:and|not|or|xor)\\b/i,\n punctuation: /[.,;:()]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nbicep.displayName = 'bicep'\nbicep.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function bicep(Prism) {\n // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n Prism.languages.bicep = {\n comment: [\n {\n // multiline comments eg /* ASDF */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // singleline comments eg // ASDF\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n property: [\n {\n pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n lookbehind: true\n },\n {\n pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: /'''[^'][\\s\\S]*?'''/,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'interpolated-string': {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true\n },\n punctuation: /^\\$\\{|\\}$/\n }\n },\n string: /[\\s\\S]+/\n }\n },\n datatype: {\n pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n lookbehind: true,\n alias: 'class-name'\n },\n boolean: /\\b(?:false|true)\\b/,\n // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n keyword:\n /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n decorator: /@\\w+\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.bicep\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nbirb.displayName = 'birb'\nbirb.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function birb(Prism) {\n Prism.register(refractorClike)\n Prism.languages.birb = Prism.languages.extend('clike', {\n string: {\n pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'class-name': [\n /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/,\n // matches variable and function return types (parameters as well).\n /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n ],\n keyword:\n /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n variable: /\\b[a-z_]\\w*\\b/\n })\n Prism.languages.insertBefore('birb', 'function', {\n metadata: {\n pattern: /<\\w+>/,\n greedy: true,\n alias: 'symbol'\n }\n })\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\nbison.displayName = 'bison'\nbison.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function bison(Prism) {\n Prism.register(refractorC)\n Prism.languages.bison = Prism.languages.extend('c', {})\n Prism.languages.insertBefore('bison', 'comment', {\n bison: {\n // This should match all the beginning of the file\n // including the prologue(s), the bison declarations and\n // the grammar rules.\n pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n inside: {\n c: {\n // Allow for one level of nested braces\n pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n inside: {\n delimiter: {\n pattern: /^%?\\{|%?\\}$/,\n alias: 'punctuation'\n },\n 'bison-variable': {\n pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n alias: 'variable',\n inside: {\n punctuation: /<|>/\n }\n },\n rest: Prism.languages.c\n }\n },\n comment: Prism.languages.c.comment,\n string: Prism.languages.c.string,\n property: /\\S+(?=:)/,\n keyword: /%\\w+/,\n number: {\n pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n lookbehind: true\n },\n punctuation: /%[%?]|[|:;\\[\\]<>]/\n }\n }\n })\n}\n","// @ts-nocheck\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\n\n/** @type {import('../core.js').Syntax} */\nexport default function bnf(Prism) {\n Prism.languages.bnf = {\n string: {\n pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n },\n definition: {\n pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n alias: ['rule', 'keyword'],\n inside: {\n punctuation: /^<|>$/\n }\n },\n rule: {\n pattern: /<[^<>\\r\\n\\t]+>/,\n inside: {\n punctuation: /^<|>$/\n }\n },\n operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n }\n Prism.languages.rbnf = Prism.languages.bnf\n}\n","// @ts-nocheck\nbqn.displayName = 'bqn'\nbqn.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function bqn(Prism) {\n Prism.languages.bqn = {\n shebang: {\n pattern: /^#![ \\t]*\\/.*/,\n alias: 'important',\n greedy: true\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'string-literal': {\n pattern: /\"(?:[^\"]|\"\")*\"/,\n greedy: true,\n alias: 'string'\n },\n 'character-literal': {\n pattern: /'(?:[\\s\\S]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])'/,\n greedy: true,\n alias: 'char'\n },\n function: /•[\\w¯.∞π]+[\\w¯.∞π]*/,\n 'dot-notation-on-brackets': {\n pattern: /\\{(?=.*\\}\\.)|\\}\\./,\n alias: 'namespace'\n },\n 'special-name': {\n pattern: /(?:ð•¨|ð•©|ð•—|ð•˜|ð•¤|ð•£|ð•Ž|ð•|ð”½|ð”¾|ð•Š|_ð•£_|_ð•£)/,\n alias: 'keyword'\n },\n 'dot-notation-on-name': {\n pattern: /[A-Za-z_][\\w¯∞π]*\\./,\n alias: 'namespace'\n },\n 'word-number-scientific': {\n pattern: /\\d+(?:\\.\\d+)?[eE]¯?\\d+/,\n alias: 'number'\n },\n 'word-name': {\n pattern: /[A-Za-z_][\\w¯∞π]*/,\n alias: 'symbol'\n },\n 'word-number': {\n pattern:\n /[¯∞π]?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+|E[+¯]?\\d+)?|¯|∞|Ï€)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+|E[+¯]?\\d+)?|¯|∞|Ï€))?/,\n alias: 'number'\n },\n 'null-literal': {\n pattern: /@/,\n alias: 'char'\n },\n 'primitive-functions': {\n pattern: /[-+×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾â‰â‹ˆâ†‘↓↕«»⌽â‰/â‹â’âŠâŠ‘âŠâŠ’∊â·âŠ”!]/,\n alias: 'operator'\n },\n 'primitive-1-operators': {\n pattern: /[`˜˘¨â¼âŒœÂ´ËË™]/,\n alias: 'operator'\n },\n 'primitive-2-operators': {\n pattern: /[∘⊸⟜○⌾⎉⚇âŸâŠ˜â—¶âŽŠ]/,\n alias: 'operator'\n },\n punctuation: /[â†â‡â†©(){}⟨⟩[\\]‿·⋄,.;:?]/\n }\n}\n","// @ts-nocheck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function brainfuck(Prism) {\n Prism.languages.brainfuck = {\n pointer: {\n pattern: /<|>/,\n alias: 'keyword'\n },\n increment: {\n pattern: /\\+/,\n alias: 'inserted'\n },\n decrement: {\n pattern: /-/,\n alias: 'deleted'\n },\n branching: {\n pattern: /\\[|\\]/,\n alias: 'important'\n },\n operator: /[.,]/,\n comment: /\\S+/\n }\n}\n","// @ts-nocheck\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function brightscript(Prism) {\n Prism.languages.brightscript = {\n comment: /(?:\\brem|').*/i,\n 'directive-statement': {\n pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n lookbehind: true,\n alias: 'property',\n inside: {\n 'error-message': {\n pattern: /(^#error).+/,\n lookbehind: true\n },\n directive: {\n pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n alias: 'keyword'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n\n property: {\n pattern:\n /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\bAs[\\t ]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n operator:\n /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n punctuation: /[.,;()[\\]{}]/,\n constant: /\\b(?:LINE_NUM)\\b/i\n }\n Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n Prism.languages.brightscript\n}\n","// @ts-nocheck\nbro.displayName = 'bro'\nbro.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function bro(Prism) {\n Prism.languages.bro = {\n comment: {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n inside: {\n italic: /\\b(?:FIXME|TODO|XXX)\\b/\n }\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n boolean: /\\b[TF]\\b/,\n function: {\n pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n lookbehind: true\n },\n builtin:\n /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n constant: {\n pattern: /(\\bconst[ \\t]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","// @ts-nocheck\nbsl.displayName = 'bsl'\nbsl.aliases = ['oscript']\n\n/** @type {import('../core.js').Syntax} */\nexport default function bsl(Prism) {\n /* eslint-disable no-misleading-character-class */\n\n // 1C:Enterprise\n // https://github.com/Diversus23/\n //\n Prism.languages.bsl = {\n comment: /\\/\\/.*/,\n string: [\n // Строки\n // Strings\n {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n // Дата и времÑ\n // Date & time\n {\n pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n }\n ],\n keyword: [\n {\n // RU\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|длÑ|новый|прервать|попытка|иÑключение|вызватьиÑключение|иначе|конецпопытки|неопределено|функциÑ|перем|возврат|конецфункции|еÑли|иначееÑли|процедура|конецпроцедуры|тогда|знач|ÑкÑпорт|конецеÑли|из|каждого|иÑтина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n },\n {\n // EN\n pattern:\n /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n }\n ],\n number: {\n pattern:\n /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n lookbehind: true\n },\n operator: [\n /[<>+\\-*/]=?|[%=]/,\n // RU\n {\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n },\n // EN\n {\n pattern: /\\b(?:and|not|or)\\b/i\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n directive: [\n // Теги препроцеÑÑора вида &Клиент, &Сервер, ...\n // Preprocessor tags of the type &Client, &Server, ...\n {\n pattern: /^([ \\t]*)&.*/m,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n },\n // ИнÑтрукции препроцеÑÑора вида:\n // #ЕÑли Сервер Тогда\n // ...\n // #КонецЕÑли\n // Preprocessor instructions of the form:\n // #If Server Then\n // ...\n // #EndIf\n {\n pattern: /^([ \\t]*)#.*/gm,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }\n ]\n }\n Prism.languages.oscript = Prism.languages['bsl']\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ncfscript.displayName = 'cfscript'\ncfscript.aliases = ['cfc']\n\n/** @type {import('../core.js').Syntax} */\nexport default function cfscript(Prism) {\n Prism.register(refractorClike)\n // https://cfdocs.org/script\n Prism.languages.cfscript = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n inside: {\n annotation: {\n pattern: /(?:^|[^.])@[\\w\\.]+/,\n alias: 'punctuation'\n }\n }\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n operator: [\n /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|:/,\n /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n ],\n scope: {\n pattern:\n /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n alias: 'global'\n },\n type: {\n pattern:\n /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('cfscript', 'keyword', {\n // This must be declared before keyword because we use \"function\" inside the lookahead\n 'function-variable': {\n pattern:\n /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n }\n })\n delete Prism.languages.cfscript['class-name']\n Prism.languages.cfc = Prism.languages['cfscript']\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nimport refractorCpp from './cpp.js'\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function chaiscript(Prism) {\n Prism.register(refractorClike)\n Prism.register(refractorCpp)\n Prism.languages.chaiscript = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n {\n // e.g. class Rectangle { ... }\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n },\n {\n // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n operator:\n />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n })\n Prism.languages.insertBefore('chaiscript', 'operator', {\n 'parameter-type': {\n // e.g. def foo(int x, Vector y) {...}\n pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n lookbehind: true,\n alias: 'class-name'\n }\n })\n Prism.languages.insertBefore('chaiscript', 'string', {\n 'string-interpolation': {\n pattern:\n /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-expression': {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.chaiscript\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n}\n","// @ts-nocheck\ncil.displayName = 'cil'\ncil.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cil(Prism) {\n Prism.languages.cil = {\n comment: /\\/\\/.*/,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n directive: {\n pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n lookbehind: true,\n alias: 'class-name'\n },\n // Actually an assembly reference\n variable: /\\[[\\w\\.]+\\]/,\n keyword:\n /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n function:\n /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n }\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\ncilkc.displayName = 'cilkc'\ncilkc.aliases = ['cilk-c']\n\n/** @type {import('../core.js').Syntax} */\nexport default function cilkc(Prism) {\n Prism.register(refractorC)\n Prism.languages.cilkc = Prism.languages.insertBefore('c', 'function', {\n 'parallel-keyword': {\n pattern: /\\bcilk_(?:for|reducer|s(?:cope|pawn|ync))\\b/,\n alias: 'keyword'\n }\n })\n Prism.languages['cilk-c'] = Prism.languages['cilkc']\n}\n","// @ts-nocheck\nimport refractorCpp from './cpp.js'\ncilkcpp.displayName = 'cilkcpp'\ncilkcpp.aliases = ['cilk', 'cilk-cpp']\n\n/** @type {import('../core.js').Syntax} */\nexport default function cilkcpp(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.cilkcpp = Prism.languages.insertBefore('cpp', 'function', {\n 'parallel-keyword': {\n pattern: /\\bcilk_(?:for|reducer|s(?:cope|pawn|ync))\\b/,\n alias: 'keyword'\n }\n })\n Prism.languages['cilk-cpp'] = Prism.languages['cilkcpp']\n Prism.languages['cilk'] = Prism.languages['cilkcpp']\n}\n","// @ts-nocheck\nclojure.displayName = 'clojure'\nclojure.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function clojure(Prism) {\n // Copied from https://github.com/jeluard/prism-clojure\n Prism.languages.clojure = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n char: /\\\\\\w+/,\n symbol: {\n pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n lookbehind: true\n },\n boolean: /\\b(?:false|nil|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n lookbehind: true\n },\n function: {\n pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n lookbehind: true\n },\n operator: /[#@^`~]/,\n punctuation: /[{}\\[\\](),]/\n }\n}\n","// @ts-nocheck\ncmake.displayName = 'cmake'\ncmake.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cmake(Prism) {\n Prism.languages.cmake = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n inside: {\n punctuation: /\\$\\{|\\}/,\n variable: /\\w+/\n }\n }\n }\n },\n variable:\n /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_NAME|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE))\\b/,\n property:\n /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n keyword:\n /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n namespace:\n /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n operator:\n /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n inserted: {\n pattern: /\\b\\w+::\\w+\\b/,\n alias: 'class-name'\n },\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n punctuation: /[()>}]|\\$[<{]/\n }\n}\n","// @ts-nocheck\ncobol.displayName = 'cobol'\ncobol.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cobol(Prism) {\n Prism.languages.cobol = {\n comment: {\n pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n greedy: true\n },\n level: {\n pattern: /(^[ \\t]*)\\d+\\b/m,\n lookbehind: true,\n greedy: true,\n alias: 'number'\n },\n 'class-name': {\n // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n pattern:\n /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n lookbehind: true,\n inside: {\n number: {\n pattern: /(\\()\\d+/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n keyword: {\n pattern:\n /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n lookbehind: true\n },\n operator: [\n /<>|[<>]=?|[=+*/&]/,\n {\n pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n lookbehind: true\n }\n ],\n punctuation: /[.:,()]/\n }\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\n\n/** @type {import('../core.js').Syntax} */\nexport default function coffeescript(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n // Ignore comments starting with { to privilege string interpolation highlighting\n var comment = /#(?!\\{).+/\n var interpolation = {\n pattern: /#\\{[^}]+\\}/,\n alias: 'variable'\n }\n Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n comment: comment,\n string: [\n // Strings are multiline\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n greedy: true\n },\n {\n // Strings are multiline\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n }\n ],\n keyword:\n /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n 'class-member': {\n pattern: /@(?!\\d)\\w+/,\n alias: 'variable'\n }\n })\n Prism.languages.insertBefore('coffeescript', 'comment', {\n 'multiline-comment': {\n pattern: /###[\\s\\S]+?###/,\n alias: 'comment'\n },\n // Block regexp can contain comments and interpolation\n 'block-regex': {\n pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n alias: 'regex',\n inside: {\n comment: comment,\n interpolation: interpolation\n }\n }\n })\n Prism.languages.insertBefore('coffeescript', 'string', {\n 'inline-javascript': {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n },\n script: {\n pattern: /[\\s\\S]+/,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n }\n }\n },\n // Block strings\n 'multiline-string': [\n {\n pattern: /'''[\\s\\S]*?'''/,\n greedy: true,\n alias: 'string'\n },\n {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string',\n inside: {\n interpolation: interpolation\n }\n }\n ]\n })\n Prism.languages.insertBefore('coffeescript', 'keyword', {\n // Object property\n property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n })\n delete Prism.languages.coffeescript['template-string']\n Prism.languages.coffee = Prism.languages.coffeescript\n })(Prism)\n}\n","// @ts-nocheck\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\n\n/** @type {import('../core.js').Syntax} */\nexport default function concurnas(Prism) {\n Prism.languages.concurnas = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n langext: {\n pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n greedy: true,\n inside: {\n 'class-name': /^\\w+/,\n string: {\n pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n lookbehind: true\n },\n punctuation: /\\|\\|/\n }\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n punctuation: /[{}[\\];(),.:]/,\n operator:\n /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n annotation: {\n pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n alias: 'builtin'\n }\n }\n Prism.languages.insertBefore('concurnas', 'langext', {\n 'regex-literal': {\n pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n regex: /[\\s\\S]+/\n }\n },\n 'string-literal': {\n pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.conc = Prism.languages.concurnas\n}\n","// @ts-nocheck\ncsp.displayName = 'csp'\ncsp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function csp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - https://www.w3.org/TR/CSP1/\n * - https://www.w3.org/TR/CSP2/\n * - https://www.w3.org/TR/CSP3/\n */\n\n ;(function (Prism) {\n /**\n * @param {string} source\n * @returns {RegExp}\n */\n function value(source) {\n return RegExp(\n /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n 'i'\n )\n }\n Prism.languages.csp = {\n directive: {\n pattern:\n /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n lookbehind: true,\n alias: 'property'\n },\n scheme: {\n pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n lookbehind: true\n },\n none: {\n pattern: value(/'none'/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n nonce: {\n pattern: value(/'nonce-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n hash: {\n pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n host: {\n pattern: value(\n /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n '|' +\n /\\*[^\\s;,']*/.source +\n '|' +\n /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n ),\n lookbehind: true,\n alias: 'url',\n inside: {\n important: /\\*/\n }\n },\n keyword: [\n {\n pattern: value(/'unsafe-[a-z-]+'/.source),\n lookbehind: true,\n alias: 'unsafe'\n },\n {\n pattern: value(/'[a-z-]+'/.source),\n lookbehind: true,\n alias: 'safe'\n }\n ],\n punctuation: /;/\n }\n })(Prism)\n}\n","// @ts-nocheck\ncooklang.displayName = 'cooklang'\ncooklang.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cooklang(Prism) {\n ;(function (Prism) {\n // see https://github.com/cooklang/spec/blob/main/EBNF.md\n\n var single_token_suffix = /(?:(?!\\s)[\\d$+<=a-zA-Z\\x80-\\uFFFF])+/.source\n var multi_token_infix = /[^{}@#]+/.source\n var multi_token_suffix = /\\{[^}#@]*\\}/.source\n var multi_token = multi_token_infix + multi_token_suffix\n var timer_units = /(?:h|hours|hrs|m|min|minutes)/.source\n var amount_group_impl = {\n pattern: /\\{[^{}]*\\}/,\n inside: {\n amount: {\n pattern: /([\\{|])[^{}|*%]+/,\n lookbehind: true,\n alias: 'number'\n },\n unit: {\n pattern: /(%)[^}]+/,\n lookbehind: true,\n alias: 'symbol'\n },\n 'servings-scaler': {\n pattern: /\\*/,\n alias: 'operator'\n },\n 'servings-alternative-separator': {\n pattern: /\\|/,\n alias: 'operator'\n },\n 'unit-separator': {\n pattern: /(?:%|(\\*)%)/,\n lookbehind: true,\n alias: 'operator'\n },\n punctuation: /[{}]/\n }\n }\n Prism.languages.cooklang = {\n comment: {\n // [- comment -]\n // -- comment\n pattern: /\\[-[\\s\\S]*?-\\]|--.*/,\n greedy: true\n },\n meta: {\n // >> key: value\n pattern: />>.*:.*/,\n inside: {\n property: {\n // key:\n pattern: /(>>\\s*)[^\\s:](?:[^:]*[^\\s:])?/,\n lookbehind: true\n }\n }\n },\n 'cookware-group': {\n // #...{...}, #...\n pattern: new RegExp(\n '#(?:' + multi_token + '|' + single_token_suffix + ')'\n ),\n inside: {\n cookware: {\n pattern: new RegExp('(^#)(?:' + multi_token_infix + ')'),\n lookbehind: true,\n alias: 'variable'\n },\n 'cookware-keyword': {\n pattern: /^#/,\n alias: 'keyword'\n },\n 'quantity-group': {\n pattern: new RegExp(/\\{[^{}@#]*\\}/),\n inside: {\n quantity: {\n pattern: new RegExp(/(^\\{)/.source + multi_token_infix),\n lookbehind: true,\n alias: 'number'\n },\n punctuation: /[{}]/\n }\n }\n }\n },\n 'ingredient-group': {\n // @...{...}, @...\n pattern: new RegExp(\n '@(?:' + multi_token + '|' + single_token_suffix + ')'\n ),\n inside: {\n ingredient: {\n pattern: new RegExp('(^@)(?:' + multi_token_infix + ')'),\n lookbehind: true,\n alias: 'variable'\n },\n 'ingredient-keyword': {\n pattern: /^@/,\n alias: 'keyword'\n },\n 'amount-group': amount_group_impl\n }\n },\n 'timer-group': {\n // ~timer{...}\n // eslint-disable-next-line regexp/sort-alternatives\n pattern: /~(?!\\s)[^@#~{}]*\\{[^{}]*\\}/,\n inside: {\n timer: {\n pattern: /(^~)[^{]+/,\n lookbehind: true,\n alias: 'variable'\n },\n 'duration-group': {\n // {...}\n pattern: /\\{[^{}]*\\}/,\n inside: {\n punctuation: /[{}]/,\n unit: {\n pattern: new RegExp(\n /(%\\s*)/.source + timer_units + /\\b/.source\n ),\n lookbehind: true,\n alias: 'symbol'\n },\n operator: /%/,\n duration: {\n pattern: /\\d+/,\n alias: 'number'\n }\n }\n },\n 'timer-keyword': {\n pattern: /^~/,\n alias: 'keyword'\n }\n }\n }\n }\n })(Prism)\n}\n","// @ts-nocheck\ncoq.displayName = 'coq'\ncoq.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function coq(Prism) {\n ;(function (Prism) {\n // https://github.com/coq/coq\n\n var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n for (var i = 0; i < 2; i++) {\n commentSource = commentSource.replace(/<self>/g, function () {\n return commentSource\n })\n }\n commentSource = commentSource.replace(/<self>/g, '[]')\n Prism.languages.coq = {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n attribute: [\n {\n pattern: RegExp(\n /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n /<comment>/g,\n function () {\n return commentSource\n }\n )\n ),\n greedy: true,\n alias: 'attr-name',\n inside: {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n operator: /=/,\n punctuation: /^#\\[|\\]$|[,()]/\n }\n },\n {\n pattern:\n /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n alias: 'attr-name'\n }\n ],\n keyword:\n /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n number:\n /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n punct: {\n pattern: /@\\{|\\{\\||\\[=|:>/,\n alias: 'punctuation'\n },\n operator:\n /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorRuby from './ruby.js'\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function crystal(Prism) {\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.crystal = Prism.languages.extend('ruby', {\n keyword: [\n /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n {\n pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n operator: [/->/, Prism.languages.ruby.operator],\n punctuation: /[(){}[\\].,;\\\\]/\n })\n Prism.languages.insertBefore('crystal', 'string-literal', {\n attribute: {\n pattern: /@\\[.*?\\]/,\n inside: {\n delimiter: {\n pattern: /^@\\[|\\]$/,\n alias: 'punctuation'\n },\n attribute: {\n pattern: /^(\\s*)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n args: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.crystal\n }\n }\n },\n expansion: {\n pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n inside: {\n content: {\n pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n lookbehind: true,\n inside: Prism.languages.crystal\n },\n delimiter: {\n pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n alias: 'operator'\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n greedy: true\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCss from './css.js'\ncssExtras.displayName = 'css-extras'\ncssExtras.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cssExtras(Prism) {\n Prism.register(refractorCss)\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var selectorInside\n Prism.languages.css.selector = {\n pattern: Prism.languages.css.selector.pattern,\n lookbehind: true,\n inside: (selectorInside = {\n 'pseudo-element':\n /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n 'pseudo-class': /:[-\\w]+/,\n class: /\\.[-\\w]+/,\n id: /#[-\\w]+/,\n attribute: {\n pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'case-sensitivity': {\n pattern: /(\\s)[si]$/i,\n lookbehind: true,\n alias: 'keyword'\n },\n namespace: {\n pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n lookbehind: true,\n inside: {\n punctuation: /\\|$/\n }\n },\n 'attr-name': {\n pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n lookbehind: true\n },\n 'attr-value': [\n string,\n {\n pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n lookbehind: true\n }\n ],\n operator: /[|~*^$]?=/\n }\n },\n 'n-th': [\n {\n pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n number: /[\\dn]+/,\n operator: /[+-]/\n }\n },\n {\n pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n lookbehind: true\n }\n ],\n combinator: />|\\+|~|\\|\\|/,\n // the `tag` token has been existed and removed.\n // because we can't find a perfect tokenize to match it.\n // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n\n punctuation: /[(),]/\n })\n }\n Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n selectorInside\n Prism.languages.insertBefore('css', 'property', {\n variable: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n lookbehind: true\n }\n })\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n lookbehind: true\n }\n // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n Prism.languages.insertBefore('css', 'function', {\n operator: {\n pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n lookbehind: true\n },\n // CAREFUL!\n // Previewers and Inline color use hexcode and color.\n hexcode: {\n pattern: /\\B#[\\da-f]{3,8}\\b/i,\n alias: 'color'\n },\n color: [\n {\n pattern:\n /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n // it's important that there is no boundary assertion after the hex digits\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n number: number\n })\n })(Prism)\n}\n","// @ts-nocheck\ncsv.displayName = 'csv'\ncsv.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function csv(Prism) {\n // https://tools.ietf.org/html/rfc4180\n\n Prism.languages.csv = {\n value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n punctuation: /,/\n }\n}\n","// @ts-nocheck\ncue.displayName = 'cue'\ncue.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cue(Prism) {\n ;(function (Prism) {\n // https://cuelang.org/docs/references/spec/\n\n // eslint-disable-next-line regexp/strict\n var stringEscape = /\\\\(?:(?!\\2)|\\2(?:[^()\\r\\n]|\\([^()]*\\)))/.source\n // eslint-disable-next-line regexp/strict\n var stringTypes =\n /\"\"\"(?:[^\\\\\"]|\"(?!\"\"\\2)|<esc>)*\"\"\"/.source +\n // eslint-disable-next-line regexp/strict\n '|' +\n /'''(?:[^\\\\']|'(?!''\\2)|<esc>)*'''/.source +\n // eslint-disable-next-line regexp/strict\n '|' +\n /\"(?:[^\\\\\\r\\n\"]|\"(?!\\2)|<esc>)*\"/.source +\n // eslint-disable-next-line regexp/strict\n '|' +\n /'(?:[^\\\\\\r\\n']|'(?!\\2)|<esc>)*'/.source\n var stringLiteral =\n '(?:' + stringTypes.replace(/<esc>/g, stringEscape) + ')'\n Prism.languages.cue = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n 'string-literal': {\n // eslint-disable-next-line regexp/strict\n pattern: RegExp(\n /(^|[^#\"'\\\\])(#*)/.source + stringLiteral + /(?![\"'])\\2/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n // I'm using dirty hack here. We have to know the number hashes at the start of the string somehow,\n // but we can't look back. So instead, we will use a lookahead, go to the end of the string, and\n // capture the hashes at the end of the string.\n escape: {\n pattern:\n /(?=[\\s\\S]*[\"'](#*)$)\\\\\\1(?:U[a-fA-F0-9]{1,8}|u[a-fA-F0-9]{1,4}|x[a-fA-F0-9]{1,2}|\\d{2,3}|[^(])/,\n greedy: true,\n alias: 'string'\n },\n interpolation: {\n pattern: /(?=[\\s\\S]*[\"'](#*)$)\\\\\\1\\([^()]*\\)/,\n greedy: true,\n inside: {\n punctuation: /^\\\\#*\\(|\\)$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n keyword: {\n pattern: /(^|[^\\w$])(?:for|if|import|in|let|null|package)(?![\\w$])/,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^\\w$])(?:false|true)(?![\\w$])/,\n lookbehind: true\n },\n builtin: {\n pattern:\n /(^|[^\\w$])(?:bool|bytes|float|float(?:32|64)|u?int(?:8|16|32|64|128)?|number|rune|string)(?![\\w$])/,\n lookbehind: true\n },\n attribute: {\n pattern: /@[\\w$]+(?=\\s*\\()/,\n alias: 'function'\n },\n function: {\n pattern: /(^|[^\\w$])[a-z_$][\\w$]*(?=\\s*\\()/i,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^\\w$.])(?:0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[eE][+-]?\\d+(?:_\\d+)*)?(?:[KMGTP]i?)?)(?![\\w$])/,\n lookbehind: true\n },\n operator: /\\.{3}|_\\|_|&&?|\\|\\|?|[=!]~|[<>=!]=?|[+\\-*/?]/,\n punctuation: /[()[\\]{},.:]/\n }\n Prism.languages.cue[\n 'string-literal'\n ].inside.interpolation.inside.expression.inside = Prism.languages.cue\n })(Prism)\n}\n","// @ts-nocheck\ncypher.displayName = 'cypher'\ncypher.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function cypher(Prism) {\n Prism.languages.cypher = {\n // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n comment: /\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n 'class-name': {\n pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n lookbehind: true,\n greedy: true\n },\n relationship: {\n pattern:\n /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n identifier: {\n pattern: /`(?:[^`\\\\\\r\\n])*`/,\n greedy: true\n },\n variable: /\\$\\w+/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n keyword:\n /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n function: /\\b\\w+\\b(?=\\s*\\()/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n punctuation: /[()[\\]{},;.]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nd.displayName = 'd'\nd.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function d(Prism) {\n Prism.register(refractorClike)\n Prism.languages.d = Prism.languages.extend('clike', {\n comment: [\n {\n // Shebang\n pattern: /^\\s*#!.+/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n [\n // /+ comment +/\n // Allow one level of nesting\n /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source,\n // // comment\n /\\/\\/.*/.source,\n // /* comment */\n /\\/\\*[\\s\\S]*?\\*\\//.source\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: RegExp(\n [\n // r\"\", x\"\"\n /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source,\n // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source,\n // q\"IDENT\n // ...\n // IDENT\"\n /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source,\n // q\"//\", q\"||\", etc.\n // eslint-disable-next-line regexp/strict\n /\\bq\"(.)[\\s\\S]*?\\2\"/.source,\n // eslint-disable-next-line regexp/strict\n /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n ].join('|'),\n 'm'\n ),\n greedy: true\n },\n {\n pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n greedy: true,\n alias: 'token-string'\n }\n ],\n // In order: $, keywords and special tokens, globally defined symbols\n keyword:\n /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n number: [\n // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n {\n pattern:\n /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n lookbehind: true\n }\n ],\n operator:\n /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n })\n Prism.languages.insertBefore('d', 'string', {\n // Characters\n // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n })\n Prism.languages.insertBefore('d', 'keyword', {\n property: /\\B@\\w*/\n })\n Prism.languages.insertBefore('d', 'function', {\n register: {\n // Iasm registers\n pattern:\n /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n alias: 'variable'\n }\n })\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ndart.displayName = 'dart'\ndart.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function dart(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n var keywords = [\n /\\b(?:async|sync|yield)\\*/,\n /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n ]\n\n // Handles named imports, such as http.Client\n var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source\n\n // based on the dart naming conventions\n var className = {\n pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n }\n }\n }\n Prism.languages.dart = Prism.languages.extend('clike', {\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n operator:\n /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n })\n Prism.languages.insertBefore('dart', 'string', {\n 'string-literal': {\n pattern:\n /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n lookbehind: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.dart\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: undefined\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n metadata: {\n pattern: /@\\w+/,\n alias: 'function'\n }\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n generics: {\n pattern:\n /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function dataweave(Prism) {\n ;(function (Prism) {\n Prism.languages.dataweave = {\n url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n property: {\n pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'mime-type':\n /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n date: {\n pattern: /\\|[\\w:+-]+\\|/,\n greedy: true\n },\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n regex: {\n pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n greedy: true\n },\n keyword:\n /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\];(),.:@]/,\n operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n boolean: /\\b(?:false|true)\\b/\n }\n })(Prism)\n}\n","// @ts-nocheck\ndax.displayName = 'dax'\ndax.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function dax(Prism) {\n Prism.languages.dax = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n lookbehind: true\n },\n 'data-field': {\n pattern:\n /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'symbol'\n },\n measure: {\n pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'constant'\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n function:\n /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n keyword:\n /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n boolean: {\n pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n alias: 'constant'\n },\n number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n punctuation: /[;\\[\\](){}`,.]/\n }\n}\n","// @ts-nocheck\ndhall.displayName = 'dhall'\ndhall.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function dhall(Prism) {\n // ABNF grammar:\n // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n\n Prism.languages.dhall = {\n // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n // The multi-line pattern is essentially this:\n // \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n comment:\n /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n alias: 'language-dhall',\n inside: null // see blow\n },\n\n punctuation: /\\$\\{|\\}/\n }\n }\n }\n },\n label: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n url: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n pattern:\n /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n greedy: true\n },\n env: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n greedy: true,\n inside: {\n function: /^env/,\n operator: /^:/,\n variable: /[\\s\\S]+/\n }\n },\n hash: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n inside: {\n function: /sha256/,\n operator: /:/,\n number: /[\\da-fA-F]{64}/\n }\n },\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n keyword:\n /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n builtin: /\\b(?:None|Some)\\b/,\n boolean: /\\b(?:False|True)\\b/,\n number:\n /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n operator:\n /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n punctuation: /\\.\\.|[{}\\[\\](),./]/,\n // we'll just assume that every capital word left is a type name\n 'class-name': /\\b[A-Z]\\w*\\b/\n }\n Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n Prism.languages.dhall\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\n\n/** @type {import('../core.js').Syntax} */\nexport default function django(Prism) {\n Prism.register(refractorMarkupTemplating)\n // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n\n ;(function (Prism) {\n Prism.languages.django = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n tag: {\n pattern: /(^\\{%[+-]?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n filter: {\n pattern: /(\\|)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n test: {\n pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n keyword:\n /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n variable: /\\b\\w+\\b/,\n punctuation: /[{}[\\](),.:;]/\n }\n var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n var markupTemplating = Prism.languages['markup-templating']\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'django', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'django')\n })\n\n // Add an Jinja2 alias\n Prism.languages.jinja2 = Prism.languages.django\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'jinja2')\n })\n })(Prism)\n}\n","// @ts-nocheck\ndnsZoneFile.displayName = 'dns-zone-file'\ndnsZoneFile.aliases = ['dns-zone']\n\n/** @type {import('../core.js').Syntax} */\nexport default function dnsZoneFile(Prism) {\n Prism.languages['dns-zone-file'] = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n lookbehind: true\n },\n {\n pattern: /(^|\\s)@(?=\\s|$)/,\n lookbehind: true\n }\n ],\n keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n class: {\n // https://tools.ietf.org/html/rfc1035#page-13\n pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n pattern:\n /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /[()]/\n }\n Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","// @ts-nocheck\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\n\n/** @type {import('../core.js').Syntax} */\nexport default function docker(Prism) {\n ;(function (Prism) {\n // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n\n var spaceAfterBackSlash =\n /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source\n // At least one space, comment, or line break\n var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n /<SP_BS>/g,\n function () {\n return spaceAfterBackSlash\n }\n )\n var string =\n /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n .source\n var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n /<STR>/g,\n function () {\n return string\n }\n )\n var stringRule = {\n pattern: RegExp(string),\n greedy: true\n }\n var commentRule = {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true,\n greedy: true\n }\n\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function re(source, flags) {\n source = source\n .replace(/<OPT>/g, function () {\n return option\n })\n .replace(/<SP>/g, function () {\n return space\n })\n return RegExp(source, flags)\n }\n Prism.languages.docker = {\n instruction: {\n pattern:\n /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n lookbehind: true,\n greedy: true,\n inside: {\n options: {\n pattern: re(\n /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n property: {\n pattern: /(^|\\s)--[\\w-]+/,\n lookbehind: true\n },\n string: [\n stringRule,\n {\n pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n lookbehind: true\n }\n ],\n operator: /\\\\$/m,\n punctuation: /=/\n }\n },\n keyword: [\n {\n // https://docs.docker.com/engine/reference/builder/#healthcheck\n pattern: re(\n /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#from\n pattern: re(\n /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#onbuild\n pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /^\\w+/,\n greedy: true\n }\n ],\n comment: commentRule,\n string: stringRule,\n variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n operator: /\\\\$/m\n }\n },\n comment: commentRule\n }\n Prism.languages.dockerfile = Prism.languages.docker\n })(Prism)\n}\n","// @ts-nocheck\ndot.displayName = 'dot'\ndot.aliases = ['gv']\n\n/** @type {import('../core.js').Syntax} */\nexport default function dot(Prism) {\n // https://www.graphviz.org/doc/info/lang.html\n\n ;(function (Prism) {\n var ID =\n '(?:' +\n [\n // an identifier\n /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source,\n // a number\n /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source,\n // a double-quoted string\n /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source,\n // HTML-like string\n /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n .source\n ].join('|') +\n ')'\n var IDInside = {\n markup: {\n pattern: /(^<)[\\s\\S]+(?=>$)/,\n lookbehind: true,\n alias: ['language-markup', 'language-html', 'language-xml'],\n inside: Prism.languages.markup\n }\n }\n\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function withID(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return ID\n }),\n flags\n )\n }\n Prism.languages.dot = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n greedy: true\n },\n 'graph-name': {\n pattern: withID(\n /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name',\n inside: IDInside\n },\n 'attr-value': {\n pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n 'attr-name': {\n pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n 'compass-point': {\n pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n lookbehind: true,\n alias: 'builtin'\n },\n node: {\n pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n operator: /[=:]|-[->]/,\n punctuation: /[\\[\\]{};,]/\n }\n Prism.languages.gv = Prism.languages.dot\n })(Prism)\n}\n","// @ts-nocheck\nebnf.displayName = 'ebnf'\nebnf.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function ebnf(Prism) {\n Prism.languages.ebnf = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n special: {\n pattern: /\\?[^?\\r\\n]*\\?/,\n greedy: true,\n alias: 'class-name'\n },\n definition: {\n pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n lookbehind: true,\n alias: ['rule', 'keyword']\n },\n rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n operator: /[-=|*/!]/\n }\n}\n","// @ts-nocheck\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function editorconfig(Prism) {\n Prism.languages.editorconfig = {\n // https://editorconfig-specification.readthedocs.io\n comment: /[;#].*/,\n section: {\n pattern: /(^[ \\t]*)\\[.+\\]/m,\n lookbehind: true,\n alias: 'selector',\n inside: {\n regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n // Escape special characters with '\\\\'\n operator: /[!?]|\\.\\.|\\*{1,2}/,\n punctuation: /[\\[\\]{},]/\n }\n },\n key: {\n pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /=.*/,\n alias: 'attr-value',\n inside: {\n punctuation: /^=/\n }\n }\n }\n}\n","// @ts-nocheck\neiffel.displayName = 'eiffel'\neiffel.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function eiffel(Prism) {\n Prism.languages.eiffel = {\n comment: /--.*/,\n string: [\n // Aligned-verbatim-strings\n {\n pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n greedy: true\n },\n // Non-aligned-verbatim-strings\n {\n pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n greedy: true\n },\n // Single-line string\n {\n pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n greedy: true\n }\n ],\n // normal char | special char | char code\n char: /'(?:%.|[^%'\\r\\n])+'/,\n keyword:\n /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n // Convention: class-names are always all upper-case characters\n 'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n number: [\n // hexa | octal | bin\n /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i,\n // Decimal\n /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n ],\n punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n }\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nimport refractorMarkupTemplating from './markup-templating.js'\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\n\n/** @type {import('../core.js').Syntax} */\nexport default function ejs(Prism) {\n Prism.register(refractorJavascript)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.ejs = {\n delimiter: {\n pattern: /^<%[-_=]?|[-_]?%>$/,\n alias: 'punctuation'\n },\n comment: /^#[\\s\\S]*/,\n 'language-javascript': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.javascript\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ejs',\n ejsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n })\n Prism.languages.eta = Prism.languages.ejs\n })(Prism)\n}\n","// @ts-nocheck\nelixir.displayName = 'elixir'\nelixir.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function elixir(Prism) {\n Prism.languages.elixir = {\n doc: {\n pattern:\n /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n inside: {\n attribute: /^@\\w+/,\n string: /['\"][\\s\\S]+/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n regex: {\n pattern:\n /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n greedy: true\n },\n string: [\n {\n // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n pattern:\n /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n // Multi-line strings are allowed\n pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n }\n ],\n atom: {\n // Look-behind prevents bad highlighting of the :: operator\n pattern: /(^|[^:]):\\w+/,\n lookbehind: true,\n alias: 'symbol'\n },\n module: {\n pattern: /\\b[A-Z]\\w*\\b/,\n alias: 'class-name'\n },\n // Look-ahead prevents bad highlighting of the :: operator\n 'attr-name': /\\b\\w+\\??:(?!:)/,\n argument: {\n // Look-behind prevents bad highlighting of the && operator\n pattern: /(^|[^&])&\\d+/,\n lookbehind: true,\n alias: 'variable'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'variable'\n },\n function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n keyword:\n /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n operator: [\n /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n {\n // We don't want to match <<\n pattern: /([^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /([^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,%\\[\\]{}()]/\n }\n Prism.languages.elixir.string.forEach(function (o) {\n o.inside = {\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.elixir\n }\n }\n }\n })\n}\n","// @ts-nocheck\nelm.displayName = 'elm'\nelm.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function elm(Prism) {\n Prism.languages.elm = {\n comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n char: {\n pattern:\n /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n greedy: true\n },\n string: [\n {\n // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n greedy: true\n }\n ],\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|exposing|import)\\b/\n }\n },\n keyword:\n /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n // decimal integers and floating point numbers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n // In Elm, nearly everything is a variable, do not highlight these.\n hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n punctuation: /[{}[\\]|(),.:]/\n }\n}\n","// @ts-nocheck\nimport refractorLua from './lua.js'\nimport refractorMarkupTemplating from './markup-templating.js'\netlua.displayName = 'etlua'\netlua.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function etlua(Prism) {\n Prism.register(refractorLua)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.etlua = {\n delimiter: {\n pattern: /^<%[-=]?|-?%>$/,\n alias: 'punctuation'\n },\n 'language-lua': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.lua\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var pattern = /<%[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'etlua',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nimport refractorRuby from './ruby.js'\nerb.displayName = 'erb'\nerb.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function erb(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.erb = {\n delimiter: {\n pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'language-ruby',\n inside: Prism.languages.ruby\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var erbPattern =\n /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'erb',\n erbPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n })\n })(Prism)\n}\n","// @ts-nocheck\nerlang.displayName = 'erlang'\nerlang.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function erlang(Prism) {\n Prism.languages.erlang = {\n comment: /%.+/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n 'quoted-function': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n alias: 'function'\n },\n 'quoted-atom': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n alias: 'atom'\n },\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\b(?:after|begin|case|catch|end|fun|if|of|receive|try|when)\\b/,\n number: [\n /\\$\\\\?./,\n /\\b\\d+#[a-z0-9]+/i,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n ],\n function: /\\b[a-z][\\w@]*(?=\\()/,\n variable: {\n // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n lookbehind: true\n },\n operator: [\n /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n atom: /\\b[a-z][\\w@]*/,\n punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n }\n}\n","// @ts-nocheck\nexcelFormula.displayName = 'excel-formula'\nexcelFormula.aliases = ['xls', 'xlsx']\n\n/** @type {import('../core.js').Syntax} */\nexport default function excelFormula(Prism) {\n Prism.languages['excel-formula'] = {\n comment: {\n pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n reference: {\n // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n\n // Sales!B2\n // 'Winter sales'!B2\n // [Sales.xlsx]Jan!B2:B5\n // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n // '[Sales.xlsx]Jan sales'!B2:B5\n // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n\n pattern:\n /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n greedy: true,\n alias: 'string',\n inside: {\n operator: /!$/,\n punctuation: /'/,\n sheet: {\n pattern: /[^[\\]]+$/,\n alias: 'function'\n },\n file: {\n pattern: /\\[[^[\\]]+\\]$/,\n inside: {\n punctuation: /[[\\]]/\n }\n },\n path: /[\\s\\S]+/\n }\n },\n 'function-name': {\n pattern: /\\b[A-Z]\\w*(?=\\()/i,\n alias: 'builtin'\n },\n range: {\n pattern:\n /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n alias: 'selector',\n inside: {\n operator: /:/,\n cell: /\\$?[A-Z]+\\$?\\d+/i,\n column: /\\$?[A-Z]+/i,\n row: /\\$?\\d+/\n }\n },\n cell: {\n // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n alias: 'selector'\n },\n number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n punctuation: /[[\\]();{}|]/\n }\n Prism.languages['xlsx'] = Prism.languages['xls'] =\n Prism.languages['excel-formula']\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function fsharp(Prism) {\n Prism.register(refractorClike)\n Prism.languages.fsharp = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n lookbehind: true,\n inside: {\n operator: /->|\\*/,\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n number: [\n /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n /\\b0b[01]+(?:uy|y)?\\b/,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n ],\n operator:\n /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n })\n Prism.languages.insertBefore('fsharp', 'keyword', {\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n })\n Prism.languages.insertBefore('fsharp', 'punctuation', {\n 'computation-expression': {\n pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n alias: 'keyword'\n }\n })\n Prism.languages.insertBefore('fsharp', 'string', {\n annotation: {\n pattern: /\\[<.+?>\\]/,\n greedy: true,\n inside: {\n punctuation: /^\\[<|>\\]$/,\n 'class-name': {\n pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n lookbehind: true\n },\n 'annotation-content': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.fsharp\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n greedy: true\n }\n })\n}\n","// @ts-nocheck\nfactor.displayName = 'factor'\nfactor.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function factor(Prism) {\n ;(function (Prism) {\n var comment_inside = {\n function:\n /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n }\n var string_inside = {\n number: /\\\\[^\\s']|%\\w/\n }\n var factor = {\n comment: [\n {\n // ! single-line exclamation point comments with whitespace after/around the !\n pattern: /(^|\\s)(?:! .*|!$)/,\n lookbehind: true,\n inside: comment_inside\n } /* from basis/multiline: */,\n {\n // /* comment */, /* comment*/\n pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n },\n {\n // ![[ comment ]] , ![===[ comment]===]\n pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n }\n ],\n number: [\n {\n // basic base 10 integers 9, -9\n pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n lookbehind: true\n },\n {\n // positive mixed numbers 23+1/5 +23+1/5\n pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // negative mixed numbers -23-1/5\n pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n pattern:\n /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // NAN literal syntax NAN: 80000deadbeef, NAN: a\n pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n lookbehind: true\n },\n {\n /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n pattern:\n /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n lookbehind: true\n }\n ],\n // R/ regexp?\\/\\\\/\n regexp: {\n pattern:\n /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n lookbehind: true,\n alias: 'number',\n inside: {\n variable: /\\\\\\S/,\n keyword: /[+?*\\[\\]^$(){}.|]/,\n operator: {\n pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n lookbehind: true\n }\n }\n },\n boolean: {\n pattern: /(^|\\s)[tf](?=\\s|$)/,\n lookbehind: true\n },\n // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n 'custom-string': {\n pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: /\\\\\\S|%\\w|\\//\n }\n },\n 'multiline-string': [\n {\n // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: string_inside.number,\n // trailing semicolon on its own line\n 'semicolon-or-setlocal': {\n pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n }\n }\n },\n {\n // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n },\n {\n // [[ string ]], [==[ string]==]\n pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n }\n ],\n 'special-using': {\n pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n lookbehind: true,\n alias: 'function',\n inside: {\n // this is essentially a regex for vocab names, which i don't want to specify\n // but the USING: gets picked up as a vocab name\n string: {\n pattern: /(\\s)[^:\\s]+/,\n lookbehind: true\n }\n }\n },\n /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n\n // current solution is not great\n 'stack-effect-delimiter': [\n {\n // opening parenthesis\n pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // middle --\n pattern: /(\\s)--(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing parenthesis\n pattern: /(\\s)\\)(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n combinators: {\n pattern: null,\n lookbehind: true,\n alias: 'keyword'\n },\n 'kernel-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'sequences-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'math-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'constructor-word': {\n // <array> but not <=>\n pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'other-builtin-syntax': {\n pattern: null,\n lookbehind: true,\n alias: 'operator'\n },\n /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n 'conventionally-named-word': {\n pattern:\n /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'colon-syntax': {\n pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'semicolon-or-setlocal': {\n pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n },\n // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n 'curly-brace-literal-delimiter': [\n {\n // opening\n pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\}(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n 'quotation-delimiter': [\n {\n // opening\n pattern: /(^|\\s)\\[(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\](?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n 'normal-word': {\n pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n lookbehind: true\n },\n /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n string: {\n pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n greedy: true,\n inside: string_inside\n }\n }\n var escape = function (str) {\n return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n }\n var arrToWordsRegExp = function (arr) {\n return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n }\n var builtins = {\n 'kernel-builtin': [\n 'or',\n '2nipd',\n '4drop',\n 'tuck',\n 'wrapper',\n 'nip',\n 'wrapper?',\n 'callstack>array',\n 'die',\n 'dupd',\n 'callstack',\n 'callstack?',\n '3dup',\n 'hashcode',\n 'pick',\n '4nip',\n 'build',\n '>boolean',\n 'nipd',\n 'clone',\n '5nip',\n 'eq?',\n '?',\n '=',\n 'swapd',\n '2over',\n 'clear',\n '2dup',\n 'get-retainstack',\n 'not',\n 'tuple?',\n 'dup',\n '3nipd',\n 'call',\n '-rotd',\n 'object',\n 'drop',\n 'assert=',\n 'assert?',\n '-rot',\n 'execute',\n 'boa',\n 'get-callstack',\n 'curried?',\n '3drop',\n 'pickd',\n 'overd',\n 'over',\n 'roll',\n '3nip',\n 'swap',\n 'and',\n '2nip',\n 'rotd',\n 'throw',\n '(clone)',\n 'hashcode*',\n 'spin',\n 'reach',\n '4dup',\n 'equal?',\n 'get-datastack',\n 'assert',\n '2drop',\n '<wrapper>',\n 'boolean?',\n 'identity-hashcode',\n 'identity-tuple?',\n 'null',\n 'composed?',\n 'new',\n '5drop',\n 'rot',\n '-roll',\n 'xor',\n 'identity-tuple',\n 'boolean'\n ],\n 'other-builtin-syntax': [\n // syntax\n '=======',\n 'recursive',\n 'flushable',\n '>>',\n '<<<<<<',\n 'M\\\\',\n 'B',\n 'PRIVATE>',\n '\\\\',\n '======',\n 'final',\n 'inline',\n 'delimiter',\n 'deprecated',\n '<PRIVATE',\n '>>>>>>',\n '<<<<<<<',\n 'parse-complex',\n 'malformed-complex',\n 'read-only',\n '>>>>>>>',\n 'call-next-method',\n '<<',\n 'foldable',\n // literals\n '$',\n '$[',\n '${'\n ],\n 'sequences-builtin': [\n 'member-eq?',\n 'mismatch',\n 'append',\n 'assert-sequence=',\n 'longer',\n 'repetition',\n 'clone-like',\n '3sequence',\n 'assert-sequence?',\n 'last-index-from',\n 'reversed',\n 'index-from',\n 'cut*',\n 'pad-tail',\n 'join-as',\n 'remove-eq!',\n 'concat-as',\n 'but-last',\n 'snip',\n 'nths',\n 'nth',\n 'sequence',\n 'longest',\n 'slice?',\n '<slice>',\n 'remove-nth',\n 'tail-slice',\n 'empty?',\n 'tail*',\n 'member?',\n 'virtual-sequence?',\n 'set-length',\n 'drop-prefix',\n 'iota',\n 'unclip',\n 'bounds-error?',\n 'unclip-last-slice',\n 'non-negative-integer-expected',\n 'non-negative-integer-expected?',\n 'midpoint@',\n 'longer?',\n '?set-nth',\n '?first',\n 'rest-slice',\n 'prepend-as',\n 'prepend',\n 'fourth',\n 'sift',\n 'subseq-start',\n 'new-sequence',\n '?last',\n 'like',\n 'first4',\n '1sequence',\n 'reverse',\n 'slice',\n 'virtual@',\n 'repetition?',\n 'set-last',\n 'index',\n '4sequence',\n 'max-length',\n 'set-second',\n 'immutable-sequence',\n 'first2',\n 'first3',\n 'supremum',\n 'unclip-slice',\n 'suffix!',\n 'insert-nth',\n 'tail',\n '3append',\n 'short',\n 'suffix',\n 'concat',\n 'flip',\n 'immutable?',\n 'reverse!',\n '2sequence',\n 'sum',\n 'delete-all',\n 'indices',\n 'snip-slice',\n '<iota>',\n 'check-slice',\n 'sequence?',\n 'head',\n 'append-as',\n 'halves',\n 'sequence=',\n 'collapse-slice',\n '?second',\n 'slice-error?',\n 'product',\n 'bounds-check?',\n 'bounds-check',\n 'immutable',\n 'virtual-exemplar',\n 'harvest',\n 'remove',\n 'pad-head',\n 'last',\n 'set-fourth',\n 'cartesian-product',\n 'remove-eq',\n 'shorten',\n 'shorter',\n 'reversed?',\n 'shorter?',\n 'shortest',\n 'head-slice',\n 'pop*',\n 'tail-slice*',\n 'but-last-slice',\n 'iota?',\n 'append!',\n 'cut-slice',\n 'new-resizable',\n 'head-slice*',\n 'sequence-hashcode',\n 'pop',\n 'set-nth',\n '?nth',\n 'second',\n 'join',\n 'immutable-sequence?',\n '<reversed>',\n '3append-as',\n 'virtual-sequence',\n 'subseq?',\n 'remove-nth!',\n 'length',\n 'last-index',\n 'lengthen',\n 'assert-sequence',\n 'copy',\n 'move',\n 'third',\n 'first',\n 'tail?',\n 'set-first',\n 'prefix',\n 'bounds-error',\n '<repetition>',\n 'exchange',\n 'surround',\n 'cut',\n 'min-length',\n 'set-third',\n 'push-all',\n 'head?',\n 'subseq-start-from',\n 'delete-slice',\n 'rest',\n 'sum-lengths',\n 'head*',\n 'infimum',\n 'remove!',\n 'glue',\n 'slice-error',\n 'subseq',\n 'push',\n 'replace-slice',\n 'subseq-as',\n 'unclip-last'\n ],\n 'math-builtin': [\n 'number=',\n 'next-power-of-2',\n '?1+',\n 'fp-special?',\n 'imaginary-part',\n 'float>bits',\n 'number?',\n 'fp-infinity?',\n 'bignum?',\n 'fp-snan?',\n 'denominator',\n 'gcd',\n '*',\n '+',\n 'fp-bitwise=',\n '-',\n 'u>=',\n '/',\n '>=',\n 'bitand',\n 'power-of-2?',\n 'log2-expects-positive',\n 'neg?',\n '<',\n 'log2',\n '>',\n 'integer?',\n 'number',\n 'bits>double',\n '2/',\n 'zero?',\n 'bits>float',\n 'float?',\n 'shift',\n 'ratio?',\n 'rect>',\n 'even?',\n 'ratio',\n 'fp-sign',\n 'bitnot',\n '>fixnum',\n 'complex?',\n '/i',\n 'integer>fixnum',\n '/f',\n 'sgn',\n '>bignum',\n 'next-float',\n 'u<',\n 'u>',\n 'mod',\n 'recip',\n 'rational',\n '>float',\n '2^',\n 'integer',\n 'fixnum?',\n 'neg',\n 'fixnum',\n 'sq',\n 'bignum',\n '>rect',\n 'bit?',\n 'fp-qnan?',\n 'simple-gcd',\n 'complex',\n '<fp-nan>',\n 'real',\n '>fraction',\n 'double>bits',\n 'bitor',\n 'rem',\n 'fp-nan-payload',\n 'real-part',\n 'log2-expects-positive?',\n 'prev-float',\n 'align',\n 'unordered?',\n 'float',\n 'fp-nan?',\n 'abs',\n 'bitxor',\n 'integer>fixnum-strict',\n 'u<=',\n 'odd?',\n '<=',\n '/mod',\n '>integer',\n 'real?',\n 'rational?',\n 'numerator'\n ]\n // that's all for now\n }\n\n Object.keys(builtins).forEach(function (k) {\n factor[k].pattern = arrToWordsRegExp(builtins[k])\n })\n var combinators = [\n // kernel\n '2bi',\n 'while',\n '2tri',\n 'bi*',\n '4dip',\n 'both?',\n 'same?',\n 'tri@',\n 'curry',\n 'prepose',\n '3bi',\n '?if',\n 'tri*',\n '2keep',\n '3keep',\n 'curried',\n '2keepd',\n 'when',\n '2bi*',\n '2tri*',\n '4keep',\n 'bi@',\n 'keepdd',\n 'do',\n 'unless*',\n 'tri-curry',\n 'if*',\n 'loop',\n 'bi-curry*',\n 'when*',\n '2bi@',\n '2tri@',\n 'with',\n '2with',\n 'either?',\n 'bi',\n 'until',\n '3dip',\n '3curry',\n 'tri-curry*',\n 'tri-curry@',\n 'bi-curry',\n 'keepd',\n 'compose',\n '2dip',\n 'if',\n '3tri',\n 'unless',\n 'tuple',\n 'keep',\n '2curry',\n 'tri',\n 'most',\n 'while*',\n 'dip',\n 'composed',\n 'bi-curry@',\n // sequences\n 'find-last-from',\n 'trim-head-slice',\n 'map-as',\n 'each-from',\n 'none?',\n 'trim-tail',\n 'partition',\n 'if-empty',\n 'accumulate*',\n 'reject!',\n 'find-from',\n 'accumulate-as',\n 'collector-for-as',\n 'reject',\n 'map',\n 'map-sum',\n 'accumulate!',\n '2each-from',\n 'follow',\n 'supremum-by',\n 'map!',\n 'unless-empty',\n 'collector',\n 'padding',\n 'reduce-index',\n 'replicate-as',\n 'infimum-by',\n 'trim-tail-slice',\n 'count',\n 'find-index',\n 'filter',\n 'accumulate*!',\n 'reject-as',\n 'map-integers',\n 'map-find',\n 'reduce',\n 'selector',\n 'interleave',\n '2map',\n 'filter-as',\n 'binary-reduce',\n 'map-index-as',\n 'find',\n 'produce',\n 'filter!',\n 'replicate',\n 'cartesian-map',\n 'cartesian-each',\n 'find-index-from',\n 'map-find-last',\n '3map-as',\n '3map',\n 'find-last',\n 'selector-as',\n '2map-as',\n '2map-reduce',\n 'accumulate',\n 'each',\n 'each-index',\n 'accumulate*-as',\n 'when-empty',\n 'all?',\n 'collector-as',\n 'push-either',\n 'new-like',\n 'collector-for',\n '2selector',\n 'push-if',\n '2all?',\n 'map-reduce',\n '3each',\n 'any?',\n 'trim-slice',\n '2reduce',\n 'change-nth',\n 'produce-as',\n '2each',\n 'trim',\n 'trim-head',\n 'cartesian-find',\n 'map-index',\n // math\n 'if-zero',\n 'each-integer',\n 'unless-zero',\n '(find-integer)',\n 'when-zero',\n 'find-last-integer',\n '(all-integers?)',\n 'times',\n '(each-integer)',\n 'find-integer',\n 'all-integers?',\n // math.combinators\n 'unless-negative',\n 'if-positive',\n 'when-positive',\n 'when-negative',\n 'unless-positive',\n 'if-negative',\n // combinators\n 'case',\n '2cleave',\n 'cond>quot',\n 'case>quot',\n '3cleave',\n 'wrong-values',\n 'to-fixed-point',\n 'alist>quot',\n 'cond',\n 'cleave',\n 'call-effect',\n 'recursive-hashcode',\n 'spread',\n 'deep-spread>quot',\n // combinators.short-circuit\n '2||',\n '0||',\n 'n||',\n '0&&',\n '2&&',\n '3||',\n '1||',\n '1&&',\n 'n&&',\n '3&&',\n // combinators.smart\n 'smart-unless*',\n 'keep-inputs',\n 'reduce-outputs',\n 'smart-when*',\n 'cleave>array',\n 'smart-with',\n 'smart-apply',\n 'smart-if',\n 'inputs/outputs',\n 'output>sequence-n',\n 'map-outputs',\n 'map-reduce-outputs',\n 'dropping',\n 'output>array',\n 'smart-map-reduce',\n 'smart-2map-reduce',\n 'output>array-n',\n 'nullary',\n 'input<sequence',\n 'append-outputs',\n 'drop-inputs',\n 'inputs',\n 'smart-2reduce',\n 'drop-outputs',\n 'smart-reduce',\n 'preserving',\n 'smart-when',\n 'outputs',\n 'append-outputs-as',\n 'smart-unless',\n 'smart-if*',\n 'sum-outputs',\n 'input<sequence-unsafe',\n 'output>sequence'\n // tafn\n ]\n\n factor.combinators.pattern = arrToWordsRegExp(combinators)\n Prism.languages.factor = factor\n })(Prism)\n}\n","// @ts-nocheck\n$false.displayName = 'false'\n$false.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function $false(Prism) {\n ;(function (Prism) {\n /**\n * Based on the manual by Wouter van Oortmerssen.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n */\n Prism.languages['false'] = {\n comment: {\n pattern: /\\{[^}]*\\}/\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n 'character-code': {\n pattern: /'(?:[^\\r]|\\r\\n?)/,\n alias: 'number'\n },\n 'assembler-code': {\n pattern: /\\d+`/,\n alias: 'important'\n },\n number: /\\d+/,\n operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n punctuation: /\\[|\\]/,\n variable: /[a-z]/,\n 'non-standard': {\n pattern: /[()<BDO®]/,\n alias: 'bold'\n }\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nfirestoreSecurityRules.displayName = 'firestore-security-rules'\nfirestoreSecurityRules.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function firestoreSecurityRules(Prism) {\n Prism.register(refractorClike)\n Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n 'clike',\n {\n comment: /\\/\\/.*/,\n keyword:\n /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n }\n )\n delete Prism.languages['firestore-security-rules']['class-name']\n Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n path: {\n pattern:\n /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n inside: {\n operator: /=/,\n keyword: /\\*\\*/,\n punctuation: /[.$(){}]/\n }\n },\n punctuation: /\\//\n }\n },\n method: {\n // to make the pattern shorter, the actual method names are omitted\n pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n lookbehind: true,\n alias: 'builtin',\n inside: {\n punctuation: /,/\n }\n }\n })\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nflow.displayName = 'flow'\nflow.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function flow(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n Prism.languages.flow = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('flow', 'keyword', {\n type: [\n {\n pattern:\n /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\\b/,\n alias: 'class-name'\n }\n ]\n })\n Prism.languages.flow['function-variable'].pattern =\n /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n delete Prism.languages.flow['parameter']\n Prism.languages.insertBefore('flow', 'operator', {\n 'flow-punctuation': {\n pattern: /\\{\\||\\|\\}/,\n alias: 'punctuation'\n }\n })\n if (!Array.isArray(Prism.languages.flow.keyword)) {\n Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n }\n Prism.languages.flow.keyword.unshift(\n {\n pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n lookbehind: true\n }\n )\n })(Prism)\n}\n","// @ts-nocheck\nfortran.displayName = 'fortran'\nfortran.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function fortran(Prism) {\n Prism.languages.fortran = {\n 'quoted-number': {\n pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n alias: 'number'\n },\n string: {\n pattern:\n /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n inside: {\n comment: {\n pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n lookbehind: true\n }\n }\n },\n comment: {\n pattern: /!.*/,\n greedy: true\n },\n boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n keyword: [\n // Types\n /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i,\n // END statements\n /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i,\n // Statements\n /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i,\n // Others\n /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n ],\n operator: [\n /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n {\n // Use lookbehind to prevent confusion with (/ /)\n pattern: /(^|(?!\\().)\\/(?!\\))/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n }\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nftl.displayName = 'ftl'\nftl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function ftl(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n // https://freemarker.apache.org/docs/dgui_template_exp.html\n\n // FTL expression with 4 levels of nesting supported\n var FTL_EXPR =\n /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n .source\n for (var i = 0; i < 2; i++) {\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n return FTL_EXPR\n })\n }\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n var ftl = {\n comment: /<#--[\\s\\S]*?-->/,\n string: [\n {\n // raw string\n pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(\n /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: null\n }\n }\n }\n }\n ],\n keyword: /\\b(?:as)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator:\n /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n punctuation: /[,;.:()[\\]{}]/\n }\n ftl.string[1].inside.interpolation.inside.rest = ftl\n Prism.languages.ftl = {\n 'ftl-comment': {\n // the pattern is shortened to be more efficient\n pattern: /^<#--[\\s\\S]*/,\n alias: 'comment'\n },\n 'ftl-directive': {\n pattern: /^<[\\s\\S]+>$/,\n inside: {\n directive: {\n pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /^<\\/?|\\/?>$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n },\n 'ftl-interpolation': {\n pattern: /^\\$\\{[\\s\\S]*\\}$/,\n inside: {\n punctuation: /^\\$\\{|\\}$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n // eslint-disable-next-line regexp/no-useless-lazy\n var pattern = RegExp(\n /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n ),\n 'gi'\n )\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ftl',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ngml.displayName = 'gml'\ngml.aliases = ['gamemakerlanguage']\n\n/** @type {import('../core.js').Syntax} */\nexport default function gml(Prism) {\n Prism.register(refractorClike)\n Prism.languages.gamemakerlanguage = Prism.languages.gml =\n Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n number:\n /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n operator:\n /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n constant:\n /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n variable:\n /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n })\n}\n","// @ts-nocheck\ngap.displayName = 'gap'\ngap.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function gap(Prism) {\n // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n\n Prism.languages.gap = {\n shell: {\n pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n greedy: true,\n inside: {\n gap: {\n pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n lookbehind: true,\n inside: null // see below\n },\n\n punctuation: /^gap>/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }\n },\n keyword:\n /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n },\n operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n punctuation: /[()[\\]{},;.:]/\n }\n Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","// @ts-nocheck\ngcode.displayName = 'gcode'\ngcode.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function gcode(Prism) {\n Prism.languages.gcode = {\n comment: /;.*|\\B\\(.*?\\)\\B/,\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n property: /\\b[A-Z]/,\n checksum: {\n pattern: /(\\*)\\d+/,\n lookbehind: true,\n alias: 'number'\n },\n // T0:0:0\n punctuation: /[:*]/\n }\n}\n","// @ts-nocheck\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function gdscript(Prism) {\n Prism.languages.gdscript = {\n comment: /#.*/,\n string: {\n pattern:\n /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n greedy: true\n },\n 'class-name': {\n // class_name Foo, extends Bar, class InnerClass\n // export(int) var baz, export(int, 0) var i\n // as Node\n // const FOO: int = 9, var bar: bool = true\n // func add(reference: Item, amount: int) -> Item:\n pattern:\n /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n lookbehind: true\n },\n keyword:\n /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n variable: /\\$\\w+/,\n number: [\n /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n /\\b(?:INF|NAN|PI|TAU)\\b/\n ],\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n punctuation: /[.:,;()[\\]{}]/\n }\n}\n","// @ts-nocheck\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function gedcom(Prism) {\n Prism.languages.gedcom = {\n 'line-value': {\n // Preceded by level, optional pointer, and tag\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n lookbehind: true,\n inside: {\n pointer: {\n pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n alias: 'variable'\n }\n }\n },\n record: {\n // Preceded by level and optional pointer\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n lookbehind: true,\n alias: 'tag'\n },\n level: {\n pattern: /(^[\\t ]*)\\d+/m,\n lookbehind: true,\n alias: 'number'\n },\n pointer: {\n pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n alias: 'variable'\n }\n }\n}\n","// @ts-nocheck\ngettext.displayName = 'gettext'\ngettext.aliases = ['po']\n\n/** @type {import('../core.js').Syntax} */\nexport default function gettext(Prism) {\n Prism.languages.gettext = {\n comment: [\n {\n pattern: /# .*/,\n greedy: true,\n alias: 'translator-comment'\n },\n {\n pattern: /#\\..*/,\n greedy: true,\n alias: 'extracted-comment'\n },\n {\n pattern: /#:.*/,\n greedy: true,\n alias: 'reference-comment'\n },\n {\n pattern: /#,.*/,\n greedy: true,\n alias: 'flag-comment'\n },\n {\n pattern: /#\\|.*/,\n greedy: true,\n alias: 'previously-untranslated-comment'\n },\n {\n pattern: /#.*/,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n keyword: /^msg(?:ctxt|id|id_plural|str)\\b/m,\n number: /\\b\\d+\\b/,\n punctuation: /[\\[\\]]/\n }\n Prism.languages.po = Prism.languages.gettext\n}\n","// @ts-nocheck\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function gherkin(Prism) {\n ;(function (Prism) {\n var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n Prism.languages.gherkin = {\n pystring: {\n pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n alias: 'string'\n },\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[ \\t]*)@\\S*/m,\n lookbehind: true\n },\n feature: {\n pattern:\n /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|CaracterÃstica|Egenskab|Egenskap|Eiginleiki|Feature|FÄ«Äa|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|FuncÅ£ionalitate|FuncÈ›ionalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|FunkcionalitÄte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità |Hwaet|Hwæt|JellemzÅ‘|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|SavybÄ—|TÃnh năng|Trajto|Vermoë|VlastnosÅ¥|WÅ‚aÅ›ciwość|ZnaÄilnost|Δυνατότητα|ΛειτουÏγία|МогућноÑÑ‚|Мөмкинлек|ОÑобина|СвойÑтво|Үзенчәлеклелек|Функционал|ФункционалноÑÑ‚|ФункциÑ|Функціонал|×ª×›×•× ×”|خاصية|خصوصیت|صلاØیت|کاروبار Ú©ÛŒ ضرورت|ÙˆÙیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨà©à¨¹à¨¾à¨°|ਮà©à¨¹à¨¾à¨‚ਦਰਾ|à°—à±à°£à°®à±|ಹೆಚà³à²šà²³|ความต้à¸à¸‡à¸à¸²à¸£à¸—างธุรà¸à¸´à¸ˆ|ความสามารถ|โครงหลัà¸|기능|フィーãƒãƒ£|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]+/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n scenario: {\n pattern:\n /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|GeçmiÅŸ|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|NáÄrt Scenára|NáÄrt Scénáře|NáÄrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|PiemÄ“ri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|PozadÃ|Pozadie|Pozadina|PrÃklady|PÅ™Ãklady|Primer|Primeri|Primjeri|PrzykÅ‚ady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus Å¡ablonas|Scenariji|ScenÄrijs|ScenÄrijs pÄ“c parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|SituÄcija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|ZaÅ‚ożenia|ΠαÏαδείγματα|ΠεÏιγÏαφή ΣεναÏίου|ΣενάÏια|ΣενάÏιο|ΥπόβαθÏο|Кереш|КонтекÑÑ‚|Концепт|МиÑаллар|МиÑоллар|ОÑнова|Передумова|Позадина|ПредиÑториÑ|ПредыÑториÑ|Приклади|Пример|Примери|Примеры|Рамка на Ñценарий|Скица|Структура Ñценарија|Структура ÑценариÑ|Структура Ñценарію|Сценарий|Сценарий ÑтруктураÑи|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמ×ות|רקע|×ª×‘× ×™×ª תרחיש|תרחיש|الخلÙية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکÛ|منظرنامÛ|نمونه ها|उदाहरण|परिदृशà¥à¤¯|परिदृशà¥à¤¯ रूपरेखा|पृषà¥à¤ à¤à¥‚मि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలà±|కథనం|నేపథà±à°¯à°‚|సనà±à°¨à°¿à°µà±‡à°¶à°‚|ಉದಾಹರಣೆಗಳà³|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನà³à²¨à³†à²²à³†|โครงสร้างขà¸à¸‡à¹€à¸«à¸•à¸¸à¸à¸²à¸£à¸“์|ชุดขà¸à¸‡à¸•à¸±à¸§à¸à¸¢à¹ˆà¸²à¸‡|ชุดขà¸à¸‡à¹€à¸«à¸•à¸¸à¸à¸²à¸£à¸“์|à¹à¸™à¸§à¸„ิด|สรุปเหตุà¸à¸²à¸£à¸“์|เหตุà¸à¸²à¸£à¸“์|ë°°ê²½|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例å|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|å ´æ™¯|å ´æ™¯å¤§ç¶±|背景):[^:\\r\\n]*/m,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]*/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n 'table-body': {\n // Look-behind is used to skip the table head, which has the same format as any table row\n pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n lookbehind: true,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n },\n td: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'string'\n },\n punctuation: /\\|/\n }\n },\n 'table-head': {\n pattern: RegExp(tableRow),\n inside: {\n th: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'variable'\n },\n punctuation: /\\|/\n }\n },\n atrule: {\n pattern:\n /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|ÄŒe|Ãa ðe|Ãa|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|DaÅ£i fiind|DaÈ›i fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ãurh|Eeldades|Ef|EÄŸer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|JeÅ›li|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|KeÄ|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|MajÄ…c|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|NÃ¥r|När|Nato|NhÆ°ng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|SÃ¥|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Åži|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và |vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za pÅ™edpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|ZakÅ‚adajÄ…c|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|ΔεδομÎνου|Και|Όταν|Τότε|Ртакож|Ðгар|Ðле|Ðли|Ðммо|Ð|Әгәр|Әйтик|Әмма|Бирок|Ва|Ð’Ó™|Дадено|Дано|ДопуÑтим|ЕÑли|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Ðәтиҗәдә|Ðехай|Ðо|Онда|ПрипуÑтимо, що|ПрипуÑтимо|ПуÑÑ‚ÑŒ|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|×בל|××–×™|××–|×‘×”×™× ×ª×Ÿ|וג×|×›×שר|آنگاه|اذاً|اگر|اما|اور|با Ùرض|بالÙرض|بÙرض|پھر|تب|ثم|جب|عندما|Ùرض کیا|لكن|لیکن|متى|هنگامی|Ùˆ|अगर|और|कदा|किनà¥à¤¤à¥|चूंकि|जब|तथा|तदा|तब|परनà¥à¤¤à¥|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|à°…à°ªà±à°ªà±à°¡à±|à°ˆ పరిసà±à°¥à°¿à°¤à°¿à°²à±‹|కాని|చెపà±à°ªà°¬à°¡à°¿à°¨à°¦à°¿|మరియà±|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತà³à²¤à³|ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³|à¸à¸³à¸«à¸™à¸”ให้|ดังนั้น|à¹à¸•à¹ˆ|เมื่à¸|à¹à¸¥à¸°|그러면<|ê·¸ë¦¬ê³ <|단<|만약<|만ì¼<|ë¨¼ì €<|ì¡°ê±´<|하지만<|ã‹ã¤<|ã—ã‹ã—<|ãŸã ã—<|ãªã‚‰ã°<|ã‚‚ã—<|並且<|但ã—<|但是<|å‡å¦‚<|å‡å®š<|å‡è¨<|å‡è®¾<|å‰æ<|åŒæ—¶<|åŒæ™‚<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n },\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n })(Prism)\n}\n","// @ts-nocheck\ngit.displayName = 'git'\ngit.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function git(Prism) {\n Prism.languages.git = {\n /*\n * A simple one line comment like in a git status command\n * For instance:\n * $ git status\n * # On branch infinite-scroll\n * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n * # and have 1 and 2 different commits each, respectively.\n * nothing to commit (working directory clean)\n */\n comment: /^#.*/m,\n /*\n * Regexp to match the changed lines in a git diff output. Check the example below.\n */\n deleted: /^[-–].*/m,\n inserted: /^\\+.*/m,\n /*\n * a string (double and simple quote)\n */\n string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n /*\n * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n * For instance:\n * $ git add file.txt\n */\n command: {\n pattern: /^.*\\$ git .*$/m,\n inside: {\n /*\n * A git command can contain a parameter starting by a single or a double dash followed by a string\n * For instance:\n * $ git diff --cached\n * $ git log -p\n */\n parameter: /\\s--?\\w+/\n }\n },\n /*\n * Coordinates displayed in a git diff command\n * For instance:\n * $ git diff\n * diff --git file.txt file.txt\n * index 6214953..1d54a52 100644\n * --- file.txt\n * +++ file.txt\n * @@ -1 +1,2 @@\n * -Here's my tetx file\n * +Here's my text file\n * +And this is the second line\n */\n coord: /^@@.*@@$/m,\n /*\n * Match a \"commit [SHA1]\" line in a git log output.\n * For instance:\n * $ git log\n * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n * Author: lgiraudel\n * Date: Mon Feb 17 11:18:34 2014 +0100\n *\n * Add of a new line\n */\n 'commit-sha1': /^commit \\w{40}$/m\n }\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\nglsl.displayName = 'glsl'\nglsl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function glsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.glsl = Prism.languages.extend('c', {\n keyword:\n /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n })\n}\n","// @ts-nocheck\ngn.displayName = 'gn'\ngn.aliases = ['gni']\n\n/** @type {import('../core.js').Syntax} */\nexport default function gn(Prism) {\n // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n\n Prism.languages.gn = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'string-literal': {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n lookbehind: true,\n inside: {\n number: /^\\$0x[\\s\\S]{2}$/,\n variable: /^\\$\\w+$/,\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n\n string: /[\\s\\S]+/\n }\n },\n keyword: /\\b(?:else|if)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n // a few functions get special highlighting to improve readability\n pattern:\n /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n alias: 'keyword'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant:\n /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n number: /-?\\b\\d+\\b/,\n operator: /[-+!=<>]=?|&&|\\|\\|/,\n punctuation: /[(){}[\\],.]/\n }\n Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.gn\n Prism.languages.gni = Prism.languages.gn\n}\n","// @ts-nocheck\nlinkerScript.displayName = 'linker-script'\nlinkerScript.aliases = ['ld']\n\n/** @type {import('../core.js').Syntax} */\nexport default function linkerScript(Prism) {\n Prism.languages['linker-script'] = {\n comment: {\n pattern: /(^|\\s)\\/\\*[\\s\\S]*?(?:$|\\*\\/)/,\n lookbehind: true,\n greedy: true\n },\n identifier: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n 'location-counter': {\n pattern: /\\B\\.\\B/,\n alias: 'important'\n },\n section: {\n pattern: /(^|[^\\w*])\\.\\w+\\b/,\n lookbehind: true,\n alias: 'keyword'\n },\n function: /\\b[A-Z][A-Z_]*(?=\\s*\\()/,\n number: /\\b(?:0[xX][a-fA-F0-9]+|\\d+)[KM]?\\b/,\n operator: />>=?|<<=?|->|\\+\\+|--|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?/,\n punctuation: /[(){},;]/\n }\n Prism.languages['ld'] = Prism.languages['linker-script']\n}\n","// @ts-nocheck\ngoModule.displayName = 'go-module'\ngoModule.aliases = ['go-mod']\n\n/** @type {import('../core.js').Syntax} */\nexport default function goModule(Prism) {\n // https://go.dev/ref/mod#go-mod-file-module\n\n Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n version: {\n pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n lookbehind: true,\n alias: 'number'\n },\n 'go-version': {\n pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n lookbehind: true,\n alias: 'number'\n },\n keyword: {\n pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n lookbehind: true\n },\n operator: /=>/,\n punctuation: /[()[\\],]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ngradle.displayName = 'gradle'\ngradle.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function gradle(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n var interpolation = {\n pattern: /((?:^|[^\\\\$])(?:\\\\{2})*)\\$(?:\\w+|\\{[^{}]*\\})/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null\n }\n }\n }\n Prism.languages.gradle = Prism.languages.extend('clike', {\n string: {\n pattern: /'''(?:[^\\\\]|\\\\[\\s\\S])*?'''|'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\\b/,\n number:\n /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n lookbehind: true\n },\n punctuation: /\\.+|[{}[\\];(),:$]/\n })\n Prism.languages.insertBefore('gradle', 'string', {\n shebang: {\n pattern: /#!.+/,\n alias: 'comment',\n greedy: true\n },\n 'interpolation-string': {\n pattern:\n /\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\"|([\"/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('gradle', 'punctuation', {\n 'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n })\n Prism.languages.insertBefore('gradle', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n interpolation.inside.expression.inside = Prism.languages.gradle\n })(Prism)\n}\n","// @ts-nocheck\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern:\n /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /\\b[A-Z]\\w*Input\\b/,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern:\n /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword:\n /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n }\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return\n }\n\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n var validTokens = env.tokens.filter(function (token) {\n return (\n typeof token !== 'string' &&\n token.type !== 'comment' &&\n token.type !== 'scalar'\n )\n })\n var currentIndex = 0\n\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n function getToken(offset) {\n return validTokens[currentIndex + offset]\n }\n\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n function isTokenType(types, offset) {\n offset = offset || 0\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset)\n if (!token || token.type !== types[i]) {\n return false\n }\n }\n return true\n }\n\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n function findClosingBracket(open, close) {\n var stackHeight = 1\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i]\n var content = token.content\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++\n } else if (close.test(content)) {\n stackHeight--\n if (stackHeight === 0) {\n return i\n }\n }\n }\n }\n return -1\n }\n\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n function addAlias(token, alias) {\n var aliases = token.alias\n if (!aliases) {\n token.alias = aliases = []\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases]\n }\n aliases.push(alias)\n }\n for (; currentIndex < validTokens.length; ) {\n var startToken = validTokens[currentIndex++]\n\n // add special aliases for mutation tokens\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = []\n if (\n isTokenType(['definition-mutation', 'punctuation']) &&\n getToken(1).content === '('\n ) {\n // definition\n\n currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n if (definitionEnd === -1) {\n continue\n }\n\n // find all input variables\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0)\n if (t.type === 'variable') {\n addAlias(t, 'variable-input')\n inputVariables.push(t.content)\n }\n }\n currentIndex = definitionEnd + 1\n }\n if (\n isTokenType(['punctuation', 'property-query']) &&\n getToken(0).content === '{'\n ) {\n currentIndex++ // skip opening bracket\n\n addAlias(getToken(0), 'property-mutation')\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n if (mutationEnd === -1) {\n continue\n }\n\n // give references to input variables a special alias\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i]\n if (\n varToken.type === 'variable' &&\n inputVariables.indexOf(varToken.content) >= 0\n ) {\n addAlias(varToken, 'variable-input')\n }\n }\n }\n }\n }\n }\n })\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function groovy(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n var interpolation = {\n pattern: /((?:^|[^\\\\$])(?:\\\\{2})*)\\$(?:\\w+|\\{[^{}]*\\})/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n }\n\n Prism.languages.groovy = Prism.languages.extend('clike', {\n string: {\n // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n pattern: /'''(?:[^\\\\]|\\\\[\\s\\S])*?'''|'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n number:\n /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n lookbehind: true\n },\n punctuation: /\\.+|[{}[\\];(),:$]/\n })\n Prism.languages.insertBefore('groovy', 'string', {\n shebang: {\n pattern: /#!.+/,\n alias: 'comment',\n greedy: true\n },\n 'interpolation-string': {\n // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n // simple division (see JS regex), so find a fix maybe?\n pattern:\n /\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\"|([\"/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('groovy', 'punctuation', {\n 'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n })\n Prism.languages.insertBefore('groovy', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n interpolation.inside.expression.inside = Prism.languages.groovy\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\ntextile.displayName = 'textile'\ntextile.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function textile(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n // We don't allow for pipes inside parentheses\n // to not break table pattern |(. foo |). bar |\n var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source\n // Opening and closing parentheses which are not a modifier\n // This pattern is necessary to prevent exponential backtracking\n var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function withModifier(source, flags) {\n return RegExp(\n source\n .replace(/<MOD>/g, function () {\n return '(?:' + modifierRegex + ')'\n })\n .replace(/<PAR>/g, function () {\n return '(?:' + parenthesesRegex + ')'\n }),\n flags || ''\n )\n }\n var modifierTokens = {\n css: {\n pattern: /\\{[^{}]+\\}/,\n inside: {\n rest: Prism.languages.css\n }\n },\n 'class-id': {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true,\n alias: 'attr-value'\n },\n lang: {\n pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n lookbehind: true,\n alias: 'attr-value'\n },\n // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n punctuation: /[\\\\\\/]\\d+|\\S/\n }\n var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n phrase: {\n pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n lookbehind: true,\n inside: {\n // h1. Header 1\n 'block-tag': {\n pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n inside: {\n modifier: {\n pattern: withModifier(\n /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n tag: /^[a-z]\\w*/,\n punctuation: /\\.$/\n }\n },\n // # List item\n // * List item\n list: {\n pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n inside: {\n modifier: {\n pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /^[*#]+/\n }\n },\n // | cell | cell | cell |\n table: {\n // Modifiers can be applied to the row: {color:red}.|1|2|3|\n // or the cell: |{color:red}.1|2|3|\n pattern: withModifier(\n /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n .source,\n 'm'\n ),\n inside: {\n modifier: {\n // Modifiers for rows after the first one are\n // preceded by a pipe and a line feed\n pattern: withModifier(\n /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n .source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /\\||^\\./\n }\n },\n inline: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n .source\n ),\n lookbehind: true,\n inside: {\n // Note: superscripts and subscripts are not handled specifically\n\n // *bold*, **bold**\n bold: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // _italic_, __italic__\n italic: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // ??cite??\n cite: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n lookbehind: true,\n alias: 'string'\n },\n // @code@\n code: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n // +inserted+\n inserted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n lookbehind: true\n },\n // -deleted-\n deleted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n lookbehind: true\n },\n // %span%\n span: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(\n /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /[*_%?@+\\-^~]+/\n }\n },\n // [alias]http://example.com\n 'link-ref': {\n pattern: /^\\[[^\\]]+\\]\\S+$/m,\n inside: {\n string: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\])\\S+$/,\n lookbehind: true\n },\n punctuation: /[\\[\\]]/\n }\n },\n // \"text\":http://example.com\n // \"text\":link-ref\n link: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n ),\n inside: {\n text: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(/(^\")<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[\":]/\n }\n },\n // !image.jpg!\n // !image.jpg(Title)!:http://example.com\n image: {\n pattern: withModifier(\n /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n .source\n ),\n inside: {\n source: {\n pattern: withModifier(\n /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n .source\n ),\n lookbehind: true,\n alias: 'url'\n },\n modifier: {\n pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[!:]/\n }\n },\n // Footnote[1]\n footnote: {\n pattern: /\\b\\[\\d+\\]/,\n alias: 'comment',\n inside: {\n punctuation: /\\[|\\]/\n }\n },\n // CSS(Cascading Style Sheet)\n acronym: {\n pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n inside: {\n comment: {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n // Prism(C)\n mark: {\n pattern: /\\b\\((?:C|R|TM)\\)/,\n alias: 'comment',\n inside: {\n punctuation: /[()]/\n }\n }\n }\n }\n }))\n var phraseInside = textile['phrase'].inside\n var nestedPatterns = {\n inline: phraseInside['inline'],\n link: phraseInside['link'],\n image: phraseInside['image'],\n footnote: phraseInside['footnote'],\n acronym: phraseInside['acronym'],\n mark: phraseInside['mark']\n }\n\n // Only allow alpha-numeric HTML tags, not XML tags\n textile.tag.pattern =\n /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i\n\n // Allow some nesting\n var phraseInlineInside = phraseInside['inline'].inside\n phraseInlineInside['bold'].inside = nestedPatterns\n phraseInlineInside['italic'].inside = nestedPatterns\n phraseInlineInside['inserted'].inside = nestedPatterns\n phraseInlineInside['deleted'].inside = nestedPatterns\n phraseInlineInside['span'].inside = nestedPatterns\n\n // Allow some styles inside table cells\n var phraseTableInside = phraseInside['table'].inside\n phraseTableInside['inline'] = nestedPatterns['inline']\n phraseTableInside['link'] = nestedPatterns['link']\n phraseTableInside['image'] = nestedPatterns['image']\n phraseTableInside['footnote'] = nestedPatterns['footnote']\n phraseTableInside['acronym'] = nestedPatterns['acronym']\n phraseTableInside['mark'] = nestedPatterns['mark']\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorRuby from './ruby.js'\nhaml.displayName = 'haml'\nhaml.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function haml(Prism) {\n Prism.register(refractorRuby)\n /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n\n ;(function (Prism) {\n Prism.languages.haml = {\n // Multiline stuff should appear before the rest\n\n 'multiline-comment': {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n lookbehind: true,\n alias: 'comment'\n },\n 'multiline-code': [\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n lookbehind: true,\n inside: Prism.languages.ruby\n }\n ],\n // See at the end of the file for known filters\n filter: {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n }\n }\n },\n markup: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n lookbehind: true\n },\n tag: {\n // Allows for one nested group of braces\n pattern:\n /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n lookbehind: true,\n inside: {\n attributes: [\n {\n // Lookbehind tries to prevent interpolations from breaking it all\n // Allows for one nested group of braces\n pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n lookbehind: true\n },\n 'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[=(),]/\n }\n },\n {\n pattern: /\\[[^\\]]+\\]/,\n inside: Prism.languages.ruby\n }\n ],\n punctuation: /[<>]/\n }\n },\n code: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n // Interpolations in plain text\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.ruby\n }\n }\n },\n punctuation: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n lookbehind: true\n }\n }\n var filter_pattern =\n '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+'\n\n // Non exhaustive list of available filters and associated languages\n var filters = [\n 'css',\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'erb',\n 'javascript',\n 'less',\n 'markdown',\n 'ruby',\n 'scss',\n 'textile'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('{{filter_name}}', function () {\n return filter.filter\n })\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n },\n text: {\n pattern: /[\\s\\S]+/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('haml', 'filter', all_filters)\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs', 'mustache']\n\n/** @type {import('../core.js').Syntax} */\nexport default function handlebars(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.handlebars = {\n comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n delimiter: {\n pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n boolean: /\\b(?:false|true)\\b/,\n block: {\n pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n lookbehind: true,\n alias: 'keyword'\n },\n brackets: {\n pattern: /\\[[^\\]]+\\]/,\n inside: {\n punctuation: /\\[|\\]/,\n variable: /[\\s\\S]+/\n }\n },\n punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'handlebars',\n handlebarsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(\n env,\n 'handlebars'\n )\n })\n Prism.languages.hbs = Prism.languages.handlebars\n Prism.languages.mustache = Prism.languages.handlebars\n })(Prism)\n}\n","// @ts-nocheck\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\n\n/** @type {import('../core.js').Syntax} */\nexport default function haskell(Prism) {\n Prism.languages.haskell = {\n comment: {\n pattern:\n /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n lookbehind: true\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n // decimal integers and floating point numbers | octal integers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n operator: [\n {\n // infix operator\n pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n greedy: true\n },\n {\n // function composition\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n },\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n //\n // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n ],\n // In Haskell, nearly everything is a variable, do not highlight these.\n hvariable: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n constant: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.hs = Prism.languages.haskell\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function haxe(Prism) {\n Prism.register(refractorClike)\n Prism.languages.haxe = Prism.languages.extend('clike', {\n string: {\n // Strings can be multi-line\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n lookbehind: true\n },\n // based on naming convention\n /\\b[A-Z]\\w*/\n ],\n // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n keyword:\n /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n greedy: true\n },\n operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n })\n Prism.languages.insertBefore('haxe', 'string', {\n 'string-interpolation': {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.haxe\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'class-name', {\n regex: {\n pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n greedy: true,\n inside: {\n 'regex-flags': /\\b[a-z]+$/,\n 'regex-source': {\n pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^~\\/|\\/$/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'keyword', {\n preprocessor: {\n pattern: /#(?:else|elseif|end|if)\\b.*/,\n alias: 'property'\n },\n metadata: {\n pattern: /@:?[\\w.]+/,\n alias: 'symbol'\n },\n reification: {\n pattern: /\\$(?:\\w+|(?=\\{))/,\n alias: 'important'\n }\n })\n}\n","// @ts-nocheck\nhcl.displayName = 'hcl'\nhcl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function hcl(Prism) {\n Prism.languages.hcl = {\n comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n heredoc: {\n pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n greedy: true,\n alias: 'string'\n },\n keyword: [\n {\n pattern:\n /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n inside: {\n type: {\n pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n {\n pattern:\n /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n inside: {\n type: {\n pattern:\n /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n /[\\w-]+(?=\\s+\\{)/\n ],\n property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n string: {\n pattern:\n /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n lookbehind: true,\n inside: {\n type: {\n pattern:\n /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n function: /\\w+(?=\\()/,\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n }\n }\n }\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:false|true)\\b/i,\n punctuation: /[=\\[\\]{}]/\n }\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function hlsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.hlsl = Prism.languages.extend('c', {\n // Regarding keywords and class names:\n // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n 'class-name': [\n Prism.languages.c['class-name'],\n /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n ],\n keyword: [\n // HLSL keyword\n /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/,\n // scalar, vector, and matrix types\n /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n ],\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n number:\n /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n}\n","// @ts-nocheck\nhoon.displayName = 'hoon'\nhoon.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function hoon(Prism) {\n Prism.languages.hoon = {\n comment: {\n pattern: /::.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'/,\n greedy: true\n },\n constant: /%(?:\\.[ny]|[\\w-]+)/,\n 'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n keyword:\n /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n }\n}\n","// @ts-nocheck\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function hpkp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n\n Prism.languages.hpkp = {\n directive: {\n pattern:\n /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","// @ts-nocheck\nhsts.displayName = 'hsts'\nhsts.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function hsts(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n\n Prism.languages.hsts = {\n directive: {\n pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","// @ts-nocheck\nuri.displayName = 'uri'\nuri.aliases = ['url']\n\n/** @type {import('../core.js').Syntax} */\nexport default function uri(Prism) {\n // https://tools.ietf.org/html/rfc3986#appendix-A\n\n Prism.languages.uri = {\n scheme: {\n pattern: /^[a-z][a-z0-9+.-]*:/im,\n greedy: true,\n inside: {\n 'scheme-delimiter': /:$/\n }\n },\n fragment: {\n pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'fragment-delimiter': /^#/\n }\n },\n query: {\n pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'query-delimiter': {\n pattern: /^\\?/,\n greedy: true\n },\n 'pair-delimiter': /[&;]/,\n pair: {\n pattern: /^[^=][\\s\\S]*/,\n inside: {\n key: /^[^=]+/,\n value: {\n pattern: /(^=)[\\s\\S]+/,\n lookbehind: true\n }\n }\n }\n }\n },\n authority: {\n pattern: RegExp(\n /^\\/\\//.source +\n // [ userinfo \"@\" ]\n /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source +\n // host\n ('(?:' +\n // IP-literal\n /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n .source +\n '|' +\n // IPv4address or registered name\n /[\\w\\-.~!$&'()*+,;=%]*/.source +\n ')') +\n // [ \":\" port ]\n /(?::\\d*)?/.source,\n 'm'\n ),\n inside: {\n 'authority-delimiter': /^\\/\\//,\n 'user-info-segment': {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n inside: {\n 'user-info-delimiter': /@$/,\n 'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n }\n },\n 'port-segment': {\n pattern: /:\\d*$/,\n inside: {\n 'port-delimiter': /^:/,\n port: /^\\d+/\n }\n },\n host: {\n pattern: /[\\s\\S]+/,\n inside: {\n 'ip-literal': {\n pattern: /^\\[[\\s\\S]+\\]$/,\n inside: {\n 'ip-literal-delimiter': /^\\[|\\]$/,\n 'ipv-future': /^v[\\s\\S]+/,\n 'ipv6-address': /^[\\s\\S]+/\n }\n },\n 'ipv4-address':\n /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n }\n }\n }\n },\n path: {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n inside: {\n 'path-separator': /\\//\n }\n }\n }\n Prism.languages.url = Prism.languages.uri\n}\n","// @ts-nocheck\nhttp.displayName = 'http'\nhttp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function http(Prism) {\n ;(function (Prism) {\n /**\n * @param {string} name\n * @returns {RegExp}\n */\n function headerValueOf(name) {\n return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n }\n Prism.languages.http = {\n 'request-line': {\n pattern:\n /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n inside: {\n // HTTP Method\n method: {\n pattern: /^[A-Z]+\\b/,\n alias: 'property'\n },\n // Request Target e.g. http://example.com, /path/to/file\n 'request-target': {\n pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n lookbehind: true,\n alias: 'url',\n inside: Prism.languages.uri\n },\n // HTTP Version\n 'http-version': {\n pattern: /^(\\s)HTTP\\/[\\d.]+/,\n lookbehind: true,\n alias: 'property'\n }\n }\n },\n 'response-status': {\n pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n inside: {\n // HTTP Version\n 'http-version': {\n pattern: /^HTTP\\/[\\d.]+/,\n alias: 'property'\n },\n // Status Code\n 'status-code': {\n pattern: /^(\\s)\\d+(?=\\s)/,\n lookbehind: true,\n alias: 'number'\n },\n // Reason Phrase\n 'reason-phrase': {\n pattern: /^(\\s).+/,\n lookbehind: true,\n alias: 'string'\n }\n }\n },\n header: {\n pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n inside: {\n 'header-value': [\n {\n pattern: headerValueOf(/Content-Security-Policy/.source),\n lookbehind: true,\n alias: ['csp', 'languages-csp'],\n inside: Prism.languages.csp\n },\n {\n pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n lookbehind: true,\n alias: ['hpkp', 'languages-hpkp'],\n inside: Prism.languages.hpkp\n },\n {\n pattern: headerValueOf(/Strict-Transport-Security/.source),\n lookbehind: true,\n alias: ['hsts', 'languages-hsts'],\n inside: Prism.languages.hsts\n },\n {\n pattern: headerValueOf(/[^:]+/.source),\n lookbehind: true\n }\n ],\n 'header-name': {\n pattern: /^[^:]+/,\n alias: 'keyword'\n },\n punctuation: /^:/\n }\n }\n }\n\n // Create a mapping of Content-Type headers to language definitions\n var langs = Prism.languages\n var httpLanguages = {\n 'application/javascript': langs.javascript,\n 'application/json': langs.json || langs.javascript,\n 'application/xml': langs.xml,\n 'text/xml': langs.xml,\n 'text/html': langs.html,\n 'text/css': langs.css,\n 'text/plain': langs.plain\n }\n\n // Declare which types can also be suffixes\n var suffixTypes = {\n 'application/json': true,\n 'application/xml': true\n }\n\n /**\n * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n *\n * @param {string} contentType\n * @returns {string}\n */\n function getSuffixPattern(contentType) {\n var suffix = contentType.replace(/^[a-z]+\\//, '')\n var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n return '(?:' + contentType + '|' + suffixPattern + ')'\n }\n\n // Insert each content type parser that has its associated language\n // currently loaded.\n var options\n for (var contentType in httpLanguages) {\n if (httpLanguages[contentType]) {\n options = options || {}\n var pattern = suffixTypes[contentType]\n ? getSuffixPattern(contentType)\n : contentType\n options[contentType.replace(/\\//g, '-')] = {\n pattern: RegExp(\n '(' +\n /content-type:\\s*/.source +\n pattern +\n /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n ')' +\n // This is a little interesting:\n // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n // the body does not start with a [\\w-] character (as headers do).\n /[^ \\t\\w-][\\s\\S]*/.source,\n 'i'\n ),\n lookbehind: true,\n inside: httpLanguages[contentType]\n }\n }\n }\n if (options) {\n Prism.languages.insertBefore('http', 'header', options)\n }\n })(Prism)\n}\n","// @ts-nocheck\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function ichigojam(Prism) {\n // according to the offical reference (EN)\n // https://ichigojam.net/IchigoJam-en.html\n Prism.languages.ichigojam = {\n comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n label: /(?:\\B@\\S+)/,\n operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n punctuation: /[\\[,;:()\\]]/\n }\n}\n","// @ts-nocheck\nicon.displayName = 'icon'\nicon.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function icon(Prism) {\n Prism.languages.icon = {\n comment: /#.*/,\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n 'builtin-keyword': {\n pattern:\n /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n alias: 'variable'\n },\n directive: {\n pattern: /\\$\\w+/,\n alias: 'builtin'\n },\n keyword:\n /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n operator:\n /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n punctuation: /[\\[\\](){},;]/\n }\n}\n","// @ts-nocheck\nicuMessageFormat.displayName = 'icu-message-format'\nicuMessageFormat.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function icuMessageFormat(Prism) {\n // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n\n ;(function (Prism) {\n /**\n * @param {string} source\n * @param {number} level\n * @returns {string}\n */\n function nested(source, level) {\n if (level <= 0) {\n return /[]/.source\n } else {\n return source.replace(/<SELF>/g, function () {\n return nested(source, level - 1)\n })\n }\n }\n var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n var escape = {\n pattern: /''/,\n greedy: true,\n alias: 'operator'\n }\n var string = {\n pattern: stringPattern,\n greedy: true,\n inside: {\n escape: escape\n }\n }\n var argumentSource = nested(\n /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n /<STR>/g,\n function () {\n return stringPattern.source\n }\n ),\n 8\n )\n var nestedMessage = {\n pattern: RegExp(argumentSource),\n inside: {\n message: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: null // see below\n },\n\n 'message-delimiter': {\n pattern: /./,\n alias: 'punctuation'\n }\n }\n }\n Prism.languages['icu-message-format'] = {\n argument: {\n pattern: RegExp(argumentSource),\n greedy: true,\n inside: {\n content: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^(\\s*)[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'choice-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\|/,\n range: {\n pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n lookbehind: true,\n inside: {\n operator: /[<#\\u2264]/,\n number: /\\S+/\n }\n },\n rest: null // see below\n }\n },\n\n 'plural-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern:\n /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n offset: /^offset:\\s*\\d+/,\n 'nested-message': nestedMessage,\n selector: {\n pattern: /=\\d+|[^{}:=,\\s]+/,\n inside: {\n keyword: /^(?:few|many|one|other|two|zero)$/\n }\n }\n }\n },\n 'select-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n 'nested-message': nestedMessage,\n selector: {\n pattern: /[^{}:=,\\s]+/,\n inside: {\n keyword: /^other$/\n }\n }\n }\n },\n keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n 'arg-type': {\n pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n alias: 'keyword'\n },\n 'arg-skeleton': {\n pattern: /(,\\s*)::[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'arg-style': {\n pattern:\n /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n lookbehind: true\n },\n 'arg-style-text': {\n pattern: RegExp(\n /(^\\s*,\\s*(?=\\S))/.source +\n nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n '$'\n ),\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /,/\n }\n },\n 'argument-delimiter': {\n pattern: /./,\n alias: 'operator'\n }\n }\n },\n escape: escape,\n string: string\n }\n nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n Prism.languages['icu-message-format'].argument.inside.content.inside[\n 'choice-style'\n ].inside.rest = Prism.languages['icu-message-format']\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorHaskell from './haskell.js'\nidris.displayName = 'idris'\nidris.aliases = ['idr']\n\n/** @type {import('../core.js').Syntax} */\nexport default function idris(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.idris = Prism.languages.extend('haskell', {\n comment: {\n pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n },\n keyword:\n /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n builtin: undefined\n })\n Prism.languages.insertBefore('idris', 'keyword', {\n 'import-statement': {\n pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.idr = Prism.languages.idris\n}\n","// @ts-nocheck\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\n\n/** @type {import('../core.js').Syntax} */\nexport default function ignore(Prism) {\n ;(function (Prism) {\n Prism.languages.ignore = {\n // https://git-scm.com/docs/gitignore\n comment: /^#.*/m,\n entry: {\n pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n alias: 'string',\n inside: {\n operator: /^!|\\*\\*?|\\?/,\n regex: {\n pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n lookbehind: true\n },\n punctuation: /\\//\n }\n }\n }\n Prism.languages.gitignore = Prism.languages.ignore\n Prism.languages.hgignore = Prism.languages.ignore\n Prism.languages.npmignore = Prism.languages.ignore\n })(Prism)\n}\n","// @ts-nocheck\ninform7.displayName = 'inform7'\ninform7.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function inform7(Prism) {\n Prism.languages.inform7 = {\n string: {\n pattern: /\"[^\"]*\"/,\n inside: {\n substitution: {\n pattern: /\\[[^\\[\\]]+\\]/,\n inside: {\n delimiter: {\n pattern: /\\[|\\]/,\n alias: 'punctuation'\n }\n // See rest below\n }\n }\n }\n },\n\n comment: {\n pattern: /\\[[^\\[\\]]+\\]/,\n greedy: true\n },\n title: {\n pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n alias: 'important'\n },\n number: {\n pattern:\n /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n lookbehind: true\n },\n verb: {\n pattern:\n /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n lookbehind: true\n },\n property: {\n pattern:\n /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n lookbehind: true,\n alias: 'symbol'\n },\n position: {\n pattern:\n /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n pattern:\n /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n lookbehind: true,\n alias: 'variable'\n },\n punctuation: /[.,:;(){}]/\n }\n Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n Prism.languages.inform7\n // We don't want the remaining text in the substitution to be highlighted as the string.\n Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n pattern: /\\S(?:\\s*\\S)*/,\n alias: 'comment'\n }\n}\n","// @ts-nocheck\nio.displayName = 'io'\nio.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function io(Prism) {\n Prism.languages.io = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n lookbehind: true,\n greedy: true\n },\n 'triple-quoted-string': {\n pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n builtin:\n /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n operator:\n /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","// @ts-nocheck\nj.displayName = 'j'\nj.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function j(Prism) {\n Prism.languages.j = {\n comment: {\n pattern: /\\bNB\\..*/,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n verb: {\n // Negative look-ahead prevents bad highlighting\n // of ^: ;. =. =: !. !:\n pattern:\n /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n alias: 'keyword'\n },\n number:\n /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n adverb: {\n pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n alias: 'builtin'\n },\n operator: /[=a][.:]|_\\./,\n conjunction: {\n pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n}\n","// @ts-nocheck\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function javadoclike(Prism) {\n ;(function (Prism) {\n var javaDocLike = (Prism.languages.javadoclike = {\n parameter: {\n pattern:\n /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n lookbehind: true\n },\n keyword: {\n // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n // @word, {@word}\n pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n lookbehind: true\n },\n punctuation: /[{}]/\n })\n\n /**\n * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n *\n * @param {string} lang the language add doc comment support to.\n * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n */\n function docCommentSupport(lang, callback) {\n var tokenName = 'doc-comment'\n var grammar = Prism.languages[lang]\n if (!grammar) {\n return\n }\n var token = grammar[tokenName]\n if (!token) {\n // add doc comment: /** */\n var definition = {}\n definition[tokenName] = {\n pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n alias: 'comment'\n }\n grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n token = grammar[tokenName]\n }\n if (token instanceof RegExp) {\n // convert regex to object\n token = grammar[tokenName] = {\n pattern: token\n }\n }\n if (Array.isArray(token)) {\n for (var i = 0, l = token.length; i < l; i++) {\n if (token[i] instanceof RegExp) {\n token[i] = {\n pattern: token[i]\n }\n }\n callback(token[i])\n }\n } else {\n callback(token)\n }\n }\n\n /**\n * Adds doc-comment support to the given languages for the given documentation language.\n *\n * @param {string[]|string} languages\n * @param {Object} docLanguage\n */\n function addSupport(languages, docLanguage) {\n if (typeof languages === 'string') {\n languages = [languages]\n }\n languages.forEach(function (lang) {\n docCommentSupport(lang, function (pattern) {\n if (!pattern.inside) {\n pattern.inside = {}\n }\n pattern.inside.rest = docLanguage\n })\n })\n }\n Object.defineProperty(javaDocLike, 'addSupport', {\n value: addSupport\n })\n javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJava from './java.js'\nscala.displayName = 'scala'\nscala.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function scala(Prism) {\n Prism.register(refractorJava)\n Prism.languages.scala = Prism.languages.extend('java', {\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword:\n /<-|=>|\\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\\b/,\n number:\n /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n builtin:\n /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n symbol: /'[^\\d\\s\\\\]\\w*/\n })\n Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n 'string-interpolation': {\n pattern:\n /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n greedy: true,\n inside: {\n id: {\n pattern: /^\\w+/,\n greedy: true,\n alias: 'function'\n },\n escape: {\n pattern: /\\\\\\$\"|\\$[$\"]/,\n greedy: true,\n alias: 'symbol'\n },\n interpolation: {\n pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n greedy: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.scala\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n delete Prism.languages.scala['class-name']\n delete Prism.languages.scala['function']\n delete Prism.languages.scala['constant']\n}\n","// @ts-nocheck\nimport refractorJava from './java.js'\nimport refractorJavadoclike from './javadoclike.js'\nimport refractorMarkup from './markup.js'\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function javadoc(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorJavadoclike)\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n var reference =\n /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n /<mem>/g,\n function () {\n return memberReference\n }\n )\n Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n Prism.languages.insertBefore('javadoc', 'keyword', {\n reference: {\n pattern: RegExp(\n /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n .source +\n '(?:' +\n reference +\n ')'\n ),\n lookbehind: true,\n inside: {\n function: {\n pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n lookbehind: true\n },\n field: {\n pattern: /(#\\s*)\\w+/,\n lookbehind: true\n },\n namespace: {\n pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n inside: {\n punctuation: /\\./\n }\n },\n 'class-name': /\\b[A-Z]\\w*/,\n keyword: Prism.languages.java.keyword,\n punctuation: /[#()[\\],.]/\n }\n },\n 'class-name': {\n // @param <T> the first generic type parameter\n pattern: /(@param\\s+)<[A-Z]\\w*>/,\n lookbehind: true,\n inside: {\n punctuation: /[.<>]/\n }\n },\n 'code-section': [\n {\n pattern:\n /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n lookbehind: true,\n inside: {\n code: {\n // there can't be any HTML inside of {@code} tags\n pattern: codeLinePattern,\n lookbehind: true,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n },\n {\n pattern:\n /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n lookbehind: true,\n inside: {\n line: {\n pattern: codeLinePattern,\n lookbehind: true,\n inside: {\n // highlight HTML tags and entities\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity,\n code: {\n // everything else is Java code\n pattern: /.+/,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n }\n }\n }\n ],\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity\n })\n Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n })(Prism)\n}\n","// @ts-nocheck\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function javastacktrace(Prism) {\n // Specification:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n\n Prism.languages.javastacktrace = {\n // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: com.example.myproject.MyProjectServletException\n // Caused by: MidLevelException: LowLevelException\n // Suppressed: Resource$CloseFailException: Resource ID = 0\n summary: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n lookbehind: true\n },\n // the current thread if the summary starts with 'Exception in thread'\n string: {\n pattern: /^(\\s*)\"[^\"]*\"/,\n lookbehind: true\n },\n exceptions: {\n pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n lookbehind: true,\n inside: {\n 'class-name': /[\\w$]+$/,\n namespace: /\\b[a-z]\\w*\\b/,\n punctuation: /\\./\n }\n },\n message: {\n pattern: /(:\\s*)\\S.*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /:/\n }\n },\n // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n // at java.base/java.lang.Class.forName0(Native Method)\n // at Util.<init>(Unknown Source)\n // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n // at MyClass.mash(MyClass.java:9)\n //\n // More information:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n //\n // A valid Java module name is defined as:\n // \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n //\n // A Java module version is defined by this class:\n // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n // This is the implementation of the `parse` method in JDK13:\n // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n 'stack-frame': {\n pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^(\\s*)at(?= )/,\n lookbehind: true\n },\n source: [\n // (Main.java:15)\n // (Main.scala:15)\n {\n pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n lookbehind: true,\n inside: {\n file: /^\\w+\\.\\w+/,\n punctuation: /:/,\n 'line-number': {\n pattern: /\\b\\d+\\b/,\n alias: 'number'\n }\n }\n },\n // (Unknown Source)\n // (Native Method)\n // (...something...)\n {\n pattern: /(\\()[^()]*(?=\\))/,\n lookbehind: true,\n inside: {\n keyword: /^(?:Native Method|Unknown Source)$/\n }\n }\n ],\n 'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n function: /(?:<init>|[\\w$]+)(?=\\()/,\n 'class-loader': {\n pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /\\./\n }\n },\n module: {\n pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n lookbehind: true,\n inside: {\n version: {\n pattern: /(@)[\\s\\S]+/,\n lookbehind: true,\n alias: 'number'\n },\n punctuation: /[@.]/\n }\n },\n namespace: {\n pattern: /(?:\\b[a-z]\\w*\\.)+/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()/.]/\n }\n },\n // ... 32 more\n // ... 32 common frames omitted\n more: {\n pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\.{3}/,\n number: /\\d+/,\n keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n }\n }\n }\n}\n","// @ts-nocheck\njexl.displayName = 'jexl'\njexl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jexl(Prism) {\n Prism.languages.jexl = {\n string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n transform: {\n pattern:\n /(\\|\\s*)[a-zA-Zа-ÑÐ-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-ÑÐ-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n alias: 'function',\n lookbehind: true\n },\n function:\n /[a-zA-Zа-ÑÐ-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-ÑÐ-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\bin\\b/,\n punctuation: /[{}[\\](),.]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\njolie.displayName = 'jolie'\njolie.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jolie(Prism) {\n Prism.register(refractorClike)\n Prism.languages.jolie = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern:\n /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n punctuation: /[()[\\]{},;.:]/,\n builtin:\n /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n })\n Prism.languages.insertBefore('jolie', 'keyword', {\n aggregates: {\n pattern:\n /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n lookbehind: true,\n inside: {\n keyword: /\\bwith\\b/,\n 'class-name': /\\w+/,\n punctuation: /,/\n }\n },\n redirects: {\n pattern:\n /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n lookbehind: true,\n inside: {\n punctuation: /,/,\n 'class-name': /\\w+/,\n operator: /=>/\n }\n },\n property: {\n pattern:\n /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n }\n })\n}\n","// @ts-nocheck\njq.displayName = 'jq'\njq.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jq(Prism) {\n ;(function (Prism) {\n var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var string = RegExp(\n /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n /__/g,\n function () {\n return interpolation\n }\n )\n )\n var stringInterpolation = {\n interpolation: {\n pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: null // see below\n },\n\n punctuation: /^\\\\\\(|\\)$/\n }\n }\n }\n var jq = (Prism.languages.jq = {\n comment: /#.*/,\n property: {\n pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n string: {\n pattern: string,\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n function: {\n pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n lookbehind: true\n },\n variable: /\\B\\$\\w+/,\n 'property-literal': {\n pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n operator: [\n {\n pattern: /\\|=?/,\n alias: 'pipe'\n },\n /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n ],\n 'c-style-function': {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n alias: 'function'\n },\n punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n dot: {\n pattern: /\\./,\n alias: 'important'\n }\n })\n stringInterpolation.interpolation.inside.content.inside = jq\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\njsTemplates.displayName = 'js-templates'\njsTemplates.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jsTemplates(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n var templateString = Prism.languages.javascript['template-string']\n\n // see the pattern in prism-javascript.js\n var templateLiteralPattern = templateString.pattern.source\n var interpolationObject = templateString.inside['interpolation']\n var interpolationPunctuationObject =\n interpolationObject.inside['interpolation-punctuation']\n var interpolationPattern = interpolationObject.pattern.source\n\n /**\n * Creates a new pattern to match a template string with a special tag.\n *\n * This will return `undefined` if there is no grammar with the given language id.\n *\n * @param {string} language The language id of the embedded language. E.g. `markdown`.\n * @param {string} tag The regex pattern to match the tag.\n * @returns {object | undefined}\n * @example\n * createTemplate('css', /\\bcss/.source);\n */\n function createTemplate(language, tag) {\n if (!Prism.languages[language]) {\n return undefined\n }\n return {\n pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n lookbehind: true,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'embedded-code': {\n pattern: /[\\s\\S]+/,\n alias: language\n }\n }\n }\n }\n Prism.languages.javascript['template-string'] = [\n // styled-jsx:\n // css`a { color: #25F; }`\n // styled-components:\n // styled.h1`color: red;`\n createTemplate(\n 'css',\n /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n .source\n ),\n // html`<p></p>`\n // div.innerHTML = `<p></p>`\n createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source),\n // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n createTemplate('svg', /\\bsvg/.source),\n // md`# h1`, markdown`## h2`\n createTemplate('markdown', /\\b(?:markdown|md)/.source),\n // gql`...`, graphql`...`, graphql.experimental`...`\n createTemplate(\n 'graphql',\n /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n ),\n // sql`...`\n createTemplate('sql', /\\bsql/.source),\n // vanilla template string\n templateString\n ].filter(Boolean)\n\n /**\n * Returns a specific placeholder literal for the given language.\n *\n * @param {number} counter\n * @param {string} language\n * @returns {string}\n */\n function getPlaceholder(counter, language) {\n return '___' + language.toUpperCase() + '_' + counter + '___'\n }\n\n /**\n * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n *\n * @param {string} code\n * @param {any} grammar\n * @param {string} language\n * @returns {(string|Token)[]}\n */\n function tokenizeWithHooks(code, grammar, language) {\n var env = {\n code: code,\n grammar: grammar,\n language: language\n }\n Prism.hooks.run('before-tokenize', env)\n env.tokens = Prism.tokenize(env.code, env.grammar)\n Prism.hooks.run('after-tokenize', env)\n return env.tokens\n }\n\n /**\n * Returns the token of the given JavaScript interpolation expression.\n *\n * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n * @returns {Token}\n */\n function tokenizeInterpolationExpression(expression) {\n var tempGrammar = {}\n tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n\n /** @type {Array} */\n var tokens = Prism.tokenize(expression, tempGrammar)\n if (tokens.length === 3) {\n /**\n * The token array will look like this\n * [\n * [\"interpolation-punctuation\", \"${\"]\n * \"...\" // JavaScript expression of the interpolation\n * [\"interpolation-punctuation\", \"}\"]\n * ]\n */\n\n var args = [1, 1]\n args.push.apply(\n args,\n tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n )\n tokens.splice.apply(tokens, args)\n }\n return new Prism.Token(\n 'interpolation',\n tokens,\n interpolationObject.alias,\n expression\n )\n }\n\n /**\n * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n *\n * This function has 3 phases:\n *\n * 1. Replace all JavaScript interpolation expression with a placeholder.\n * The placeholder will have the syntax of a identify of the target language.\n * 2. Tokenize the code with placeholders.\n * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n * The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n * tokenized as two tokens by the grammar of the embedded language.\n *\n * @param {string} code\n * @param {object} grammar\n * @param {string} language\n * @returns {Token}\n */\n function tokenizeEmbedded(code, grammar, language) {\n // 1. First filter out all interpolations\n\n // because they might be escaped, we need a lookbehind, so we use Prism\n /** @type {(Token|string)[]} */\n var _tokens = Prism.tokenize(code, {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n lookbehind: true\n }\n })\n\n // replace all interpolations with a placeholder which is not in the code already\n var placeholderCounter = 0\n /** @type {Object<string, string>} */\n var placeholderMap = {}\n var embeddedCode = _tokens\n .map(function (token) {\n if (typeof token === 'string') {\n return token\n } else {\n var interpolationExpression = token.content\n var placeholder\n while (\n code.indexOf(\n (placeholder = getPlaceholder(placeholderCounter++, language))\n ) !== -1\n ) {\n /* noop */\n }\n placeholderMap[placeholder] = interpolationExpression\n return placeholder\n }\n })\n .join('')\n\n // 2. Tokenize the embedded code\n\n var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language)\n\n // 3. Re-insert the interpolation\n\n var placeholders = Object.keys(placeholderMap)\n placeholderCounter = 0\n\n /**\n *\n * @param {(Token|string)[]} tokens\n * @returns {void}\n */\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n if (placeholderCounter >= placeholders.length) {\n return\n }\n var token = tokens[i]\n if (typeof token === 'string' || typeof token.content === 'string') {\n var placeholder = placeholders[placeholderCounter]\n var s =\n typeof token === 'string'\n ? token\n : /** @type {string} */ token.content\n var index = s.indexOf(placeholder)\n if (index !== -1) {\n ++placeholderCounter\n var before = s.substring(0, index)\n var middle = tokenizeInterpolationExpression(\n placeholderMap[placeholder]\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push(before)\n }\n replacement.push(middle)\n if (after) {\n var afterTokens = [after]\n walkTokens(afterTokens)\n replacement.push.apply(replacement, afterTokens)\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n i += replacement.length - 1\n } else {\n token.content = replacement\n }\n }\n } else {\n var content = token.content\n if (Array.isArray(content)) {\n walkTokens(content)\n } else {\n walkTokens([content])\n }\n }\n }\n }\n walkTokens(embeddedTokens)\n return new Prism.Token(\n language,\n embeddedTokens,\n 'language-' + language,\n code\n )\n }\n\n /**\n * The languages for which JS templating will handle tagged template literals.\n *\n * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n */\n var supportedLanguages = {\n javascript: true,\n js: true,\n typescript: true,\n ts: true,\n jsx: true,\n tsx: true\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (!(env.language in supportedLanguages)) {\n return\n }\n\n /**\n * Finds and tokenizes all template strings with an embedded languages.\n *\n * @param {(Token | string)[]} tokens\n * @returns {void}\n */\n function findTemplateStrings(tokens) {\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (typeof token === 'string') {\n continue\n }\n var content = token.content\n if (!Array.isArray(content)) {\n if (typeof content !== 'string') {\n findTemplateStrings([content])\n }\n continue\n }\n if (token.type === 'template-string') {\n /**\n * A JavaScript template-string token will look like this:\n *\n * [\"template-string\", [\n * [\"template-punctuation\", \"`\"],\n * (\n * An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n * or\n * [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n * It also has an alias which is the language of the embedded code.\n * ),\n * [\"template-punctuation\", \"`\"]\n * ]]\n */\n\n var embedded = content[1]\n if (\n content.length === 3 &&\n typeof embedded !== 'string' &&\n embedded.type === 'embedded-code'\n ) {\n // get string content\n var code = stringContent(embedded)\n var alias = embedded.alias\n var language = Array.isArray(alias) ? alias[0] : alias\n var grammar = Prism.languages[language]\n if (!grammar) {\n // the embedded language isn't registered.\n continue\n }\n content[1] = tokenizeEmbedded(code, grammar, language)\n }\n } else {\n findTemplateStrings(content)\n }\n }\n }\n findTemplateStrings(env.tokens)\n })\n\n /**\n * Returns the string content of a token or token stream.\n *\n * @param {string | Token | (string | Token)[]} value\n * @returns {string}\n */\n function stringContent(value) {\n if (typeof value === 'string') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(stringContent).join('')\n } else {\n return stringContent(value.content)\n }\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJavadoclike from './javadoclike.js'\nimport refractorJavascript from './javascript.js'\nimport refractorTypescript from './typescript.js'\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jsdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorJavascript)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var javascript = Prism.languages.javascript\n var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n var parameterPrefix =\n '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n // @param {string} foo - foo bar\n pattern: RegExp(\n parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('jsdoc', 'keyword', {\n 'optional-parameter': {\n // @param {string} [baz.foo=\"bar\"] foo bar\n pattern: RegExp(\n parameterPrefix +\n /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n code: {\n pattern: /(=)[\\s\\S]*(?=\\]$)/,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n },\n punctuation: /[=[\\]]/\n }\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n /<TYPE>/g,\n function () {\n return type\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n lookbehind: true,\n inside: {\n string: javascript.string,\n number: javascript.number,\n boolean: javascript.boolean,\n keyword: Prism.languages.typescript.keyword,\n operator: /=>|\\.\\.\\.|[&|?:*]/,\n punctuation: /[.,;=<>{}()[\\]]/\n }\n }\n ],\n example: {\n pattern:\n /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n lookbehind: true,\n inside: {\n code: {\n pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n }\n }\n }\n })\n Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\n\n/** @type {import('../core.js').Syntax} */\nexport default function n4js(Prism) {\n Prism.register(refractorJavascript)\n Prism.languages.n4js = Prism.languages.extend('javascript', {\n // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n keyword:\n /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n })\n Prism.languages.insertBefore('n4js', 'constant', {\n // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n annotation: {\n pattern: /@+\\w+/,\n alias: 'operator'\n }\n })\n Prism.languages.n4jsd = Prism.languages.n4js\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\njsExtras.displayName = 'js-extras'\njsExtras.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jsExtras(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp(\n '(\\\\.\\\\s*)' +\n Prism.languages.javascript['function-variable'].pattern.source\n ),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp(\n '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n ),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [\n {\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern:\n /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n alias: 'class-name'\n },\n {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }\n ]\n })\n\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function withId(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n }),\n flags\n )\n }\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(\n /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(\n /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n })\n Prism.languages.javascript['keyword'].unshift(\n {\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n },\n {\n pattern:\n /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n },\n {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n },\n {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n }\n )\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern:\n /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n })\n\n // add 'maybe-class-name' to tokens which might be a class name\n var maybeClassNameTokens = [\n 'function',\n 'function-variable',\n 'method',\n 'method-variable',\n 'property-access'\n ]\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i]\n var value = Prism.languages.javascript[token]\n\n // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n }\n\n // keep in mind that we don't support arrays\n\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJson from './json.js'\njson5.displayName = 'json5'\njson5.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function json5(Prism) {\n Prism.register(refractorJson)\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n Prism.languages.json5 = Prism.languages.extend('json', {\n property: [\n {\n pattern: RegExp(string.source + '(?=\\\\s*:)'),\n greedy: true\n },\n {\n pattern:\n /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n alias: 'unquoted'\n }\n ],\n string: {\n pattern: string,\n greedy: true\n },\n number:\n /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJson from './json.js'\njsonp.displayName = 'jsonp'\njsonp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jsonp(Prism) {\n Prism.register(refractorJson)\n Prism.languages.jsonp = Prism.languages.extend('json', {\n punctuation: /[{}[\\]();,.]/\n })\n Prism.languages.insertBefore('jsonp', 'punctuation', {\n function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n })\n}\n","// @ts-nocheck\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jsstacktrace(Prism) {\n Prism.languages.jsstacktrace = {\n 'error-message': {\n pattern: /^\\S.*/m,\n alias: 'string'\n },\n 'stack-frame': {\n pattern: /(^[ \\t]+)at[ \\t].*/m,\n lookbehind: true,\n inside: {\n 'not-my-code': {\n pattern:\n /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n alias: 'comment'\n },\n filename: {\n pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n lookbehind: true,\n alias: 'url'\n },\n function: {\n pattern:\n /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()]/,\n keyword: /\\b(?:at|new)\\b/,\n alias: {\n pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n alias: 'variable'\n },\n 'line-number': {\n pattern: /:\\d+(?::\\d+)?\\b/,\n alias: 'number',\n inside: {\n punctuation: /:/\n }\n }\n }\n }\n }\n}\n","// @ts-nocheck\njulia.displayName = 'julia'\njulia.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function julia(Prism) {\n Prism.languages.julia = {\n comment: {\n // support one level of nested comments\n // https://github.com/JuliaLang/julia/pull/6128\n pattern:\n /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n lookbehind: true\n },\n regex: {\n // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n greedy: true\n },\n string: {\n // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n pattern:\n /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n greedy: true\n },\n char: {\n // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n operator:\n /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n punctuation: /::?|[{}[\\]();,.?]/,\n // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n }\n}\n","// @ts-nocheck\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function keepalived(Prism) {\n Prism.languages.keepalived = {\n comment: {\n pattern: /[#!].*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n lookbehind: true,\n greedy: true\n },\n // support IPv4, IPv6, subnet mask\n ip: {\n pattern: RegExp(\n /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n /<ipv4>/g,\n function () {\n return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n .source\n }\n ),\n 'i'\n ),\n alias: 'number'\n },\n // support *nix / Windows, directory / file\n path: {\n pattern:\n /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n lookbehind: true,\n alias: 'string'\n },\n variable: /\\$\\{?\\w+\\}?/,\n email: {\n pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n alias: 'string'\n },\n 'conditional-configuration': {\n pattern: /@\\^?[\\w-]+/,\n alias: 'variable'\n },\n operator: /=/,\n property:\n /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n constant:\n /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n number: {\n pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n lookbehind: true\n },\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\{\\}]/\n }\n}\n","// @ts-nocheck\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function keyman(Prism) {\n Prism.languages.keyman = {\n comment: {\n pattern: /\\bc .*/i,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n 'virtual-key': {\n pattern:\n /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n greedy: true,\n alias: 'function' // alias for styles\n },\n\n // https://help.keyman.com/developer/language/guide/headers\n 'header-keyword': {\n pattern: /&\\w+/,\n alias: 'bold' // alias for styles\n },\n\n 'header-statement': {\n pattern:\n /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n alias: 'bold' // alias for styles\n },\n\n 'rule-keyword': {\n pattern:\n /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n alias: 'keyword'\n },\n 'structural-keyword': {\n pattern:\n /\\b(?:ansi|begin|group|match|newcontext|nomatch|postkeystroke|readonly|unicode|using keys)\\b/i,\n alias: 'keyword'\n },\n 'compile-target': {\n pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n alias: 'property'\n },\n // U+####, x###, d### characters and numbers\n number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n operator: /[+>\\\\$]|\\.\\./,\n punctuation: /[()=,]/\n }\n}\n","// @ts-nocheck\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\n\n/** @type {import('../core.js').Syntax} */\nexport default function kumir(Prism) {\n /* eslint-disable regexp/no-dupe-characters-character-class */\n ;(function (Prism) {\n /**\n * Regular expression for characters that are not allowed in identifiers.\n *\n * @type {string}\n */\n var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n\n /**\n * Surround a regular expression for IDs with patterns for non-ID sequences.\n *\n * @param {string} pattern A regular expression for identifiers.\n * @param {string} [flags] The regular expression flags.\n * @returns {RegExp} A wrapped regular expression for identifiers.\n */\n function wrapId(pattern, flags) {\n return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n }\n Prism.languages.kumir = {\n comment: {\n pattern: /\\|.*/\n },\n prolog: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n greedy: true\n },\n boolean: {\n pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n lookbehind: true\n },\n 'operator-word': {\n pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n 'system-variable': {\n pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n type: [\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:вещ|лит|лог|Ñим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true,\n alias: 'builtin'\n },\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:компл|Ñканкод|файл|цвет)(?=[<nonId>]|$)/.source\n ),\n lookbehind: true,\n alias: 'important'\n }\n ],\n /**\n * Should be performed after searching for type names because of \"таб\".\n * \"таб\" is a reserved word, but never used without a preceding type name.\n * \"ÐÐЗÐÐЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n */\n keyword: {\n pattern: wrapId(\n /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вÑ[её]|выбор|вывод|выход|дано|длÑ|до|дÑ|еÑли|иначе|иÑп|иÑпользовать|кон(?:(?:\\x20+|_)иÑп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нÑ|нц|от|пауза|пока|при|раза?|рез|Ñтоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for reserved words. */\n name: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: wrapId(\n /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for names. */\n number: {\n pattern: wrapId(\n /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n /** Should be performed after searching for words. */\n punctuation: /:=|[(),:;\\[\\]]/,\n /**\n * Should be performed after searching for\n * - numeric constants (because of \"+\" and \"-\");\n * - punctuation marks (because of \":=\" and \"=\").\n */\n 'operator-char': {\n pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n alias: 'operator'\n }\n }\n Prism.languages.kum = Prism.languages.kumir\n })(Prism)\n}\n","// @ts-nocheck\nkusto.displayName = 'kusto'\nkusto.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function kusto(Prism) {\n Prism.languages.kusto = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern:\n /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n greedy: true\n },\n verb: {\n pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n command: {\n pattern: /\\.[a-z][a-z\\d-]*\\b/,\n alias: 'keyword'\n },\n 'class-name':\n /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n keyword:\n /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n boolean: /\\b(?:false|null|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n datetime: [\n {\n // RFC 822 + RFC 850\n pattern:\n /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n alias: 'number'\n },\n {\n // ISO 8601\n pattern:\n /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n alias: 'number'\n }\n ],\n number:\n /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n punctuation: /[()\\[\\]{},;.:]/\n }\n}\n","// @ts-nocheck\nlatex.displayName = 'latex'\nlatex.aliases = ['context', 'tex']\n\n/** @type {import('../core.js').Syntax} */\nexport default function latex(Prism) {\n ;(function (Prism) {\n var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n var insideEqu = {\n 'equation-command': {\n pattern: funcPattern,\n alias: 'regex'\n }\n }\n Prism.languages.latex = {\n comment: /%.*/,\n // the verbatim environment prints whitespace to the document\n cdata: {\n pattern:\n /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true\n },\n /*\n * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n * (all are multiline)\n */\n equation: [\n {\n pattern:\n /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n inside: insideEqu,\n alias: 'string'\n },\n {\n pattern:\n /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true,\n inside: insideEqu,\n alias: 'string'\n }\n ],\n /*\n * arguments which are keywords or references are highlighted\n * as keywords\n */\n keyword: {\n pattern:\n /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n url: {\n pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n /*\n * section or chapter headlines are highlighted as bold so that\n * they stand out more\n */\n headline: {\n pattern:\n /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true,\n alias: 'class-name'\n },\n function: {\n pattern: funcPattern,\n alias: 'selector'\n },\n punctuation: /[[\\]{}&]/\n }\n Prism.languages.tex = Prism.languages.latex\n Prism.languages.context = Prism.languages.latex\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nimport refractorMarkupTemplating from './markup-templating.js'\nimport refractorPhp from './php.js'\nlatte.displayName = 'latte'\nlatte.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function latte(Prism) {\n Prism.register(refractorClike)\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n Prism.languages.latte = {\n comment: /^\\{\\*[\\s\\S]*/,\n 'latte-tag': {\n // https://latte.nette.org/en/tags\n pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n lookbehind: true,\n alias: 'important'\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n alias: 'punctuation'\n },\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n var markupLatte = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n 'n-attr': {\n pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n inside: {\n 'attr-name': {\n pattern: /^[^\\s=]+/,\n alias: 'important'\n },\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ],\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.php\n }\n }\n }\n }\n }\n },\n markupLatte.tag\n )\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'latte') {\n return\n }\n var lattePattern =\n /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'latte',\n lattePattern\n )\n env.grammar = markupLatte\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n })\n })(Prism)\n}\n","// @ts-nocheck\nscheme.displayName = 'scheme'\nscheme.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function scheme(Prism) {\n ;(function (Prism) {\n Prism.languages.scheme = {\n // this supports \"normal\" single-line comments:\n // ; comment\n // and (potentially nested) multiline comments:\n // #| comment #| nested |# still comment |#\n // (only 1 level of nesting is supported)\n comment:\n /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n symbol: {\n pattern: /'[^()\\[\\]#'\\s]+/,\n greedy: true\n },\n char: {\n pattern:\n /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n greedy: true\n },\n 'lambda-parameter': [\n // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n {\n pattern:\n /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n lookbehind: true\n },\n {\n pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n lookbehind: true\n }\n ],\n keyword: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n builtin: {\n // all functions of the base library of R7RS plus some of built-ins of R5Rs\n pattern:\n /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n operator: {\n pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n number: {\n // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n //\n // <number> := <num 2>|<num 8>|<num 10>|<num 16>\n // <num R> := <prefix R><complex R>\n // <complex R> := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n // <real R> := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n // <ureal R> := <uint R>(?:\\/<uint R>)?\n // | <decimal R>\n //\n // <decimal 10> := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n // <uint R> := <digit R>+\n // <prefix R> := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n // <radix 2> := #b\n // <radix 8> := #o\n // <radix 10> := (?:#d)?\n // <radix 16> := #x\n // <digit 2> := [01]\n // <digit 8> := [0-7]\n // <digit 10> := \\d\n // <digit 16> := [0-9a-f]\n //\n // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n // pattern:\n pattern: RegExp(\n SortedBNF({\n '<ureal dec>':\n /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n '<complex dec>':\n /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n .source,\n '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n '<complex box>':\n /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n .source,\n '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n .source,\n '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n .source\n }),\n 'i'\n ),\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n function: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n lookbehind: true,\n greedy: true\n },\n punctuation: /[()\\[\\]']/\n }\n\n /**\n * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n *\n * @param {Record<string, string>} grammar\n * @returns {string}\n */\n function SortedBNF(grammar) {\n for (var key in grammar) {\n grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n return '(?:' + grammar[key].trim() + ')'\n })\n }\n // return the last item\n return grammar[key]\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorScheme from './scheme.js'\nlilypond.displayName = 'lilypond'\nlilypond.aliases = ['ly']\n\n/** @type {import('../core.js').Syntax} */\nexport default function lilypond(Prism) {\n Prism.register(refractorScheme)\n ;(function (Prism) {\n var schemeExpression =\n /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n .source\n // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n // For some reason, this can't be 4\n var recursivenessLog2 = 5\n for (var i = 0; i < recursivenessLog2; i++) {\n schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n return schemeExpression\n })\n }\n schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n var lilypond = (Prism.languages.lilypond = {\n comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n 'embedded-scheme': {\n pattern: RegExp(\n /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n /<expr>/g,\n function () {\n return schemeExpression\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n scheme: {\n pattern: /^(#)[\\s\\S]+$/,\n lookbehind: true,\n alias: 'language-scheme',\n inside: {\n 'embedded-lilypond': {\n pattern: /#\\{[\\s\\S]*?#\\}/,\n greedy: true,\n inside: {\n punctuation: /^#\\{|#\\}$/,\n lilypond: {\n pattern: /[\\s\\S]+/,\n alias: 'language-lilypond',\n inside: null // see below\n }\n }\n },\n\n rest: Prism.languages.scheme\n }\n },\n punctuation: /#/\n }\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\\\new\\s+)[\\w-]+/,\n lookbehind: true\n },\n keyword: {\n pattern: /\\\\[a-z][-\\w]*/i,\n inside: {\n punctuation: /^\\\\/\n }\n },\n operator: /[=|]|<<|>>/,\n punctuation: {\n pattern:\n /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\/\\d+)?\\b/\n })\n lilypond['embedded-scheme'].inside['scheme'].inside[\n 'embedded-lilypond'\n ].inside['lilypond'].inside = lilypond\n Prism.languages.ly = lilypond\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nliquid.displayName = 'liquid'\nliquid.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function liquid(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.liquid = {\n comment: {\n pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n lookbehind: true\n },\n delimiter: {\n pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n keyword:\n /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n object:\n /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n function: [\n {\n pattern: /(\\|\\s*)\\w+/,\n lookbehind: true,\n alias: 'filter'\n },\n {\n // array functions\n pattern: /(\\.\\s*)(?:first|last|size)/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|nil|true)\\b/,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n punctuation: /[.,\\[\\]()]/,\n empty: {\n pattern: /\\bempty\\b/,\n alias: 'keyword'\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var liquidPattern =\n /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n var insideRaw = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'liquid',\n liquidPattern,\n function (match) {\n var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n if (tagMatch) {\n var tag = tagMatch[1]\n if (tag === 'raw' && !insideRaw) {\n insideRaw = true\n return true\n } else if (tag === 'endraw') {\n insideRaw = false\n return true\n }\n }\n return !insideRaw\n }\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n })\n}\n","// @ts-nocheck\nlisp.displayName = 'lisp'\nlisp.aliases = ['elisp', 'emacs', 'emacs-lisp']\n\n/** @type {import('../core.js').Syntax} */\nexport default function lisp(Prism) {\n ;(function (Prism) {\n /**\n * Functions to construct regular expressions\n * e.g. (interactive ... or (interactive)\n *\n * @param {string} name\n * @returns {RegExp}\n */\n function simple_form(name) {\n return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n }\n /**\n * booleans and numbers\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function primitive(pattern) {\n return RegExp(\n /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n )\n }\n\n // Patterns in regular expressions\n\n // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n // & and : are excluded as they are usually used for special purposes\n var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source\n // symbol starting with & used in function arguments\n var marker = '&' + symbol\n // Open parenthesis for look-behind\n var par = '(\\\\()'\n var endpar = '(?=\\\\))'\n // End the pattern with look-ahead space\n var space = '(?=\\\\s)'\n var nestedPar =\n /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n .source\n var language = {\n // Three or four semicolons are considered a heading.\n // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n heading: {\n pattern: /;;;.*/,\n alias: ['comment', 'title']\n },\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true,\n inside: {\n argument: /[-A-Z]+(?=[.,\\s])/,\n symbol: RegExp('`' + symbol + \"'\")\n }\n },\n 'quoted-symbol': {\n pattern: RegExp(\"#?'\" + symbol),\n alias: ['variable', 'symbol']\n },\n 'lisp-property': {\n pattern: RegExp(':' + symbol),\n alias: 'property'\n },\n splice: {\n pattern: RegExp(',@?' + symbol),\n alias: ['symbol', 'variable']\n },\n keyword: [\n {\n pattern: RegExp(\n par +\n '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n space\n ),\n lookbehind: true\n },\n {\n pattern: RegExp(\n par +\n '(?:append|by|collect|concat|do|finally|for|in|return)' +\n space\n ),\n lookbehind: true\n }\n ],\n declare: {\n pattern: simple_form(/declare/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n interactive: {\n pattern: simple_form(/interactive/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n boolean: {\n pattern: primitive(/nil|t/.source),\n lookbehind: true\n },\n number: {\n pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n lookbehind: true\n },\n defvar: {\n pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n lookbehind: true,\n inside: {\n keyword: /^def[a-z]+/,\n variable: RegExp(symbol)\n }\n },\n defun: {\n pattern: RegExp(\n par +\n /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n symbol +\n /\\s+\\(/.source +\n nestedPar +\n /\\)/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^(?:cl-)?def\\S+/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n function: {\n pattern: RegExp('(^\\\\s)' + symbol),\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n lambda: {\n pattern: RegExp(\n par +\n 'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n symbol +\n '(?:\\\\s+&?' +\n symbol +\n ')*\\\\s*)?\\\\)'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^lambda/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n punctuation: /[()]/\n }\n },\n car: {\n pattern: RegExp(par + symbol),\n lookbehind: true\n },\n punctuation: [\n // open paren, brackets, and close paren\n /(?:['`,]?\\(|[)\\[\\]])/,\n // cons\n {\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }\n ]\n }\n var arg = {\n 'lisp-marker': RegExp(marker),\n varform: {\n pattern: RegExp(\n /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n ),\n inside: language\n },\n argument: {\n pattern: RegExp(/(^|[\\s(])/.source + symbol),\n lookbehind: true,\n alias: 'variable'\n },\n rest: language\n }\n var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n var arglist = {\n pattern: RegExp(par + nestedPar + endpar),\n lookbehind: true,\n inside: {\n 'rest-vars': {\n pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n inside: arg\n },\n 'other-marker-vars': {\n pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n inside: arg\n },\n keys: {\n pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n inside: arg\n },\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n }\n language['lambda'].inside.arguments = arglist\n language['defun'].inside.arguments = Prism.util.clone(arglist)\n language['defun'].inside.arguments.inside.sublist = arglist\n Prism.languages.lisp = language\n Prism.languages.elisp = language\n Prism.languages.emacs = language\n Prism.languages['emacs-lisp'] = language\n })(Prism)\n}\n","// @ts-nocheck\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function livescript(Prism) {\n Prism.languages.livescript = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n ],\n 'interpolated-string': {\n /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n lookbehind: true\n },\n interpolation: {\n pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^#\\{|\\}$/,\n alias: 'variable'\n }\n // See rest below\n }\n },\n\n string: /[\\s\\S]+/\n }\n },\n string: [\n {\n pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n {\n pattern: /<\\[[\\s\\S]*?\\]>/,\n greedy: true\n },\n /\\\\[^\\s,;\\])}]+/\n ],\n regex: [\n {\n pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n greedy: true,\n inside: {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n }\n },\n {\n pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n greedy: true\n }\n ],\n keyword: {\n pattern:\n /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n lookbehind: true\n },\n 'keyword-operator': {\n pattern:\n /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n lookbehind: true,\n alias: 'operator'\n },\n boolean: {\n pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n lookbehind: true\n },\n argument: {\n // Don't match .&. nor &&\n pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n lookbehind: true,\n alias: 'variable'\n },\n number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n operator: [\n // Spaced .\n {\n pattern: /( )\\.(?= )/,\n lookbehind: true\n },\n // Full list, in order:\n // .= .~ .. ...\n // .&. .^. .<<. .>>. .>>>.\n // := :: ::=\n // &&\n // || |>\n // < << <<< <<<<\n // <- <-- <-! <--!\n // <~ <~~ <~! <~~!\n // <| <= <?\n // > >> >= >?\n // - -- -> -->\n // + ++\n // @ @@\n // % %%\n // * **\n // ! != !~=\n // !~> !~~>\n // !-> !-->\n // ~ ~> ~~> ~=\n // = ==\n // ^ ^^\n // / ?\n /\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<<?<?|--?!?|~~?!?|[|=?])?|>[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/\n ],\n punctuation: /[(){}\\[\\]|.,:;`]/\n }\n Prism.languages.livescript['interpolated-string'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.livescript\n}\n","// @ts-nocheck\nllvm.displayName = 'llvm'\nllvm.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function llvm(Prism) {\n ;(function (Prism) {\n Prism.languages.llvm = {\n comment: /;.*/,\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n boolean: /\\b(?:false|true)\\b/,\n variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n type: {\n pattern:\n /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n alias: 'class-name'\n },\n keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n number:\n /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n punctuation: /[{}[\\];(),.!*=<>]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nlog.displayName = 'log'\nlog.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function log(Prism) {\n // This is a language definition for generic log files.\n // Since there is no one log format, this language definition has to support all formats to some degree.\n //\n // Based on https://github.com/MTDL9/vim-log-highlighting\n\n Prism.languages.log = {\n string: {\n // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n exception: {\n pattern:\n /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n lookbehind: true,\n greedy: true,\n alias: ['javastacktrace', 'language-javastacktrace'],\n inside: Prism.languages['javastacktrace'] || {\n keyword: /\\bat\\b/,\n function: /[a-z_][\\w$]*(?=\\()/,\n punctuation: /[.:()]/\n }\n },\n level: [\n {\n pattern:\n /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n alias: ['error', 'important']\n },\n {\n pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n alias: ['warning', 'important']\n },\n {\n pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n alias: ['info', 'keyword']\n },\n {\n pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n alias: ['debug', 'keyword']\n },\n {\n pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n alias: ['trace', 'comment']\n }\n ],\n property: {\n pattern:\n /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n lookbehind: true\n },\n separator: {\n pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n lookbehind: true,\n alias: 'comment'\n },\n url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n email: {\n pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n lookbehind: true,\n alias: 'url'\n },\n 'ip-address': {\n pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n alias: 'constant'\n },\n 'mac-address': {\n pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n alias: 'constant'\n },\n domain: {\n pattern:\n /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n lookbehind: true,\n alias: 'constant'\n },\n uuid: {\n pattern:\n /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n alias: 'constant'\n },\n hash: {\n pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n alias: 'constant'\n },\n 'file-path': {\n pattern:\n /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n lookbehind: true,\n greedy: true,\n alias: 'string'\n },\n date: {\n pattern: RegExp(\n /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n '|' +\n /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n .source +\n '|' +\n /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n .source,\n 'i'\n ),\n alias: 'number'\n },\n time: {\n pattern:\n /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n alias: 'number'\n },\n boolean: /\\b(?:false|null|true)\\b/i,\n number: {\n pattern:\n /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n lookbehind: true\n },\n operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n punctuation: /[\\[\\].,]/\n }\n}\n","// @ts-nocheck\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function lolcode(Prism) {\n Prism.languages.lolcode = {\n comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n string: {\n pattern: /\"(?::.|[^\":])*\"/,\n inside: {\n variable: /:\\{[^}]+\\}/,\n symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n },\n greedy: true\n },\n number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n symbol: {\n pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n lookbehind: true,\n inside: {\n keyword: /A(?=\\s)/\n }\n },\n label: {\n pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n lookbehind: true,\n alias: 'string'\n },\n function: {\n pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n lookbehind: true\n },\n keyword: [\n {\n pattern:\n /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n lookbehind: true\n },\n /'Z(?=\\s|,|$)/\n ],\n boolean: {\n pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|\\s)IT(?=\\s|,|$)/,\n lookbehind: true\n },\n operator: {\n pattern:\n /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n lookbehind: true\n },\n punctuation: /\\.{3}|…|,|!/\n }\n}\n","// @ts-nocheck\nmagma.displayName = 'magma'\nmagma.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function magma(Prism) {\n Prism.languages.magma = {\n output: {\n pattern:\n /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n keyword:\n /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n generator: {\n pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n alias: 'class-name'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n punctuation: /[()[\\]{}<>,;.:]/\n }\n}\n","// @ts-nocheck\nmata.displayName = 'mata'\nmata.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function mata(Prism) {\n // https://www.stata.com/manuals/m.pdf\n\n ;(function (Prism) {\n var orgType = /\\b(?:(?:col|row)?vector|matrix|scalar)\\b/.source\n var type =\n /\\bvoid\\b|<org>|\\b(?:complex|numeric|pointer(?:\\s*\\([^()]*\\))?|real|string|(?:class|struct)\\s+\\w+|transmorphic)(?:\\s*<org>)?/.source.replace(\n /<org>/g,\n orgType\n )\n Prism.languages.mata = {\n comment: {\n pattern:\n /\\/\\/.*|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|[‘`']\".*?\"[’`']/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|extends|struct)\\s+)\\w+(?=\\s*(?:\\{|\\bextends\\b))/,\n lookbehind: true\n },\n type: {\n pattern: RegExp(type),\n alias: 'class-name',\n inside: {\n punctuation: /[()]/,\n keyword: /\\b(?:class|function|struct|void)\\b/\n }\n },\n keyword:\n /\\b(?:break|class|continue|do|else|end|extends|external|final|for|function|goto|if|pragma|private|protected|public|return|static|struct|unset|unused|version|virtual|while)\\b/,\n constant: /\\bNULL\\b/,\n number: {\n pattern:\n /(^|[^\\w.])(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|\\d[a-f0-9]*(?:\\.[a-f0-9]+)?x[+-]?\\d+)i?(?![\\w.])/i,\n lookbehind: true\n },\n missing: {\n pattern: /(^|[^\\w.])(?:\\.[a-z]?)(?![\\w.])/,\n lookbehind: true,\n alias: 'symbol'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n operator: /\\.\\.|\\+\\+|--|&&|\\|\\||:?(?:[!=<>]=|[+\\-*/^<>&|:])|[!?=\\\\#’`']/,\n punctuation: /[()[\\]{},;.]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function matlab(Prism) {\n Prism.languages.matlab = {\n comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n string: {\n pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n // FIXME We could handle imaginary numbers as a whole\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n keyword:\n /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n }\n}\n","// @ts-nocheck\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function maxscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n Prism.languages.maxscript = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n greedy: true\n },\n string: {\n pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n lookbehind: true,\n greedy: true\n },\n path: {\n pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n greedy: true,\n alias: 'string'\n },\n 'function-call': {\n pattern: RegExp(\n '((?:' +\n // start of line\n (/^/.source +\n '|' +\n // operators and other language constructs\n /[;=<>+\\-*/^({\\[]/.source +\n '|' +\n // keywords as part of statements\n /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n .source) +\n ')[ \\t]*)' +\n '(?!' +\n keywords.source +\n ')' +\n /[a-z_]\\w*\\b/.source +\n '(?=[ \\t]*(?:' +\n // variable\n ('(?!' +\n keywords.source +\n ')' +\n /[a-z_]/.source +\n '|' +\n // number\n /\\d|-\\.?\\d/.source +\n '|' +\n // other expressions or literals\n /[({'\"$@#?]/.source) +\n '))',\n 'im'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'function-definition': {\n pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'function'\n },\n argument: {\n pattern: /\\b[a-z_]\\w*(?=:)/i,\n alias: 'attr-name'\n },\n keyword: keywords,\n boolean: /\\b(?:false|true)\\b/,\n time: {\n pattern:\n /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n lookbehind: true,\n alias: 'number'\n },\n number: [\n {\n pattern:\n /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n lookbehind: true\n },\n /\\b(?:e|pi)\\b/\n ],\n constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n color: {\n pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n alias: 'constant'\n },\n operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n }\n })(Prism)\n}\n","// @ts-nocheck\nmel.displayName = 'mel'\nmel.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function mel(Prism) {\n Prism.languages.mel = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n code: {\n pattern: /`(?:\\\\.|[^\\\\`])*`/,\n greedy: true,\n alias: 'italic',\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n },\n statement: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n variable: /\\$\\w+/,\n number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n flag: {\n pattern: /-[^\\d\\W]\\w*/,\n alias: 'operator'\n },\n keyword:\n /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n function: {\n pattern:\n /((?:^|[{;])[ \\t]*)[a-z_]\\w*\\b(?!\\s*(?:\\.(?!\\.)|[[{=]))|\\b[a-z_]\\w*(?=[ \\t]*\\()/im,\n lookbehind: true,\n greedy: true\n },\n 'tensor-punctuation': {\n pattern: /<<|>>/,\n alias: 'punctuation'\n },\n operator: /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=?|[*\\/!=]=?|[%^]/,\n punctuation: /[.,:;?\\[\\](){}]/\n }\n Prism.languages.mel['code'].inside['statement'].inside = Prism.languages.mel\n}\n","// @ts-nocheck\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function mermaid(Prism) {\n Prism.languages.mermaid = {\n comment: {\n pattern: /%%.*/,\n greedy: true\n },\n style: {\n pattern:\n /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n lookbehind: true,\n inside: {\n property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n operator: /:/,\n punctuation: /,/\n }\n },\n 'inter-arrow-label': {\n pattern:\n /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n lookbehind: true,\n greedy: true,\n inside: {\n arrow: {\n pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n alias: 'operator'\n },\n label: {\n pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n alias: 'property'\n },\n 'arrow-head': {\n pattern: /^\\S+/,\n alias: ['arrow', 'operator']\n }\n }\n },\n arrow: [\n // This might look complex but it really isn't.\n // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n // arrows into different patterns.\n {\n // ER diagram\n pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // flow chart\n // (?:==+|--+|-\\.*-)\n pattern:\n /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // sequence diagram\n pattern:\n /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // class diagram\n pattern:\n /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n label: {\n pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n text: {\n pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n alias: 'string'\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n annotation: {\n pattern:\n /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n alias: 'important'\n },\n keyword: [\n // This language has both case-sensitive and case-insensitive keywords\n {\n pattern:\n /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern:\n /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n lookbehind: true,\n greedy: true\n }\n ],\n entity: /#[a-z0-9]+;/,\n operator: {\n pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n lookbehind: true\n },\n punctuation: /[(){};]/\n }\n}\n","// @ts-nocheck\nmetafont.displayName = 'metafont'\nmetafont.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function metafont(Prism) {\n Prism.languages.metafont = {\n // Syntax of METAFONT with the added (public) elements of PlainMETAFONT. Except for internal quantities they are expected to be rarely redefined. Freely inspired by the syntax of Christophe Grandsire for the Crimson Editor.\n comment: {\n pattern: /%.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\\r\\n\"]*\"/,\n greedy: true\n },\n number: /\\d*\\.?\\d+/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: [\n /[,;()]/,\n {\n pattern: /(^|[^{}])(?:\\{|\\})(?![{}])/,\n lookbehind: true\n },\n {\n pattern: /(^|[^[])\\[(?!\\[)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\]])\\](?!\\])/,\n lookbehind: true\n }\n ],\n constant: [\n {\n pattern: /(^|[^!?])\\?\\?\\?(?![!?])/,\n lookbehind: true\n },\n {\n pattern: /(^|[^/*\\\\])(?:\\\\|\\\\\\\\)(?![/*\\\\])/,\n lookbehind: true\n },\n /\\b(?:_|blankpicture|bp|cc|cm|dd|ditto|down|eps|epsilon|fullcircle|halfcircle|identity|in|infinity|left|mm|nullpen|nullpicture|origin|pc|penrazor|penspeck|pensquare|penstroke|proof|pt|quartercircle|relax|right|smoke|unitpixel|unitsquare|up)\\b/\n ],\n quantity: {\n pattern:\n /\\b(?:autorounding|blacker|boundarychar|charcode|chardp|chardx|chardy|charext|charht|charic|charwd|currentwindow|day|designsize|displaying|fillin|fontmaking|granularity|hppp|join_radius|month|o_correction|pausing|pen_(?:bot|lft|rt|top)|pixels_per_inch|proofing|showstopping|smoothing|time|tolerance|tracingcapsules|tracingchoices|tracingcommands|tracingedges|tracingequations|tracingmacros|tracingonline|tracingoutput|tracingpens|tracingrestores|tracingspecs|tracingstats|tracingtitles|turningcheck|vppp|warningcheck|xoffset|year|yoffset)\\b/,\n alias: 'keyword'\n },\n command: {\n pattern:\n /\\b(?:addto|batchmode|charlist|cull|display|errhelp|errmessage|errorstopmode|everyjob|extensible|fontdimen|headerbyte|inner|interim|let|ligtable|message|newinternal|nonstopmode|numspecial|openwindow|outer|randomseed|save|scrollmode|shipout|show|showdependencies|showstats|showtoken|showvariable|special)\\b/,\n alias: 'builtin'\n },\n operator: [\n {\n pattern:\n /(^|[^>=<:|])(?:<|<=|=|=:|\\|=:|\\|=:>|=:\\|>|=:\\||\\|=:\\||\\|=:\\|>|\\|=:\\|>>|>|>=|:|:=|<>|::|\\|\\|:)(?![>=<:|])/,\n lookbehind: true\n },\n {\n pattern: /(^|[^+-])(?:\\+|\\+\\+|-{1,3}|\\+-\\+)(?![+-])/,\n lookbehind: true\n },\n {\n pattern: /(^|[^/*\\\\])(?:\\*|\\*\\*|\\/)(?![/*\\\\])/,\n lookbehind: true\n },\n {\n pattern: /(^|[^.])(?:\\.{2,3})(?!\\.)/,\n lookbehind: true\n },\n {\n pattern: /(^|[^@#&$])&(?![@#&$])/,\n lookbehind: true\n },\n /\\b(?:and|not|or)\\b/\n ],\n macro: {\n pattern:\n /\\b(?:abs|beginchar|bot|byte|capsule_def|ceiling|change_width|clear_pen_memory|clearit|clearpen|clearxy|counterclockwise|cullit|cutdraw|cutoff|decr|define_blacker_pixels|define_corrected_pixels|define_good_x_pixels|define_good_y_pixels|define_horizontal_corrected_pixels|define_pixels|define_whole_blacker_pixels|define_whole_pixels|define_whole_vertical_blacker_pixels|define_whole_vertical_pixels|dir|direction|directionpoint|div|dotprod|downto|draw|drawdot|endchar|erase|fill|filldraw|fix_units|flex|font_coding_scheme|font_extra_space|font_identifier|font_normal_shrink|font_normal_space|font_normal_stretch|font_quad|font_size|font_slant|font_x_height|gfcorners|gobble|gobbled|good\\.(?:bot|lft|rt|top|x|y)|grayfont|hide|hround|imagerules|incr|interact|interpath|intersectionpoint|inverse|italcorr|killtext|labelfont|labels|lft|loggingall|lowres_fix|makegrid|makelabel(?:\\.(?:bot|lft|rt|top)(?:\\.nodot)?)?|max|min|mod|mode_def|mode_setup|nodisplays|notransforms|numtok|openit|penlabels|penpos|pickup|proofoffset|proofrule|proofrulethickness|range|reflectedabout|rotatedabout|rotatedaround|round|rt|savepen|screenchars|screenrule|screenstrokes|shipit|showit|slantfont|softjoin|solve|stop|superellipse|tensepath|thru|titlefont|top|tracingall|tracingnone|undraw|undrawdot|unfill|unfilldraw|upto|vround)\\b/,\n alias: 'function'\n },\n builtin:\n /\\b(?:ASCII|angle|char|cosd|decimal|directiontime|floor|hex|intersectiontimes|jobname|known|length|makepath|makepen|mexp|mlog|normaldeviate|oct|odd|pencircle|penoffset|point|postcontrol|precontrol|reverse|rotated|sind|sqrt|str|subpath|substring|totalweight|turningnumber|uniformdeviate|unknown|xpart|xxpart|xypart|ypart|yxpart|yypart)\\b/,\n keyword:\n /\\b(?:also|at|atleast|begingroup|charexists|contour|controls|curl|cycle|def|delimiters|doublepath|dropping|dump|else|elseif|end|enddef|endfor|endgroup|endinput|exitif|exitunless|expandafter|fi|for|forever|forsuffixes|from|if|input|inwindow|keeping|kern|of|primarydef|quote|readstring|scaled|scantokens|secondarydef|shifted|skipto|slanted|step|tension|tertiarydef|to|transformed|until|vardef|withpen|withweight|xscaled|yscaled|zscaled)\\b/,\n type: {\n pattern:\n /\\b(?:boolean|expr|numeric|pair|path|pen|picture|primary|secondary|string|suffix|tertiary|text|transform)\\b/,\n alias: 'property'\n },\n variable: {\n pattern:\n /(^|[^@#&$])(?:@#|#@|#|@)(?![@#&$])|\\b(?:aspect_ratio|currentpen|currentpicture|currenttransform|d|extra_beginchar|extra_endchar|extra_setup|h|localfont|mag|mode|screen_cols|screen_rows|w|whatever|x|y|z)\\b/,\n lookbehind: true\n }\n }\n}\n","// @ts-nocheck\nmizar.displayName = 'mizar'\nmizar.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function mizar(Prism) {\n Prism.languages.mizar = {\n comment: /::.+/,\n keyword:\n /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n parameter: {\n pattern: /\\$(?:10|\\d)/,\n alias: 'variable'\n },\n variable: /\\b\\w+(?=:)/,\n number: /(?:\\b|-)\\d+\\b/,\n operator: /\\.\\.\\.|->|&|\\.?=/,\n punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n }\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function mongodb(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n var operators = [\n // query and projection\n '$eq',\n '$gt',\n '$gte',\n '$in',\n '$lt',\n '$lte',\n '$ne',\n '$nin',\n '$and',\n '$not',\n '$nor',\n '$or',\n '$exists',\n '$type',\n '$expr',\n '$jsonSchema',\n '$mod',\n '$regex',\n '$text',\n '$where',\n '$geoIntersects',\n '$geoWithin',\n '$near',\n '$nearSphere',\n '$all',\n '$elemMatch',\n '$size',\n '$bitsAllClear',\n '$bitsAllSet',\n '$bitsAnyClear',\n '$bitsAnySet',\n '$comment',\n '$elemMatch',\n '$meta',\n '$slice',\n // update\n '$currentDate',\n '$inc',\n '$min',\n '$max',\n '$mul',\n '$rename',\n '$set',\n '$setOnInsert',\n '$unset',\n '$addToSet',\n '$pop',\n '$pull',\n '$push',\n '$pullAll',\n '$each',\n '$position',\n '$slice',\n '$sort',\n '$bit',\n // aggregation pipeline stages\n '$addFields',\n '$bucket',\n '$bucketAuto',\n '$collStats',\n '$count',\n '$currentOp',\n '$facet',\n '$geoNear',\n '$graphLookup',\n '$group',\n '$indexStats',\n '$limit',\n '$listLocalSessions',\n '$listSessions',\n '$lookup',\n '$match',\n '$merge',\n '$out',\n '$planCacheStats',\n '$project',\n '$redact',\n '$replaceRoot',\n '$replaceWith',\n '$sample',\n '$set',\n '$skip',\n '$sort',\n '$sortByCount',\n '$unionWith',\n '$unset',\n '$unwind',\n '$setWindowFields',\n // aggregation pipeline operators\n '$abs',\n '$accumulator',\n '$acos',\n '$acosh',\n '$add',\n '$addToSet',\n '$allElementsTrue',\n '$and',\n '$anyElementTrue',\n '$arrayElemAt',\n '$arrayToObject',\n '$asin',\n '$asinh',\n '$atan',\n '$atan2',\n '$atanh',\n '$avg',\n '$binarySize',\n '$bsonSize',\n '$ceil',\n '$cmp',\n '$concat',\n '$concatArrays',\n '$cond',\n '$convert',\n '$cos',\n '$dateFromParts',\n '$dateToParts',\n '$dateFromString',\n '$dateToString',\n '$dayOfMonth',\n '$dayOfWeek',\n '$dayOfYear',\n '$degreesToRadians',\n '$divide',\n '$eq',\n '$exp',\n '$filter',\n '$first',\n '$floor',\n '$function',\n '$gt',\n '$gte',\n '$hour',\n '$ifNull',\n '$in',\n '$indexOfArray',\n '$indexOfBytes',\n '$indexOfCP',\n '$isArray',\n '$isNumber',\n '$isoDayOfWeek',\n '$isoWeek',\n '$isoWeekYear',\n '$last',\n '$last',\n '$let',\n '$literal',\n '$ln',\n '$log',\n '$log10',\n '$lt',\n '$lte',\n '$ltrim',\n '$map',\n '$max',\n '$mergeObjects',\n '$meta',\n '$min',\n '$millisecond',\n '$minute',\n '$mod',\n '$month',\n '$multiply',\n '$ne',\n '$not',\n '$objectToArray',\n '$or',\n '$pow',\n '$push',\n '$radiansToDegrees',\n '$range',\n '$reduce',\n '$regexFind',\n '$regexFindAll',\n '$regexMatch',\n '$replaceOne',\n '$replaceAll',\n '$reverseArray',\n '$round',\n '$rtrim',\n '$second',\n '$setDifference',\n '$setEquals',\n '$setIntersection',\n '$setIsSubset',\n '$setUnion',\n '$size',\n '$sin',\n '$slice',\n '$split',\n '$sqrt',\n '$stdDevPop',\n '$stdDevSamp',\n '$strcasecmp',\n '$strLenBytes',\n '$strLenCP',\n '$substr',\n '$substrBytes',\n '$substrCP',\n '$subtract',\n '$sum',\n '$switch',\n '$tan',\n '$toBool',\n '$toDate',\n '$toDecimal',\n '$toDouble',\n '$toInt',\n '$toLong',\n '$toObjectId',\n '$toString',\n '$toLower',\n '$toUpper',\n '$trim',\n '$trunc',\n '$type',\n '$week',\n '$year',\n '$zip',\n '$count',\n '$dateAdd',\n '$dateDiff',\n '$dateSubtract',\n '$dateTrunc',\n '$getField',\n '$rand',\n '$sampleRate',\n '$setField',\n '$unsetField',\n // aggregation pipeline query modifiers\n '$comment',\n '$explain',\n '$hint',\n '$max',\n '$maxTimeMS',\n '$min',\n '$orderby',\n '$query',\n '$returnKey',\n '$showDiskLoc',\n '$natural'\n ]\n var builtinFunctions = [\n 'ObjectId',\n 'Code',\n 'BinData',\n 'DBRef',\n 'Timestamp',\n 'NumberLong',\n 'NumberDecimal',\n 'MaxKey',\n 'MinKey',\n 'RegExp',\n 'ISODate',\n 'UUID'\n ]\n operators = operators.map(function (operator) {\n return operator.replace('$', '\\\\$')\n })\n var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('mongodb', 'string', {\n property: {\n pattern:\n /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n greedy: true,\n inside: {\n keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n }\n }\n })\n Prism.languages.mongodb.string.inside = {\n url: {\n // url pattern\n pattern:\n /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n greedy: true\n },\n entity: {\n // ipv4\n pattern:\n /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n greedy: true\n }\n }\n Prism.languages.insertBefore('mongodb', 'constant', {\n builtin: {\n pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n alias: 'keyword'\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function monkey(Prism) {\n Prism.languages.monkey = {\n comment: {\n pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n preprocessor: {\n pattern: /(^[ \\t]*)#.+/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n function: /\\b\\w+(?=\\()/,\n 'type-char': {\n pattern: /\\b[?%#$]/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n operator:\n /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[.,:;()\\[\\]]/\n }\n}\n","// @ts-nocheck\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\n\n/** @type {import('../core.js').Syntax} */\nexport default function moonscript(Prism) {\n Prism.languages.moonscript = {\n comment: /--.*/,\n string: [\n {\n pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n greedy: true\n },\n {\n pattern: /\"[^\"]*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /#\\{[^{}]*\\}/,\n inside: {\n moonscript: {\n pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true,\n inside: null // see beow\n },\n\n 'interpolation-punctuation': {\n pattern: /#\\{|\\}/,\n alias: 'punctuation'\n }\n }\n }\n }\n }\n ],\n 'class-name': [\n {\n pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n lookbehind: true\n },\n // class-like names start with a capital letter\n /\\b[A-Z]\\w*/\n ],\n keyword:\n /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n variable: /@@?\\w*/,\n property: {\n pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n lookbehind: true\n },\n function: {\n pattern:\n /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n operator:\n /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n punctuation: /[.,()[\\]{}\\\\]/\n }\n Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n Prism.languages.moonscript\n Prism.languages.moon = Prism.languages.moonscript\n}\n","// @ts-nocheck\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function n1ql(Prism) {\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n\n Prism.languages.n1ql = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n greedy: true\n },\n parameter: /\\$[\\w.]+/,\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n keyword:\n /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n punctuation: /[;[\\](),.{}:]/\n }\n}\n","// @ts-nocheck\nnand2tetrisHdl.displayName = 'nand2tetris-hdl'\nnand2tetrisHdl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nand2tetrisHdl(Prism) {\n Prism.languages['nand2tetris-hdl'] = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n number: /\\b\\d+\\b/,\n operator: /=|\\.\\./,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","// @ts-nocheck\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = ['nani']\n\n/** @type {import('../core.js').Syntax} */\nexport default function naniscript(Prism) {\n ;(function (Prism) {\n var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n var params = {\n 'quoted-string': {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n alias: 'operator'\n },\n 'command-param-id': {\n pattern: /(\\s)\\w+:/,\n lookbehind: true,\n alias: 'property'\n },\n 'command-param-value': [\n {\n pattern: expressionDef,\n alias: 'selector'\n },\n {\n pattern: /([\\t ])\\S+/,\n lookbehind: true,\n greedy: true,\n alias: 'operator'\n },\n {\n pattern: /\\S(?:.*\\S)?/,\n alias: 'operator'\n }\n ]\n }\n Prism.languages.naniscript = {\n // ; ...\n comment: {\n pattern: /^([\\t ]*);.*/m,\n lookbehind: true\n },\n // > ...\n // Define is a control line starting with '>' followed by a word, a space and a text.\n define: {\n pattern: /^>.+/m,\n alias: 'tag',\n inside: {\n value: {\n pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n lookbehind: true,\n alias: 'operator'\n },\n key: {\n pattern: /(^>)\\w+/,\n lookbehind: true\n }\n }\n },\n // # ...\n label: {\n pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n lookbehind: true,\n alias: 'regex'\n },\n command: {\n pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n 'command-name': /^@\\w+/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'command-params': {\n pattern: /\\s*\\S[\\s\\S]*/,\n inside: params\n }\n }\n },\n // Generic is any line that doesn't start with operators: ;>#@\n 'generic-text': {\n pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n lookbehind: true,\n alias: 'punctuation',\n inside: {\n // \\{ ... \\} ... \\[ ... \\] ... \\\"\n 'escaped-char': /\\\\[{}\\[\\]\"]/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'inline-command': {\n pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n greedy: true,\n alias: 'function',\n inside: {\n 'command-params': {\n pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n inside: params\n },\n 'command-param-name': {\n pattern: /^(\\[[\\t ]*)\\w+/,\n lookbehind: true,\n alias: 'name'\n },\n 'start-stop-char': /[\\[\\]]/\n }\n }\n }\n }\n }\n Prism.languages.nani = Prism.languages['naniscript']\n\n /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n\n /**\n * This hook is used to validate generic-text tokens for balanced brackets.\n * Mark token as bad-line when contains not balanced brackets: {},[]\n */\n Prism.hooks.add('after-tokenize', function (env) {\n /** @type {(Token | string)[]} */\n var tokens = env.tokens\n tokens.forEach(function (token) {\n if (typeof token !== 'string' && token.type === 'generic-text') {\n var content = getTextContent(token)\n if (!isBracketsBalanced(content)) {\n token.type = 'bad-line'\n token.content = content\n }\n }\n })\n })\n\n /**\n * @param {string} input\n * @returns {boolean}\n */\n function isBracketsBalanced(input) {\n var brackets = '[]{}'\n var stack = []\n for (var i = 0; i < input.length; i++) {\n var bracket = input[i]\n var bracketsIndex = brackets.indexOf(bracket)\n if (bracketsIndex !== -1) {\n if (bracketsIndex % 2 === 0) {\n stack.push(bracketsIndex + 1)\n } else if (stack.pop() !== bracketsIndex) {\n return false\n }\n }\n }\n return stack.length === 0\n }\n\n /**\n * @param {string | Token | (string | Token)[]} token\n * @returns {string}\n */\n function getTextContent(token) {\n if (typeof token === 'string') {\n return token\n } else if (Array.isArray(token)) {\n return token.map(getTextContent).join('')\n } else {\n return getTextContent(token.content)\n }\n }\n })(Prism)\n}\n","// @ts-nocheck\nnasm.displayName = 'nasm'\nnasm.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nasm(Prism) {\n Prism.languages.nasm = {\n comment: /;.*$/m,\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n label: {\n pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n /\\[?BITS (?:16|32|64)\\]?/,\n {\n pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n lookbehind: true\n },\n /(?:extern|global)[^;\\r\\n]*/i,\n /(?:CPU|DEFAULT|FLOAT).*$/m\n ],\n register: {\n pattern:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n alias: 'variable'\n },\n number:\n /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n }\n}\n","// @ts-nocheck\nneon.displayName = 'neon'\nneon.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function neon(Prism) {\n Prism.languages.neon = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n datetime: {\n pattern:\n /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n lookbehind: true,\n alias: 'number'\n },\n key: {\n pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n lookbehind: true,\n alias: 'property'\n },\n number: {\n pattern:\n /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true\n },\n null: {\n pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true,\n alias: 'keyword'\n },\n string: {\n pattern:\n /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n lookbehind: true,\n greedy: true\n },\n literal: {\n pattern:\n /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /[,:=[\\]{}()-]/\n }\n}\n","// @ts-nocheck\nnevod.displayName = 'nevod'\nnevod.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nevod(Prism) {\n Prism.languages.nevod = {\n comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n string: {\n pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n greedy: true,\n inside: {\n 'string-attrs': /!$|!\\*$|\\*$/\n }\n },\n namespace: {\n pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n lookbehind: true\n },\n pattern: {\n pattern:\n /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n lookbehind: true,\n inside: {\n 'pattern-name': {\n pattern: /^#?[a-zA-Z0-9\\-.]+/,\n alias: 'class-name'\n },\n fields: {\n pattern: /\\(.*\\)/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n punctuation: /[,()]/,\n operator: {\n pattern: /~/,\n alias: 'field-hidden-mark'\n }\n }\n }\n }\n },\n search: {\n pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n alias: 'function',\n lookbehind: true\n },\n keyword:\n /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n 'standard-pattern': {\n pattern:\n /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n inside: {\n 'standard-pattern-name': {\n pattern: /^[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n 'standard-pattern-attr': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n punctuation: /[,()]/\n }\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n operator: [\n {\n pattern: /=/,\n alias: 'pattern-def'\n },\n {\n pattern: /&/,\n alias: 'conjunction'\n },\n {\n pattern: /~/,\n alias: 'exception'\n },\n {\n pattern: /\\?/,\n alias: 'optionality'\n },\n {\n pattern: /[[\\]]/,\n alias: 'repetition'\n },\n {\n pattern: /[{}]/,\n alias: 'variation'\n },\n {\n pattern: /[+_]/,\n alias: 'sequence'\n },\n {\n pattern: /\\.{2,3}/,\n alias: 'span'\n }\n ],\n 'field-capture': [\n {\n pattern:\n /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n },\n {\n pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n }\n ],\n punctuation: /[:;,()]/,\n name: /[a-zA-Z0-9\\-.]+/\n }\n}\n","// @ts-nocheck\nnginx.displayName = 'nginx'\nnginx.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nginx(Prism) {\n ;(function (Prism) {\n var variable =\n /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n Prism.languages.nginx = {\n comment: {\n pattern: /(^|[\\s{};])#.*/,\n lookbehind: true,\n greedy: true\n },\n directive: {\n pattern:\n /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: {\n string: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n lookbehind: true,\n greedy: true,\n inside: {\n escape: {\n pattern: /\\\\[\"'\\\\nrt]/,\n alias: 'entity'\n },\n variable: variable\n }\n },\n comment: {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n greedy: true\n },\n keyword: {\n pattern: /^\\S+/,\n greedy: true\n },\n // other patterns\n\n boolean: {\n pattern: /(\\s)(?:off|on)(?!\\S)/,\n lookbehind: true\n },\n number: {\n pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n lookbehind: true\n },\n variable: variable\n }\n },\n punctuation: /[{};]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nnim.displayName = 'nim'\nnim.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nim(Prism) {\n Prism.languages.nim = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n pattern:\n /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n greedy: true\n },\n char: {\n // Character literals are handled specifically to prevent issues with numeric type suffixes\n pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n greedy: true\n },\n function: {\n pattern:\n /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n greedy: true,\n inside: {\n operator: /\\*$/\n }\n },\n // We don't want to highlight operators (and anything really) inside backticks\n identifier: {\n pattern: /`[^`\\r\\n]+`/,\n greedy: true,\n inside: {\n punctuation: /`/\n }\n },\n // The negative look ahead prevents wrong highlighting of the .. operator\n number:\n /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n keyword:\n /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n operator: {\n // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n // but allow the slice operator .. to take precedence over them\n // One can define his own operators in Nim so all combination of operators might be an operator.\n pattern:\n /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n lookbehind: true\n },\n punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n }\n}\n","// @ts-nocheck\nnix.displayName = 'nix'\nnix.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nix(Prism) {\n Prism.languages.nix = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n greedy: true,\n inside: {\n interpolation: {\n // The lookbehind ensures the ${} is not preceded by \\ or ''\n pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n lookbehind: true,\n inside: null // see below\n }\n }\n },\n\n url: [\n /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n {\n pattern:\n /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n lookbehind: true\n }\n ],\n antiquotation: {\n pattern: /\\$(?=\\{)/,\n alias: 'important'\n },\n number: /\\b\\d+\\b/,\n keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n function:\n /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n punctuation: /[{}()[\\].,:;]/\n }\n Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","// @ts-nocheck\nnsis.displayName = 'nsis'\nnsis.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function nsis(Prism) {\n /**\n * Original by Jan T. Sott (http://github.com/idleberg)\n *\n * Includes all commands and plug-ins shipped with NSIS 3.08\n */\n Prism.languages.nsis = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: {\n pattern:\n /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|KnownFolderPath|LabelAddress|TempFileName|WinVer)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|RtlLanguage|ShellVarContextAll|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Target|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n lookbehind: true\n },\n property:\n /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n variable: /\\$\\w[\\w\\.]*/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n punctuation: /[{}[\\];(),.:]/,\n important: {\n pattern:\n /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n lookbehind: true\n }\n }\n}\n","// @ts-nocheck\nocaml.displayName = 'ocaml'\nocaml.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function ocaml(Prism) {\n // https://ocaml.org/manual/lex.html\n\n Prism.languages.ocaml = {\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n greedy: true\n },\n char: {\n pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n greedy: true\n },\n string: [\n {\n pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n {\n pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n greedy: true\n }\n ],\n number: [\n // binary and octal\n /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i,\n // hexadecimal\n /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i,\n // decimal\n /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n ],\n directive: {\n pattern: /\\B#\\w+/,\n alias: 'property'\n },\n label: {\n pattern: /\\B~\\w+/,\n alias: 'property'\n },\n 'type-variable': {\n pattern: /\\B'\\w+/,\n alias: 'function'\n },\n variant: {\n pattern: /`\\w+/,\n alias: 'symbol'\n },\n // For the list of keywords and operators,\n // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n keyword:\n /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'operator-like-punctuation': {\n pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n alias: 'punctuation'\n },\n // Custom operators are allowed\n operator:\n /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n }\n}\n","// @ts-nocheck\nodin.displayName = 'odin'\nodin.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function odin(Prism) {\n ;(function (Prism) {\n var escapes =\n /\\\\(?:[\"'\\\\abefnrtv]|0[0-7]{2}|U[\\dA-Fa-f]{6}|u[\\dA-Fa-f]{4}|x[\\dA-Fa-f]{2})/\n Prism.languages.odin = {\n /**\n * The current implementation supports only 1 level of nesting.\n *\n * @author Michael Schmidt\n * @author edukisto\n */\n comment: [\n {\n pattern:\n /\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:\\*(?!\\/)|[^*])*(?:\\*\\/|$))*(?:\\*\\/|$)/,\n greedy: true\n },\n {\n pattern: /#![^\\n\\r]*/,\n greedy: true\n },\n {\n pattern: /\\/\\/[^\\n\\r]*/,\n greedy: true\n }\n ],\n /**\n * Should be found before strings because of '\"'\"- and '`'`-like sequences.\n */\n char: {\n pattern: /'(?:\\\\(?:.|[0Uux][0-9A-Fa-f]{1,6})|[^\\n\\r'\\\\])'/,\n greedy: true,\n inside: {\n symbol: escapes\n }\n },\n string: [\n {\n pattern: /`[^`]*`/,\n greedy: true\n },\n {\n pattern: /\"(?:\\\\.|[^\\n\\r\"\\\\])*\"/,\n greedy: true,\n inside: {\n symbol: escapes\n }\n }\n ],\n directive: {\n pattern: /#\\w+/,\n alias: 'property'\n },\n number:\n /\\b0(?:b[01_]+|d[\\d_]+|h_*(?:(?:(?:[\\dA-Fa-f]_*){8}){1,2}|(?:[\\dA-Fa-f]_*){4})|o[0-7_]+|x[\\dA-F_a-f]+|z[\\dAB_ab]+)\\b|(?:\\b\\d+(?:\\.(?!\\.)\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d*)?[ijk]?(?!\\w)/,\n discard: {\n pattern: /\\b_\\b/,\n alias: 'keyword'\n },\n 'procedure-definition': {\n pattern: /\\b\\w+(?=[ \\t]*(?::\\s*){2}proc\\b)/,\n alias: 'function'\n },\n keyword:\n /\\b(?:asm|auto_cast|bit_set|break|case|cast|context|continue|defer|distinct|do|dynamic|else|enum|fallthrough|for|foreign|if|import|in|map|matrix|not_in|or_else|or_return|package|proc|return|struct|switch|transmute|typeid|union|using|when|where)\\b/,\n /**\n * false, nil, true can be used as procedure names. \"_\" and keywords can't.\n */\n 'procedure-name': {\n pattern: /\\b\\w+(?=[ \\t]*\\()/,\n alias: 'function'\n },\n boolean: /\\b(?:false|nil|true)\\b/,\n 'constant-parameter-sign': {\n pattern: /\\$/,\n alias: 'important'\n },\n undefined: {\n pattern: /---/,\n alias: 'operator'\n },\n arrow: {\n pattern: /->/,\n alias: 'punctuation'\n },\n operator: /\\+\\+|--|\\.\\.[<=]?|(?:&~|[-!*+/=~]|[%&<>|]{1,2})=?|[?^]/,\n punctuation: /[(),.:;@\\[\\]{}]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorC from './c.js'\nopencl.displayName = 'opencl'\nopencl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function opencl(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n /* OpenCL kernel language */\n Prism.languages.opencl = Prism.languages.extend('c', {\n // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n keyword:\n /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n boolean: /\\b(?:false|true)\\b/,\n 'constant-opencl-kernel': {\n pattern:\n /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n alias: 'constant'\n }\n })\n Prism.languages.insertBefore('opencl', 'class-name', {\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n 'builtin-type': {\n pattern:\n /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n alias: 'keyword'\n }\n })\n var attributes = {\n // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n 'type-opencl-host': {\n pattern:\n /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n alias: 'keyword'\n },\n 'boolean-opencl-host': {\n pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n alias: 'boolean'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n 'constant-opencl-host': {\n pattern:\n /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n alias: 'constant'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n 'function-opencl-host': {\n pattern:\n /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n alias: 'function'\n }\n }\n\n /* OpenCL host API */\n Prism.languages.insertBefore('c', 'keyword', attributes)\n\n // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n if (Prism.languages.cpp) {\n // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n attributes['type-opencl-host-cpp'] = {\n pattern:\n /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n alias: 'keyword'\n }\n Prism.languages.insertBefore('cpp', 'keyword', attributes)\n }\n })(Prism)\n}\n","// @ts-nocheck\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\n\n/** @type {import('../core.js').Syntax} */\nexport default function openqasm(Prism) {\n // https://qiskit.github.io/openqasm/grammar/index.html\n\n Prism.languages.openqasm = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n greedy: true\n },\n keyword:\n /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n 'class-name':\n /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n constant: /\\b(?:euler|pi|tau)\\b|Ï€|ðœ|ℇ/,\n number: {\n pattern:\n /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n lookbehind: true\n },\n operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n punctuation: /[(){}\\[\\];,:.]/\n }\n Prism.languages.qasm = Prism.languages.openqasm\n}\n","// @ts-nocheck\noz.displayName = 'oz'\noz.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function oz(Prism) {\n Prism.languages.oz = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n atom: {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n alias: 'builtin'\n },\n keyword:\n /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n function: [\n /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n {\n pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n variable: /`(?:[^`\\\\]|\\\\.)+`/,\n 'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n operator:\n /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n punctuation: /[\\[\\](){}.:;?]/\n }\n}\n","// @ts-nocheck\nparigp.displayName = 'parigp'\nparigp.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function parigp(Prism) {\n Prism.languages.parigp = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n greedy: true\n },\n // PARI/GP does not care about white spaces at all\n // so let's process the keywords to build an appropriate regexp\n // (e.g. \"b *r *e *a *k\", etc.)\n keyword: (function () {\n var keywords = [\n 'breakpoint',\n 'break',\n 'dbg_down',\n 'dbg_err',\n 'dbg_up',\n 'dbg_x',\n 'forcomposite',\n 'fordiv',\n 'forell',\n 'forpart',\n 'forprime',\n 'forstep',\n 'forsubgroup',\n 'forvec',\n 'for',\n 'iferr',\n 'if',\n 'local',\n 'my',\n 'next',\n 'return',\n 'until',\n 'while'\n ]\n keywords = keywords\n .map(function (keyword) {\n return keyword.split('').join(' *')\n })\n .join('|')\n return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n })(),\n function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n number: {\n // The lookbehind and the negative lookahead prevent from breaking the .. operator\n pattern:\n /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n lookbehind: true\n },\n operator:\n /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n punctuation: /[\\[\\]{}().,:;|]/\n }\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nparser.displayName = 'parser'\nparser.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function parser(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n keyword: {\n pattern:\n /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\.|:+/\n }\n },\n function: {\n pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /(^@)(?:GET_|SET_)/,\n lookbehind: true\n },\n punctuation: /\\.|:+/\n }\n },\n escape: {\n pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n alias: 'builtin'\n },\n punctuation: /[\\[\\](){};]/\n }))\n parser = Prism.languages.insertBefore('parser', 'keyword', {\n 'parser-comment': {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n alias: 'comment'\n },\n expression: {\n // Allow for 3 levels of depth\n pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n greedy: true,\n lookbehind: true,\n inside: {\n string: {\n pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n lookbehind: true\n },\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n escape: parser.escape,\n operator:\n /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n punctuation: parser.punctuation\n }\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n expression: parser.expression,\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n escape: parser.escape,\n 'parser-punctuation': {\n pattern: parser.punctuation,\n alias: 'punctuation'\n }\n },\n parser['tag'].inside['attr-value']\n )\n })(Prism)\n}\n","// @ts-nocheck\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\n\n/** @type {import('../core.js').Syntax} */\nexport default function pascal(Prism) {\n // Based on Free Pascal\n\n /* TODO\nSupport inline asm ?\n*/\n\n Prism.languages.pascal = {\n directive: {\n pattern: /\\{\\$[\\s\\S]*?\\}/,\n greedy: true,\n alias: ['marco', 'property']\n },\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n greedy: true\n },\n asm: {\n pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n\n keyword: [\n {\n // Turbo Pascal\n pattern:\n /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n lookbehind: true\n },\n {\n // Free Pascal\n pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n lookbehind: true\n },\n {\n // Object Pascal\n pattern:\n /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n lookbehind: true\n },\n {\n // Modifiers\n pattern:\n /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n lookbehind: true\n }\n ],\n number: [\n // Hexadecimal, octal and binary\n /(?:[&%]\\d+|\\$[a-f\\d]+)/i,\n // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n ],\n operator: [\n /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n {\n pattern:\n /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n }\n Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n asm: undefined,\n keyword: undefined,\n operator: undefined\n })\n Prism.languages.objectpascal = Prism.languages.pascal\n}\n","// @ts-nocheck\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function pascaligo(Prism) {\n ;(function (Prism) {\n // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n\n var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n /<braces>/g,\n function () {\n return braces\n }\n )\n var pascaligo = (Prism.languages.pascaligo = {\n comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n greedy: true\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n /<type>/g,\n function () {\n return type\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n pattern: RegExp(\n /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n return type\n }),\n 'i'\n ),\n inside: null // see below\n },\n {\n pattern: RegExp(\n /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n return type\n })\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n\n keyword: {\n pattern:\n /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n lookbehind: true\n },\n builtin: {\n pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n lookbehind: true\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: [\n // Hexadecimal, octal and binary\n /%[01]+|&[0-7]+|\\$[a-f\\d]+/i,\n // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n ],\n operator:\n /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n })\n var classNameInside = [\n 'comment',\n 'keyword',\n 'builtin',\n 'operator',\n 'punctuation'\n ].reduce(function (accum, key) {\n accum[key] = pascaligo[key]\n return accum\n }, {})\n pascaligo['class-name'].forEach(function (p) {\n p.inside = classNameInside\n })\n })(Prism)\n}\n","// @ts-nocheck\npsl.displayName = 'psl'\npsl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function psl(Prism) {\n Prism.languages.psl = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n symbol: /\\\\[ntrbA-Z\"\\\\]/\n }\n },\n 'heredoc-string': {\n pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n alias: 'string',\n greedy: true\n },\n keyword:\n /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n constant:\n /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n builtin: {\n pattern:\n /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n alias: 'builtin-function'\n },\n 'foreach-variable': {\n pattern:\n /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n lookbehind: true,\n greedy: true\n },\n function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n punctuation: /[(){}\\[\\];,]/\n }\n}\n","// @ts-nocheck\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\n\n/** @type {import('../core.js').Syntax} */\nexport default function pcaxis(Prism) {\n Prism.languages.pcaxis = {\n string: /\"[^\"]*\"/,\n keyword: {\n pattern:\n /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^[-A-Z\\d]+/,\n language: {\n pattern: /^(\\s*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n property: /[-\\w]+/\n }\n },\n 'sub-key': {\n pattern: /^(\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /\"[^\"]*\"/,\n alias: 'property'\n },\n punctuation: /^\\(|\\)$|,/\n }\n }\n }\n },\n operator: /=/,\n tlist: {\n pattern:\n /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n greedy: true,\n inside: {\n function: /^TLIST/,\n property: {\n pattern: /^(\\s*\\(\\s*)\\w+/,\n lookbehind: true\n },\n string: /\"[^\"]*\"/,\n punctuation: /[(),]/,\n operator: /-/\n }\n },\n punctuation: /[;,]/,\n number: {\n pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n lookbehind: true\n },\n boolean: /NO|YES/\n }\n Prism.languages.px = Prism.languages.pcaxis\n}\n","// @ts-nocheck\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\n\n/** @type {import('../core.js').Syntax} */\nexport default function peoplecode(Prism) {\n Prism.languages.peoplecode = {\n comment: RegExp(\n [\n // C-style multiline comments\n /\\/\\*[\\s\\S]*?\\*\\//.source,\n // REM comments\n /\\bREM[^;]*;/.source,\n // Nested <* *> comments\n /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source,\n // /+ +/ comments\n /\\/\\+[\\s\\S]*?\\+\\//.source\n ].join('|')\n ),\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n variable: /%\\w+/,\n 'function-definition': {\n pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n lookbehind: true,\n alias: 'function'\n },\n 'class-name': {\n pattern:\n /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n lookbehind: true,\n inside: {\n punctuation: /:/\n }\n },\n keyword:\n /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n 'operator-keyword': {\n pattern: /\\b(?:and|not|or)\\b/i,\n alias: 'operator'\n },\n function: /[_a-z]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n punctuation: /[:.;,()[\\]]/\n }\n Prism.languages.pcode = Prism.languages.peoplecode\n}\n","// @ts-nocheck\nimport refractorJavadoclike from './javadoclike.js'\nimport refractorPhp from './php.js'\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function phpdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n pattern: RegExp(\n '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n typeExpression +\n '\\\\s+)?)\\\\$\\\\w+'\n ),\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('phpdoc', 'keyword', {\n 'class-name': [\n {\n pattern: RegExp(\n '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n typeExpression\n ),\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n punctuation: /[|\\\\[\\]()]/\n }\n }\n ]\n })\n Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorPhp from './php.js'\nphpExtras.displayName = 'php-extras'\nphpExtras.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function phpExtras(Prism) {\n Prism.register(refractorPhp)\n Prism.languages.insertBefore('php', 'variable', {\n this: {\n pattern: /\\$this\\b/,\n alias: 'keyword'\n },\n global:\n /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n scope: {\n pattern: /\\b[\\w\\\\]+::/,\n inside: {\n keyword: /\\b(?:parent|self|static)\\b/,\n punctuation: /::|\\\\/\n }\n }\n })\n}\n","// @ts-nocheck\nplantUml.displayName = 'plant-uml'\nplantUml.aliases = ['plantuml']\n\n/** @type {import('../core.js').Syntax} */\nexport default function plantUml(Prism) {\n ;(function (Prism) {\n var variable = /\\$\\w+|%[a-z]+%/\n var arrowAttr = /\\[[^[\\]]*\\]/.source\n var arrowDirection = /(?:[drlu]|do|down|le|left|ri|right|up)/.source\n var arrowBody =\n '(?:-+' +\n arrowDirection +\n '-+|\\\\.+' +\n arrowDirection +\n '\\\\.+|-+(?:' +\n arrowAttr +\n '-*)?|' +\n arrowAttr +\n '-+|\\\\.+(?:' +\n arrowAttr +\n '\\\\.*)?|' +\n arrowAttr +\n '\\\\.+)'\n var arrowLeft = /(?:<{1,2}|\\/{1,2}|\\\\{1,2}|<\\||[#*^+}xo])/.source\n var arrowRight = /(?:>{1,2}|\\/{1,2}|\\\\{1,2}|\\|>|[#*^+{xo])/.source\n var arrowPrefix = /[[?]?[ox]?/.source\n var arrowSuffix = /[ox]?[\\]?]?/.source\n var arrow =\n arrowPrefix +\n '(?:' +\n arrowBody +\n arrowRight +\n '|' +\n arrowLeft +\n arrowBody +\n '(?:' +\n arrowRight +\n ')?' +\n ')' +\n arrowSuffix\n Prism.languages['plant-uml'] = {\n comment: {\n pattern: /(^[ \\t]*)(?:'.*|\\/'[\\s\\S]*?'\\/)/m,\n lookbehind: true,\n greedy: true\n },\n preprocessor: {\n pattern: /(^[ \\t]*)!.*/m,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n variable: variable\n }\n },\n delimiter: {\n pattern: /(^[ \\t]*)@(?:end|start)uml\\b/m,\n lookbehind: true,\n greedy: true,\n alias: 'punctuation'\n },\n arrow: {\n pattern: RegExp(\n /(^|[^-.<>?|\\\\[\\]ox])/.source + arrow + /(?![-.<>?|\\\\\\]ox])/.source\n ),\n lookbehind: true,\n greedy: true,\n alias: 'operator',\n inside: {\n expression: {\n pattern: /(\\[)[^[\\]]+(?=\\])/,\n lookbehind: true,\n inside: null // see below\n },\n\n punctuation: /\\[(?=$|\\])|^\\]/\n }\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n text: {\n pattern: /(\\[[ \\t]*[\\r\\n]+(?![\\r\\n]))[^\\]]*(?=\\])/,\n lookbehind: true,\n greedy: true,\n alias: 'string'\n },\n keyword: [\n {\n pattern:\n /^([ \\t]*)(?:abstract\\s+class|end\\s+(?:box|fork|group|merge|note|ref|split|title)|(?:fork|split)(?:\\s+again)?|activate|actor|agent|alt|annotation|artifact|autoactivate|autonumber|backward|binary|boundary|box|break|caption|card|case|circle|class|clock|cloud|collections|component|concise|control|create|critical|database|deactivate|destroy|detach|diamond|else|elseif|end|end[hr]note|endif|endswitch|endwhile|entity|enum|file|folder|footer|frame|group|[hr]?note|header|hexagon|hide|if|interface|label|legend|loop|map|namespace|network|newpage|node|nwdiag|object|opt|package|page|par|participant|person|queue|rectangle|ref|remove|repeat|restore|return|robust|scale|set|show|skinparam|stack|start|state|stop|storage|switch|title|together|usecase|usecase\\/|while)(?=\\s|$)/m,\n lookbehind: true,\n greedy: true\n },\n /\\b(?:elseif|equals|not|while)(?=\\s*\\()/,\n /\\b(?:as|is|then)\\b/\n ],\n divider: {\n pattern: /^==.+==$/m,\n greedy: true,\n alias: 'important'\n },\n time: {\n pattern: /@(?:\\d+(?:[:/]\\d+){2}|[+-]?\\d+|:[a-z]\\w*(?:[+-]\\d+)?)\\b/i,\n greedy: true,\n alias: 'number'\n },\n color: {\n pattern: /#(?:[a-z_]+|[a-fA-F0-9]+)\\b/,\n alias: 'symbol'\n },\n variable: variable,\n punctuation: /[:,;()[\\]{}]|\\.{3}/\n }\n Prism.languages['plant-uml'].arrow.inside.expression.inside =\n Prism.languages['plant-uml']\n Prism.languages['plantuml'] = Prism.languages['plant-uml']\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorSql from './sql.js'\nplsql.displayName = 'plsql'\nplsql.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function plsql(Prism) {\n Prism.register(refractorSql)\n Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n greedy: true\n },\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n keyword:\n /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n })\n Prism.languages.insertBefore('plsql', 'operator', {\n label: {\n pattern: /<<\\s*\\w+\\s*>>/,\n alias: 'symbol'\n }\n })\n}\n","// @ts-nocheck\npowerquery.displayName = 'powerquery'\npowerquery.aliases = ['mscript', 'pq']\n\n/** @type {import('../core.js').Syntax} */\nexport default function powerquery(Prism) {\n // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n\n Prism.languages.powerquery = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n string: {\n pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n constant: [\n /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:All|First|Last)\\b/,\n /\\bOrder\\.(?:Ascending|Descending)\\b/,\n /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Decimal|Double)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n keyword:\n /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n function: {\n pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n lookbehind: true\n },\n 'data-type': {\n pattern:\n /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n lookbehind: true\n },\n operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n punctuation: /[,;\\[\\](){}]/\n }\n Prism.languages.pq = Prism.languages['powerquery']\n Prism.languages.mscript = Prism.languages['powerquery']\n}\n","// @ts-nocheck\npowershell.displayName = 'powershell'\npowershell.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function powershell(Prism) {\n ;(function (Prism) {\n var powershell = (Prism.languages.powershell = {\n comment: [\n {\n pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n lookbehind: true\n },\n {\n pattern: /(^|[^`])#.*/,\n lookbehind: true\n }\n ],\n string: [\n {\n pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n greedy: true,\n inside: null // see below\n },\n {\n pattern: /'(?:[^']|'')*'/,\n greedy: true\n }\n ],\n // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n boolean: /\\$(?:false|true)\\b/i,\n variable: /\\$\\w+\\b/,\n // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n function: [\n /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n ],\n // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n keyword:\n /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n operator: {\n pattern:\n /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n lookbehind: true\n },\n punctuation: /[|{}[\\];(),.]/\n })\n\n // Variable interpolation inside strings, and nested expressions\n powershell.string[0].inside = {\n function: {\n // Allow for one level of nesting\n pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n lookbehind: true,\n inside: powershell\n },\n boolean: powershell.boolean,\n variable: powershell.variable\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nprocessing.displayName = 'processing'\nprocessing.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function processing(Prism) {\n Prism.register(refractorClike)\n Prism.languages.processing = Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n // Spaces are allowed between function name and parenthesis\n function: /\\b\\w+(?=\\s*\\()/,\n operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n })\n Prism.languages.insertBefore('processing', 'number', {\n // Special case: XML is a type\n constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n type: {\n pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n alias: 'class-name'\n }\n })\n}\n","// @ts-nocheck\nprolog.displayName = 'prolog'\nprolog.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function prolog(Prism) {\n Prism.languages.prolog = {\n // Syntax depends on the implementation\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n // Depending on the implementation, strings may allow escaped newlines and quote-escape\n string: {\n pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n greedy: true\n },\n builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n number: /\\b\\d+(?:\\.\\d*)?/,\n // Custom operators are allowed\n operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n punctuation: /[(){}\\[\\],]/\n }\n}\n","// @ts-nocheck\npromql.displayName = 'promql'\npromql.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function promql(Prism) {\n // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n\n ;(function (Prism) {\n // PromQL Aggregation Operators\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n var aggregations = [\n 'sum',\n 'min',\n 'max',\n 'avg',\n 'group',\n 'stddev',\n 'stdvar',\n 'count',\n 'count_values',\n 'bottomk',\n 'topk',\n 'quantile'\n ]\n\n // PromQL vector matching + the by and without clauses\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n var vectorMatching = [\n 'on',\n 'ignoring',\n 'group_right',\n 'group_left',\n 'by',\n 'without'\n ]\n\n // PromQL offset modifier\n // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n var offsetModifier = ['offset']\n var keywords = aggregations.concat(vectorMatching, offsetModifier)\n Prism.languages.promql = {\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n 'vector-match': {\n // Match the comma-separated label lists inside vector matching:\n pattern: new RegExp(\n '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n ),\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /\\b[^,]+\\b/,\n alias: 'attr-name'\n },\n punctuation: /[(),]/\n }\n },\n 'context-labels': {\n pattern: /\\{[^{}]*\\}/,\n inside: {\n 'label-key': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n alias: 'attr-name'\n },\n 'label-value': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true,\n alias: 'attr-value'\n },\n punctuation: /\\{|\\}|=~?|![=~]|,/\n }\n },\n 'context-range': [\n {\n pattern: /\\[[\\w\\s:]+\\]/,\n // [1m]\n inside: {\n punctuation: /\\[|\\]|:/,\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n },\n {\n pattern: /(\\boffset\\s+)\\w+/,\n // offset 1m\n lookbehind: true,\n inside: {\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n }\n ],\n keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n punctuation: /[{};()`,.[\\]]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nproperties.displayName = 'properties'\nproperties.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function properties(Prism) {\n Prism.languages.properties = {\n comment: /^[ \\t]*[#!].*$/m,\n value: {\n pattern:\n /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n lookbehind: true,\n alias: 'attr-value'\n },\n key: {\n pattern: /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n alias: 'attr-name'\n },\n punctuation: /[=:]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function protobuf(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n var builtinTypes =\n /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n Prism.languages.protobuf = Prism.languages.extend('clike', {\n 'class-name': [\n {\n pattern:\n /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n lookbehind: true\n },\n {\n pattern:\n /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n })\n Prism.languages.insertBefore('protobuf', 'operator', {\n map: {\n pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /[<>.,]/,\n builtin: builtinTypes\n }\n },\n builtin: builtinTypes,\n 'positional-class-name': {\n pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /\\./\n }\n },\n annotation: {\n pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nstylus.displayName = 'stylus'\nstylus.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function stylus(Prism) {\n ;(function (Prism) {\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n lookbehind: true\n }\n // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n var inside = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n url: {\n pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n interpolation: null,\n // See below\n func: null,\n // See below\n important: /\\B!(?:important|optional)\\b/i,\n keyword: {\n pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n lookbehind: true\n },\n hexcode: /#[\\da-f]{3,6}/i,\n color: [\n /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n boolean: /\\b(?:false|true)\\b/,\n operator: [\n // We want non-word chars around \"-\" because it is\n // accepted in property names.\n /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n ],\n number: number,\n punctuation: /[{}()\\[\\];:,]/\n }\n inside['interpolation'] = {\n pattern: /\\{[^\\r\\n}:]+\\}/,\n alias: 'variable',\n inside: {\n delimiter: {\n pattern: /^\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: inside\n }\n }\n inside['func'] = {\n pattern: /[\\w-]+\\([^)]*\\).*/,\n inside: {\n function: /^[^(]+/,\n rest: inside\n }\n }\n Prism.languages.stylus = {\n 'atrule-declaration': {\n pattern: /(^[ \\t]*)@.+/m,\n lookbehind: true,\n inside: {\n atrule: /^@[\\w-]+/,\n rest: inside\n }\n },\n 'variable-declaration': {\n pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n lookbehind: true,\n inside: {\n variable: /^\\S+/,\n rest: inside\n }\n },\n statement: {\n pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n lookbehind: true,\n inside: {\n keyword: /^\\S+/,\n rest: inside\n }\n },\n // A property/value pair cannot end with a comma or a brace\n // It cannot have indented content unless it ended with a semicolon\n 'property-declaration': {\n pattern:\n /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n lookbehind: true,\n inside: {\n property: {\n pattern: /^[^\\s:]+/,\n inside: {\n interpolation: inside.interpolation\n }\n },\n rest: inside\n }\n },\n // A selector can contain parentheses only as part of a pseudo-element\n // It can span multiple lines.\n // It must end with a comma or an accolade or have indented content.\n selector: {\n pattern:\n /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n lookbehind: true,\n inside: {\n interpolation: inside.interpolation,\n comment: inside.comment,\n punctuation: /[{},]/\n }\n },\n func: inside.func,\n string: inside.string,\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n interpolation: inside.interpolation,\n punctuation: /[{}()\\[\\];:.]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\ntwig.displayName = 'twig'\ntwig.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function twig(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.twig = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n }\n },\n keyword: /\\b(?:even|if|odd)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'twig') {\n return\n }\n var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n })\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nimport refractorMarkup from './markup.js'\npug.displayName = 'pug'\npug.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function pug(Prism) {\n Prism.register(refractorJavascript)\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n // TODO:\n // - Add CSS highlighting inside <style> tags\n // - Add support for multi-line code blocks\n // - Add support for interpolation #{} and !{}\n // - Add support for tag interpolation #[]\n // - Add explicit support for plain text using |\n // - Add support for markup embedded in plain text\n\n Prism.languages.pug = {\n // Multiline stuff should appear before the rest\n\n // This handles both single-line and multi-line comments\n comment: {\n pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n lookbehind: true\n },\n // All the tag-related part is in lookbehind\n // so that it can be highlighted by the \"tag\" pattern\n 'multiline-script': {\n pattern:\n /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n // See at the end of the file for known filters\n filter: {\n pattern:\n /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: /\\S[\\s\\S]*/\n }\n },\n 'multiline-plain-text': {\n pattern:\n /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true\n },\n markup: {\n pattern: /(^[\\t ]*)<.+/m,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n lookbehind: true\n },\n // This handle all conditional and loop keywords\n 'flow-control': {\n pattern:\n /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n lookbehind: true,\n inside: {\n each: {\n pattern: /^each .+? in\\b/,\n inside: {\n keyword: /\\b(?:each|in)\\b/,\n punctuation: /,/\n }\n },\n branch: {\n pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n alias: 'keyword'\n },\n rest: Prism.languages.javascript\n }\n },\n keyword: {\n pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n lookbehind: true\n },\n mixin: [\n // Declaration\n {\n pattern: /(^[\\t ]*)mixin .+/m,\n lookbehind: true,\n inside: {\n keyword: /^mixin/,\n function: /\\w+(?=\\s*\\(|\\s*$)/,\n punctuation: /[(),.]/\n }\n },\n // Usage\n {\n pattern: /(^[\\t ]*)\\+.+/m,\n lookbehind: true,\n inside: {\n name: {\n pattern: /^\\+\\w+/,\n alias: 'function'\n },\n rest: Prism.languages.javascript\n }\n }\n ],\n script: {\n pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'plain-text': {\n pattern:\n /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n lookbehind: true,\n inside: {\n attributes: [\n {\n pattern: /&[^(]+\\([^)]+\\)/,\n inside: Prism.languages.javascript\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[!=(),]+/\n }\n }\n ],\n punctuation: /:/,\n 'attr-id': /#[\\w\\-]+/,\n 'attr-class': /\\.[\\w\\-]+/\n }\n },\n code: [\n {\n pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n punctuation: /[.\\-!=|]+/\n }\n var filter_pattern =\n /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n .source\n\n // Non exhaustive list of available filters and associated languages\n var filters = [\n {\n filter: 'atpl',\n language: 'twig'\n },\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'ejs',\n 'handlebars',\n 'less',\n 'livescript',\n 'markdown',\n {\n filter: 'sass',\n language: 'scss'\n },\n 'stylus'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('<filter_name>', function () {\n return filter.filter\n }),\n 'm'\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: {\n pattern: /\\S[\\s\\S]*/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('pug', 'filter', all_filters)\n })(Prism)\n}\n","// @ts-nocheck\npuppet.displayName = 'puppet'\npuppet.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function puppet(Prism) {\n ;(function (Prism) {\n Prism.languages.puppet = {\n heredoc: [\n // Matches the content of a quoted heredoc string (subject to interpolation)\n {\n pattern:\n /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/\n // See interpolation below\n }\n },\n // Matches the content of an unquoted heredoc string (no interpolation)\n {\n pattern:\n /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/\n }\n },\n // Matches the start tag of heredoc strings\n {\n pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n alias: 'string',\n inside: {\n punctuation: {\n pattern: /(\\().+?(?=\\))/,\n lookbehind: true\n }\n }\n }\n ],\n 'multiline-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n regex: {\n // Must be prefixed with the keyword \"node\" or a non-word char\n pattern:\n /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n lookbehind: true,\n greedy: true,\n inside: {\n // Extended regexes must have the x flag. They can contain single-line comments.\n 'extended-regex': {\n pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n inside: {\n comment: /#.*/\n }\n }\n }\n },\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n string: {\n // Allow for one nested level of double quotes inside interpolation\n pattern:\n /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n 'double-quoted': {\n pattern: /^\"[\\s\\S]*\"$/,\n inside: {\n // See interpolation below\n }\n }\n }\n },\n variable: {\n pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n inside: {\n punctuation: /::/\n }\n },\n 'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n function: [\n {\n pattern: /(\\.)(?!\\d)\\w+/,\n lookbehind: true\n },\n /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n ],\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n // Includes words reserved for future use\n keyword:\n /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n datatype: {\n pattern:\n /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n alias: 'symbol'\n },\n operator:\n /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n punctuation: /[\\[\\]{}().,;]|:+/\n }\n var interpolation = [\n {\n // Allow for one nested level of braces inside interpolation\n pattern:\n /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n lookbehind: true,\n inside: {\n 'short-variable': {\n // Negative look-ahead prevent wrong highlighting of functions\n pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n },\n delimiter: {\n pattern: /^\\$/,\n alias: 'variable'\n },\n rest: Prism.languages.puppet\n }\n },\n {\n pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n }\n ]\n Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n Prism.languages.puppet['string'].inside[\n 'double-quoted'\n ].inside.interpolation = interpolation\n })(Prism)\n}\n","// @ts-nocheck\npure.displayName = 'pure'\npure.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function pure(Prism) {\n ;(function (Prism) {\n // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n\n Prism.languages.pure = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n },\n /#!.+/\n ],\n 'inline-lang': {\n pattern: /%<[\\s\\S]+?%>/,\n greedy: true,\n inside: {\n lang: {\n pattern: /(^%< *)-\\*-.+?-\\*-/,\n lookbehind: true,\n alias: 'comment'\n },\n delimiter: {\n pattern: /^%<.*|%>$/,\n alias: 'punctuation'\n }\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n number: {\n // The look-behind prevents wrong highlighting of the .. operator\n pattern:\n /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n function:\n /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n special: {\n pattern: /\\b__[a-z]+__\\b/i,\n alias: 'builtin'\n },\n // Any combination of operator chars can be an operator\n // eslint-disable-next-line no-misleading-character-class\n operator:\n /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n punctuation: /[(){}\\[\\];,|]/\n }\n var inlineLanguages = [\n 'c',\n {\n lang: 'c++',\n alias: 'cpp'\n },\n 'fortran'\n ]\n var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n inlineLanguages.forEach(function (lang) {\n var alias = lang\n if (typeof lang !== 'string') {\n alias = lang.alias\n lang = lang.lang\n }\n if (Prism.languages[alias]) {\n var o = {}\n o['inline-lang-' + alias] = {\n pattern: RegExp(\n inlineLanguageRe.replace(\n '<lang>',\n lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n ),\n 'i'\n ),\n inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n }\n o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n Prism.languages[alias]\n )\n Prism.languages.insertBefore('pure', 'inline-lang', o)\n }\n })\n\n // C is the default inline language\n if (Prism.languages.c) {\n Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n Prism.languages.c\n )\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\npurebasic.displayName = 'purebasic'\npurebasic.aliases = ['pbfasm']\n\n/** @type {import('../core.js').Syntax} */\nexport default function purebasic(Prism) {\n Prism.register(refractorClike)\n /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n\n // PureBasic support, steal stuff from ansi-c\n Prism.languages.purebasic = Prism.languages.extend('clike', {\n comment: /;.*/,\n keyword:\n /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n operator:\n /(?:@\\*?|\\?|\\*)\\w+\\$?|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n })\n Prism.languages.insertBefore('purebasic', 'keyword', {\n tag: /#\\w+\\$?/,\n asm: {\n pattern: /(^[\\t ]*)!.*/m,\n lookbehind: true,\n alias: 'tag',\n inside: {\n comment: /;.*/,\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n // Anonymous label references, i.e.: jmp @b\n 'label-reference-anonymous': {\n pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n // Named label reference, i.e.: jne label1\n 'label-reference-addressed': {\n pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n keyword: [\n /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n ],\n function: {\n pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n lookbehind: true\n },\n 'function-inline': {\n pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n lookbehind: true,\n alias: 'fasm-label'\n },\n register:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n number:\n /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n }\n }\n })\n delete Prism.languages.purebasic['class-name']\n delete Prism.languages.purebasic['boolean']\n Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","// @ts-nocheck\nimport refractorHaskell from './haskell.js'\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\n\n/** @type {import('../core.js').Syntax} */\nexport default function purescript(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.purescript = Prism.languages.extend('haskell', {\n keyword:\n /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin functions only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n operator: [\n // Infix operators\n Prism.languages.haskell.operator[0],\n // ASCII operators\n Prism.languages.haskell.operator[2],\n // All UTF16 Unicode operator symbols\n // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n // See https://github.com/PrismJS/prism/issues/3006 for more details.\n /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n ]\n })\n Prism.languages.purs = Prism.languages.purescript\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\n\n/** @type {import('../core.js').Syntax} */\nexport default function qsharp(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n }\n\n // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n // all other keywords\n other:\n 'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n }\n // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var keywords = RegExp(\n keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n )\n\n // types\n var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n }\n\n // strings\n var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n Prism.languages.qsharp = Prism.languages.extend('clike', {\n comment: /\\/\\/.*/,\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // open Microsoft.Quantum.Canon;\n // open Microsoft.Quantum.Canon as CN;\n pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n qualifiedName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // namespace Quantum.App1;\n pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n lookbehind: true,\n inside: typeInside\n }\n ],\n keyword: keywords,\n number:\n /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n operator:\n /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n punctuation: /::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('qsharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n })\n\n // single line\n var interpolationExpr = nested(\n replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n 2\n )\n Prism.languages.insertBefore('qsharp', 'string', {\n 'interpolation-string': {\n pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n greedy: true,\n inside: {\n interpolation: {\n pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n interpolationExpr\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-qsharp',\n inside: Prism.languages.qsharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n })(Prism)\n Prism.languages.qs = Prism.languages.qsharp\n}\n","// @ts-nocheck\nq.displayName = 'q'\nq.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function q(Prism) {\n Prism.languages.q = {\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n comment: [\n // From http://code.kx.com/wiki/Reference/Slash:\n // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n {\n pattern: /([\\t )\\]}])\\/.*/,\n lookbehind: true,\n greedy: true\n },\n // From http://code.kx.com/wiki/Reference/Slash:\n // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n {\n pattern:\n /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n lookbehind: true,\n greedy: true\n },\n // From http://code.kx.com/wiki/Reference/Slash:\n // A \\ on a line by itself with no preceding matching / will comment to end of file.\n {\n pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n greedy: true\n },\n {\n pattern: /^#!.+/m,\n greedy: true\n }\n ],\n symbol: /`(?::\\S+|[\\w.]*)/,\n datetime: {\n pattern:\n /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n alias: 'number'\n },\n // The negative look-ahead prevents bad highlighting\n // of verbs 0: and 1:\n number:\n /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n keyword:\n /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n adverb: {\n pattern: /['\\/\\\\]:?|\\beach\\b/,\n alias: 'function'\n },\n verb: {\n pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n alias: 'operator'\n },\n punctuation: /[(){}\\[\\];.]/\n }\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nqml.displayName = 'qml'\nqml.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function qml(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n var jsExpr =\n /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n .replace(/<string>/g, function () {\n return jsString\n })\n .replace(/<comment>/g, function () {\n return jsComment\n })\n\n // the pattern will blow up, so only a few iterations\n for (var i = 0; i < 2; i++) {\n jsExpr = jsExpr.replace(/<expr>/g, function () {\n return jsExpr\n })\n }\n jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n Prism.languages.qml = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n 'javascript-function': {\n pattern: RegExp(\n /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n 'class-name': {\n pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n lookbehind: true\n },\n property: [\n {\n pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true\n },\n {\n pattern:\n /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true,\n inside: {\n keyword: /^property/,\n property: /\\w+(?:\\.\\w+)*/\n }\n }\n ],\n 'javascript-expression': {\n pattern: RegExp(\n /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n keyword: /\\b(?:as|import|on)\\b/,\n punctuation: /[{}[\\]:;,]/\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nqore.displayName = 'qore'\nqore.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function qore(Prism) {\n Prism.register(refractorClike)\n Prism.languages.qore = Prism.languages.extend('clike', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n lookbehind: true\n },\n // Overridden to allow unescaped multi-line strings\n string: {\n pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n number:\n /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n lookbehind: true\n },\n variable: /\\$(?!\\d)\\w+\\b/\n })\n}\n","// @ts-nocheck\nimport refractorScheme from './scheme.js'\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\n\n/** @type {import('../core.js').Syntax} */\nexport default function racket(Prism) {\n Prism.register(refractorScheme)\n Prism.languages.racket = Prism.languages.extend('scheme', {\n 'lambda-parameter': {\n // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n // this will just prevent false positives of the `function` pattern\n pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('racket', 'string', {\n lang: {\n pattern: /^#lang.+/m,\n greedy: true,\n alias: 'keyword'\n }\n })\n Prism.languages.rkt = Prism.languages.racket\n}\n","// @ts-nocheck\nimport refractorCsharp from './csharp.js'\nimport refractorMarkup from './markup.js'\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\n\n/** @type {import('../core.js').Syntax} */\nexport default function cshtml(Prism) {\n Prism.register(refractorCsharp)\n Prism.register(refractorMarkup)\n // Docs:\n // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n\n ;(function (Prism) {\n var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n .source\n var stringLike =\n /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n '|' +\n /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<self>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern\n .replace(/<self>/g, '[^\\\\s\\\\S]')\n .replace(/<str>/g, '(?:' + stringLike + ')')\n .replace(/<comment>/g, '(?:' + commentLike + ')')\n }\n var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 1)\n var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n var angle = nested(/<(?:[^<>'\"@/]|<comment>|<self>)*>/.source, 1)\n var inlineCs =\n /@/.source +\n /(?:await\\b\\s*)?/.source +\n '(?:' +\n /(?!await\\b)\\w+\\b/.source +\n '|' +\n round +\n ')' +\n '(?:' +\n /[?!]?\\.\\w+\\b/.source +\n '|' +\n '(?:' +\n angle +\n ')?' +\n round +\n '|' +\n square +\n ')*' +\n /(?![?!\\.(\\[]|<(?!\\/))/.source\n\n // Note about the above bracket patterns:\n // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n // messes up the bracket and string counting implemented by the above patterns.\n //\n // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n // complexity of an HTML expression.\n //\n // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n\n var tagAttrInlineCs = /@(?![\\w()])/.source + '|' + inlineCs\n var tagAttrValue =\n '(?:' +\n /\"[^\"@]*\"|'[^'@]*'|[^\\s'\"@>=]+(?=[\\s>])/.source +\n '|' +\n '[\"\\'][^\"\\'@]*(?:(?:' +\n tagAttrInlineCs +\n ')[^\"\\'@]*)+[\"\\']' +\n ')'\n var tagAttrs =\n /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*<tagAttrValue>|(?=[\\s/>])))+)?/.source.replace(\n /<tagAttrValue>/,\n tagAttrValue\n )\n var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n var tagRegion =\n /\\B@?/.source +\n '(?:' +\n /<([a-zA-Z][\\w:]*)/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' +\n // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' +\n // nested start tag\n nested(\n // eslint-disable-next-line regexp/strict\n /<\\1/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' +\n // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' +\n '<self>') +\n ')*' +\n // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source,\n 2\n )) +\n ')*' +\n // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source +\n '|' +\n /</.source +\n tagContent +\n ')'\n\n // Now for the actual language definition(s):\n //\n // Razor as a language has 2 parts:\n // 1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n // 2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n //\n // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n // other. However, only CSHTML will be exported via `Prism.languages`.\n\n Prism.languages.cshtml = Prism.languages.extend('markup', {})\n var csharpWithHtml = Prism.languages.insertBefore(\n 'csharp',\n 'string',\n {\n html: {\n pattern: RegExp(tagRegion),\n greedy: true,\n inside: Prism.languages.cshtml\n }\n },\n {\n csharp: Prism.languages.extend('csharp', {})\n }\n )\n var cs = {\n pattern: /\\S[\\s\\S]*/,\n alias: 'language-csharp',\n inside: csharpWithHtml\n }\n var inlineValue = {\n pattern: RegExp(/(^|[^@])/.source + inlineCs),\n lookbehind: true,\n greedy: true,\n alias: 'variable',\n inside: {\n keyword: /^@/,\n csharp: cs\n }\n }\n Prism.languages.cshtml.tag.pattern = RegExp(/<\\/?/.source + tagContent)\n Prism.languages.cshtml.tag.inside['attr-value'].pattern = RegExp(\n /=\\s*/.source + tagAttrValue\n )\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n value: inlineValue\n },\n Prism.languages.cshtml.tag.inside['attr-value']\n )\n Prism.languages.insertBefore('cshtml', 'prolog', {\n 'razor-comment': {\n pattern: /@\\*[\\s\\S]*?\\*@/,\n greedy: true,\n alias: 'comment'\n },\n block: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n '(?:' +\n [\n // @{ ... }\n curly,\n // @code{ ... }\n /(?:code|functions)\\s*/.source + curly,\n // @for (...) { ... }\n /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n round +\n /\\s*/.source +\n curly,\n // @do { ... } while (...);\n /do\\s*/.source +\n curly +\n /\\s*while\\s*/.source +\n round +\n /(?:\\s*;)?/.source,\n // @try { ... } catch (...) { ... } finally { ... }\n /try\\s*/.source +\n curly +\n /\\s*catch\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n /\\s*finally\\s*/.source +\n curly,\n // @if (...) {...} else if (...) {...} else {...}\n /if\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n '(?:' +\n /\\s*else/.source +\n '(?:' +\n /\\s+if\\s*/.source +\n round +\n ')?' +\n /\\s*/.source +\n curly +\n ')*',\n // @helper Ident(params) { ... }\n /helper\\s+\\w+\\s*/.source + round + /\\s*/.source + curly\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w*/,\n csharp: cs\n }\n },\n directive: {\n pattern:\n /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w+/,\n csharp: cs\n }\n },\n value: inlineValue,\n 'delegate-operator': {\n pattern: /(^|[^@])@(?=<)/,\n lookbehind: true,\n alias: 'operator'\n }\n })\n Prism.languages.razor = Prism.languages.cshtml\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJavascript from './javascript.js'\nimport refractorMarkup from './markup.js'\njsx.displayName = 'jsx'\njsx.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function jsx(Prism) {\n Prism.register(refractorJavascript)\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function re(source, flags) {\n source = source\n .replace(/<S>/g, function () {\n return space\n })\n .replace(/<BRACES>/g, function () {\n return braces\n })\n .replace(/<SPREAD>/g, function () {\n return spread\n })\n return RegExp(source, flags)\n }\n spread = re(spread).source\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = re(\n /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n .source\n )\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'special-attr',\n {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n },\n Prism.languages.jsx.tag\n )\n\n // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token)\n\n // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJsx from './jsx.js'\nimport refractorTypescript from './typescript.js'\ntsx.displayName = 'tsx'\ntsx.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript)\n\n // doesn't work with TS because TS is too complex\n delete Prism.languages.tsx['parameter']\n delete Prism.languages.tsx['literal-property']\n\n // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nreason.displayName = 'reason'\nreason.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function reason(Prism) {\n Prism.register(refractorClike)\n Prism.languages.reason = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n // 'class-name' must be matched *after* 'constructor' defined below\n 'class-name': /\\b[A-Z]\\w*/,\n keyword:\n /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n operator:\n /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n })\n Prism.languages.insertBefore('reason', 'class-name', {\n char: {\n pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n greedy: true\n },\n // Negative look-ahead prevents from matching things like String.capitalize\n constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n label: {\n pattern: /\\b[a-z]\\w*(?=::)/,\n alias: 'symbol'\n }\n })\n\n // We can't match functions property, so let's not even try.\n delete Prism.languages.reason.function\n}\n","// @ts-nocheck\nrego.displayName = 'rego'\nrego.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function rego(Prism) {\n // https://www.openpolicyagent.org/docs/latest/policy-reference/\n\n Prism.languages.rego = {\n comment: /#.*/,\n property: {\n pattern:\n /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n inside: {\n namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n punctuation: /\\./\n }\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n punctuation: /[,;.\\[\\]{}()]/\n }\n}\n","// @ts-nocheck\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\n\n/** @type {import('../core.js').Syntax} */\nexport default function renpy(Prism) {\n Prism.languages.renpy = {\n comment: {\n pattern: /(^|[^\\\\])#.+/,\n lookbehind: true\n },\n string: {\n pattern:\n /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\()/i,\n property:\n /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n keyword:\n /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n number:\n /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n operator:\n /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.rpy = Prism.languages.renpy\n}\n","// @ts-nocheck\nrescript.displayName = 'rescript'\nrescript.aliases = ['res']\n\n/** @type {import('../core.js').Syntax} */\nexport default function rescript(Prism) {\n Prism.languages.rescript = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n char: {\n pattern: /'(?:[^\\r\\n\\\\]|\\\\(?:.|\\w+))'/,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n 'class-name': /\\b[A-Z]\\w*|@[a-z.]*|#[A-Za-z]\\w*|#\\d/,\n function: {\n pattern: /[a-zA-Z]\\w*(?=\\()|(\\.)[a-z]\\w*/,\n lookbehind: true\n },\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n boolean: /\\b(?:false|true)\\b/,\n 'attr-value': /[A-Za-z]\\w*(?==)/,\n constant: {\n pattern: /(\\btype\\s+)[a-z]\\w*/,\n lookbehind: true\n },\n tag: {\n pattern: /(<)[a-z]\\w*|(?:<\\/)[a-z]\\w*/,\n lookbehind: true,\n inside: {\n operator: /<|>|\\//\n }\n },\n keyword:\n /\\b(?:and|as|assert|begin|bool|class|constraint|do|done|downto|else|end|exception|external|float|for|fun|function|if|in|include|inherit|initializer|int|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|string|switch|then|to|try|type|when|while|with)\\b/,\n operator:\n /\\.{3}|:[:=]?|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/,\n punctuation: /[(){}[\\],;.]/\n }\n Prism.languages.insertBefore('rescript', 'string', {\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'tag'\n },\n rest: Prism.languages.rescript\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.res = Prism.languages.rescript\n}\n","// @ts-nocheck\nrest.displayName = 'rest'\nrest.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function rest(Prism) {\n Prism.languages.rest = {\n table: [\n {\n pattern:\n /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n lookbehind: true,\n inside: {\n punctuation: /\\||(?:\\+[=-]+)+\\+/\n }\n },\n {\n pattern:\n /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n lookbehind: true,\n inside: {\n punctuation: /[=-]+/\n }\n }\n ],\n // Directive-like patterns\n\n 'substitution-def': {\n pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n lookbehind: true,\n inside: {\n substitution: {\n pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n alias: 'attr-value',\n inside: {\n punctuation: /^\\||\\|$/\n }\n },\n directive: {\n pattern: /( )(?! )[^:]+::/,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n }\n }\n },\n 'link-target': [\n {\n pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]$/\n }\n },\n {\n pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^_|:$/\n }\n }\n ],\n directive: {\n pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n },\n comment: {\n // The two alternatives try to prevent highlighting of blank comments\n pattern:\n /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n lookbehind: true\n },\n title: [\n // Overlined and underlined\n {\n pattern:\n /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n inside: {\n punctuation:\n /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n },\n // Underlined only\n {\n pattern:\n /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n lookbehind: true,\n inside: {\n punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }\n ],\n hr: {\n pattern:\n /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n lookbehind: true,\n alias: 'punctuation'\n },\n field: {\n pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n 'command-line-option': {\n pattern:\n /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'literal-block': {\n pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^::/,\n alias: 'punctuation'\n }\n }\n },\n 'quoted-literal-block': {\n pattern:\n /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n alias: 'punctuation'\n }\n }\n },\n 'list-bullet': {\n pattern:\n /(^[\\t ]*)(?:[*+\\-•‣âƒ]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'doctest-block': {\n pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /^>>>/\n }\n },\n inline: [\n {\n pattern:\n /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n lookbehind: true,\n inside: {\n bold: {\n pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n lookbehind: true\n },\n italic: {\n pattern: /(^\\*).+(?=\\*$)/,\n lookbehind: true\n },\n 'inline-literal': {\n pattern: /(^``).+(?=``$)/,\n lookbehind: true,\n alias: 'symbol'\n },\n role: {\n pattern: /^:[^:]+:|:[^:]+:$/,\n alias: 'function',\n inside: {\n punctuation: /^:|:$/\n }\n },\n 'interpreted-text': {\n pattern: /(^`).+(?=`$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n substitution: {\n pattern: /(^\\|).+(?=\\|$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n punctuation: /\\*\\*?|``?|\\|/\n }\n }\n ],\n link: [\n {\n pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]_$/\n }\n },\n {\n pattern:\n /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n alias: 'string',\n inside: {\n punctuation: /^_?`|`$|`?_?_$/\n }\n }\n ],\n // Line block start,\n // quote attribution,\n // explicit markup start,\n // and anonymous hyperlink target shortcut (__)\n punctuation: {\n pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n lookbehind: true\n }\n }\n}\n","// @ts-nocheck\nrip.displayName = 'rip'\nrip.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function rip(Prism) {\n Prism.languages.rip = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n char: {\n pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n regex: {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n builtin: /@|\\bSystem\\b/,\n boolean: /\\b(?:false|true)\\b/,\n date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n }\n}\n","// @ts-nocheck\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function roboconf(Prism) {\n Prism.languages.roboconf = {\n comment: /#.*/,\n keyword: {\n pattern:\n /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n lookbehind: true\n },\n component: {\n pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n alias: 'variable'\n },\n property: /[\\w.-]+(?=[ \\t]*:)/,\n value: {\n pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n lookbehind: true,\n alias: 'attr-value'\n },\n optional: {\n pattern: /\\(optional\\)/,\n alias: 'builtin'\n },\n wildcard: {\n pattern: /(\\.)\\*/,\n lookbehind: true,\n alias: 'operator'\n },\n punctuation: /[{},.;:=]/\n }\n}\n","// @ts-nocheck\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = ['robot']\n\n/** @type {import('../core.js').Syntax} */\nexport default function robotframework(Prism) {\n ;(function (Prism) {\n var comment = {\n pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n lookbehind: true,\n greedy: true\n }\n var variable = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n lookbehind: true,\n inside: {\n punctuation: /^[$@&%]\\{|\\}$/\n }\n }\n function createSection(name, inside) {\n var extendecInside = {}\n extendecInside['section-header'] = {\n pattern: /^ ?\\*{3}.+?\\*{3}/,\n alias: 'keyword'\n }\n\n // copy inside tokens\n for (var token in inside) {\n extendecInside[token] = inside[token]\n }\n extendecInside['tag'] = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /\\[|\\]/\n }\n }\n extendecInside['variable'] = variable\n extendecInside['comment'] = comment\n return {\n pattern: RegExp(\n /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n /<name>/g,\n function () {\n return name\n }\n ),\n 'im'\n ),\n alias: 'section',\n inside: extendecInside\n }\n }\n var docTag = {\n pattern:\n /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n }\n var testNameLike = {\n pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n alias: 'function',\n inside: {\n variable: variable\n }\n }\n var testPropertyLike = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n inside: {\n variable: variable\n }\n }\n Prism.languages['robotframework'] = {\n settings: createSection('Settings', {\n documentation: {\n pattern:\n /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n },\n property: {\n pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true\n }\n }),\n variables: createSection('Variables'),\n 'test-cases': createSection('Test Cases', {\n 'test-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n keywords: createSection('Keywords', {\n 'keyword-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n tasks: createSection('Tasks', {\n 'task-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n comment: comment\n }\n Prism.languages.robot = Prism.languages['robotframework']\n })(Prism)\n}\n","// @ts-nocheck\nsas.displayName = 'sas'\nsas.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function sas(Prism) {\n ;(function (Prism) {\n var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n var numericConstant = {\n pattern: RegExp(stringPattern + '[bx]'),\n alias: 'number'\n }\n var macroVariable = {\n pattern: /&[a-z_]\\w*/i\n }\n var macroKeyword = {\n pattern:\n /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var step = {\n pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n alias: 'keyword',\n lookbehind: true\n }\n var comment = [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n lookbehind: true\n }\n ]\n var string = {\n pattern: RegExp(stringPattern),\n greedy: true\n }\n var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n var func = {\n pattern: /%?\\b\\w+(?=\\()/,\n alias: 'keyword'\n }\n var args = {\n function: func,\n 'arg-value': {\n pattern: /(=\\s*)[A-Z\\.]+/i,\n lookbehind: true\n },\n operator: /=/,\n 'macro-variable': macroVariable,\n arg: {\n pattern: /[A-Z]+/i,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n var format = {\n pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n inside: {\n keyword: /^(?:format|put)(?==)/i,\n equals: /=/,\n format: {\n pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var altformat = {\n pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n inside: {\n keyword: /^(?:format|put)/i,\n format: {\n pattern: /[\\w$]+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var globalStatements = {\n pattern:\n /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var submitStatement = {\n pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var actionSets =\n /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n .source\n var casActions = {\n pattern: RegExp(\n /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n /<act>/g,\n function () {\n return actionSets\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: {\n keyword: RegExp(\n /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n return actionSets\n }),\n 'i'\n ),\n action: {\n pattern: /(?:action)/i,\n alias: 'keyword'\n },\n comment: comment,\n function: func,\n 'arg-value': args['arg-value'],\n operator: args.operator,\n argument: args.arg,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n }\n var keywords = {\n pattern:\n /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n lookbehind: true\n }\n Prism.languages.sas = {\n datalines: {\n pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n lookbehind: true,\n alias: 'string',\n inside: {\n keyword: {\n pattern: /^(?:cards|(?:data)?lines)/i\n },\n punctuation: /;/\n }\n },\n 'proc-sql': {\n pattern:\n /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n sql: {\n pattern: RegExp(\n /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n 'global-statements': globalStatements,\n 'sql-statements': {\n pattern:\n /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-groovy': {\n pattern:\n /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n groovy: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-groovy',\n inside: Prism.languages.groovy\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-lua': {\n pattern:\n /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n lua: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-lua',\n inside: Prism.languages.lua\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-cas': {\n pattern:\n /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n 'statement-var': {\n pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n lookbehind: true,\n inside: {\n statement: {\n pattern: /^saveresult\\s+\\S+/i,\n inside: {\n keyword: /^(?:saveresult)/i\n }\n },\n rest: args\n }\n },\n 'cas-actions': casActions,\n statement: {\n pattern:\n /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n lookbehind: true,\n inside: args\n },\n step: step,\n keyword: keywords,\n function: func,\n format: format,\n altformat: altformat,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-args': {\n pattern: RegExp(\n /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n inside: args\n },\n /*Special keywords within macros*/\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'macro-string-functions': {\n pattern:\n /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n lookbehind: true,\n inside: {\n function: {\n pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n alias: 'keyword'\n },\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'escaped-char': {\n pattern: /%['\"()<>=¬^~;,#]/\n },\n punctuation: punctuation\n }\n },\n 'macro-declaration': {\n pattern: /^%macro[^;]+(?=;)/im,\n inside: {\n keyword: /%macro/i\n }\n },\n 'macro-end': {\n pattern: /^%mend[^;]+(?=;)/im,\n inside: {\n keyword: /%mend/i\n }\n },\n /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n macro: {\n pattern: /%_\\w+(?=\\()/,\n alias: 'keyword'\n },\n input: {\n pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n inside: {\n input: {\n alias: 'keyword',\n pattern: /^input/i\n },\n comment: comment,\n number: number,\n 'numeric-constant': numericConstant\n }\n },\n 'options-args': {\n pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n lookbehind: true,\n inside: args\n },\n 'cas-actions': casActions,\n comment: comment,\n function: func,\n format: format,\n altformat: altformat,\n 'numeric-constant': numericConstant,\n datetime: {\n // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n pattern: RegExp(stringPattern + '(?:dt?|t)'),\n alias: 'number'\n },\n string: string,\n step: step,\n keyword: keywords,\n // In SAS Studio syntax highlighting, these operators are styled like keywords\n 'operator-keyword': {\n pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n alias: 'operator'\n },\n // Decimal (1.2e23), hexadecimal (0c1x)\n number: number,\n operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n punctuation: punctuation\n }\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorBash from './bash.js'\nshellSession.displayName = 'shell-session'\nshellSession.aliases = ['sh-session', 'shellsession']\n\n/** @type {import('../core.js').Syntax} */\nexport default function shellSession(Prism) {\n Prism.register(refractorBash)\n ;(function (Prism) {\n // CAREFUL!\n // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n\n var strings = [\n // normal string\n /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n /'[^']*'/.source,\n /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source,\n // here doc\n // 2 capturing groups\n /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n ].join('|')\n Prism.languages['shell-session'] = {\n command: {\n pattern: RegExp(\n // user info\n /^/.source +\n '(?:' +\n // <user> \":\" ( <path> )?\n (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n .source +\n '|' +\n // <path>\n // Since the path pattern is quite general, we will require it to start with a special character to\n // prevent false positives.\n /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n ')?' +\n // shell symbol\n /[$#%](?=\\s)/.source +\n // bash command\n /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n /<<str>>/g,\n function () {\n return strings\n }\n ),\n 'm'\n ),\n greedy: true,\n inside: {\n info: {\n // foo@bar:~/files$ exit\n // foo@bar$ exit\n // ~/files$ exit\n pattern: /^[^#$%]+/,\n alias: 'punctuation',\n inside: {\n user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n punctuation: /:/,\n path: /[\\s\\S]+/\n }\n },\n bash: {\n pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n alias: 'language-bash',\n inside: Prism.languages.bash\n },\n 'shell-symbol': {\n pattern: /^[$#%]/,\n alias: 'important'\n }\n }\n },\n output: /.(?:.*(?:[\\r\\n]|.$))*/\n }\n Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n Prism.languages['shell-session']\n })(Prism)\n}\n","// @ts-nocheck\nsmali.displayName = 'smali'\nsmali.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function smali(Prism) {\n // Test files for the parser itself:\n // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n\n Prism.languages.smali = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n lookbehind: true,\n inside: {\n 'class-name': {\n pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n lookbehind: true\n },\n namespace: {\n pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n lookbehind: true,\n inside: {\n punctuation: /\\//\n }\n },\n builtin: /^L/\n }\n },\n builtin: [\n {\n // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n pattern: /([();\\[])[BCDFIJSVZ]+/,\n lookbehind: true\n },\n {\n // e.g. .field mWifiOnUid:I\n pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /(\\.end\\s+)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n lookbehind: true\n },\n field: {\n pattern: /[\\w$]+(?=:)/,\n alias: 'variable'\n },\n register: {\n pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n lookbehind: true,\n alias: 'variable'\n },\n boolean: {\n pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n lookbehind: true\n },\n label: {\n pattern: /(:)\\w+/,\n lookbehind: true,\n alias: 'property'\n },\n operator: /->|\\.\\.|[\\[=]/,\n punctuation: /[{}(),;:]/\n }\n}\n","// @ts-nocheck\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function smalltalk(Prism) {\n Prism.languages.smalltalk = {\n comment: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n char: {\n pattern: /\\$./,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'])*'/,\n greedy: true\n },\n symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n 'block-arguments': {\n pattern: /(\\[\\s*):[^\\[|]*\\|/,\n lookbehind: true,\n inside: {\n variable: /:[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n 'temporary-variables': {\n pattern: /\\|[^|]+\\|/,\n inside: {\n variable: /[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n keyword: /\\b(?:new|nil|self|super)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: [\n /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n ],\n operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n punctuation: /[.;:?\\[\\](){}]/\n }\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function smarty(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.smarty = {\n comment: {\n pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n greedy: true\n },\n 'embedded-php': {\n pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n greedy: true,\n inside: {\n smarty: {\n pattern: /^\\{php\\}|\\{\\/php\\}$/,\n inside: null // see below\n },\n\n php: {\n pattern: /[\\s\\S]+/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n },\n string: [\n {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\{[^{}]*\\}|`[^`]*`/,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^[{`]|[`}]$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n\n variable: /\\$\\w+/\n }\n },\n {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n greedy: true\n }\n ],\n keyword: {\n pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n lookbehind: true,\n greedy: true\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n greedy: true,\n alias: 'punctuation'\n },\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n variable: [\n /\\$(?!\\d)\\w+/,\n /#(?!\\d)\\w+#/,\n {\n pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n lookbehind: true\n },\n {\n pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n lookbehind: true\n },\n 'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\[\\](){}.,:`]|->/,\n operator: [\n /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n ]\n }\n Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n Prism.languages.smarty\n Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n Prism.languages.smarty\n var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n var smartyPattern = RegExp(\n // comments\n /\\{\\*[\\s\\S]*?\\*\\}/.source +\n '|' +\n // php tags\n /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n '|' +\n // smarty blocks\n /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n /<str>/g,\n function () {\n return string.source\n }\n ),\n 'g'\n )\n\n // Tokenize all inline Smarty expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var smartyLiteralStart = '{literal}'\n var smartyLiteralEnd = '{/literal}'\n var smartyLiteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'smarty',\n smartyPattern,\n function (match) {\n // Smarty tags inside {literal} block are ignored\n if (match === smartyLiteralEnd) {\n smartyLiteralMode = false\n }\n if (!smartyLiteralMode) {\n if (match === smartyLiteralStart) {\n smartyLiteralMode = true\n }\n return true\n }\n return false\n }\n )\n })\n\n // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n })\n })(Prism)\n}\n","// @ts-nocheck\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\n\n/** @type {import('../core.js').Syntax} */\nexport default function sml(Prism) {\n // https://smlfamily.github.io/sml97-defn.pdf\n // https://people.mpi-sws.org/~rossberg/sml.html\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n Prism.languages.sml = {\n // allow one level of nesting\n comment:\n /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n string: {\n pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': [\n {\n // This is only an approximation since the real grammar is context-free\n //\n // Why the main loop so complex?\n // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n // followed by a long identifier.\n pattern: RegExp(\n /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n .replace(/<NOT-LAST>/g, function () {\n return /\\s*(?:[*,]|->)/.source\n })\n .replace(/<TERMINAL>/g, function () {\n return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n .source\n })\n .replace(/<LONG-ID>/g, function () {\n return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n })\n .replace(/<KEYWORD>/g, function () {\n return keywords.source\n }),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n {\n pattern:\n /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n }\n ],\n function: {\n pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n },\n keyword: keywords,\n variable: {\n pattern: /(^|[^\\w'])'[\\w']*/,\n lookbehind: true\n },\n number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n word: {\n pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n alias: 'constant'\n },\n boolean: /\\b(?:false|true)\\b/i,\n operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n punctuation: /[(){}\\[\\].:,;]/\n }\n Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n Prism.languages.smlnj = Prism.languages.sml\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\n\n/** @type {import('../core.js').Syntax} */\nexport default function solidity(Prism) {\n Prism.register(refractorClike)\n Prism.languages.solidity = Prism.languages.extend('clike', {\n 'class-name': {\n pattern:\n /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n })\n Prism.languages.insertBefore('solidity', 'keyword', {\n builtin:\n /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n })\n Prism.languages.insertBefore('solidity', 'number', {\n version: {\n pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n lookbehind: true,\n alias: 'number'\n }\n })\n Prism.languages.sol = Prism.languages.solidity\n}\n","// @ts-nocheck\nsolutionFile.displayName = 'solution-file'\nsolutionFile.aliases = ['sln']\n\n/** @type {import('../core.js').Syntax} */\nexport default function solutionFile(Prism) {\n ;(function (Prism) {\n var guid = {\n // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n alias: 'constant',\n inside: {\n punctuation: /[{}]/\n }\n }\n Prism.languages['solution-file'] = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true,\n inside: {\n guid: guid\n }\n },\n object: {\n // Foo\n // Bar(\"abs\") = 9\n // EndBar\n // Prop = TRUE\n // EndFoo\n pattern:\n /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n lookbehind: true,\n greedy: true,\n alias: 'keyword'\n },\n property: {\n pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n lookbehind: true,\n inside: {\n guid: guid\n }\n },\n guid: guid,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n operator: /=/,\n punctuation: /[(),]/\n }\n Prism.languages['sln'] = Prism.languages['solution-file']\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkupTemplating from './markup-templating.js'\nsoy.displayName = 'soy'\nsoy.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function soy(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n Prism.languages.soy = {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(\\s)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'command-arg': {\n pattern:\n /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /\\./\n }\n },\n parameter: {\n pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: [\n {\n pattern:\n /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n lookbehind: true\n },\n /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n ],\n delimiter: {\n pattern: /^\\{+\\/?|\\/?\\}+$/,\n alias: 'punctuation'\n },\n property: /\\w+(?==)/,\n variable: {\n pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n inside: {\n string: {\n pattern: stringPattern,\n greedy: true\n },\n number: numberPattern,\n punctuation: /[\\[\\].?]/\n }\n },\n string: {\n pattern: stringPattern,\n greedy: true\n },\n function: [\n /\\w+(?=\\()/,\n {\n pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: numberPattern,\n operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n punctuation: /[{}()\\[\\]|.,:]/\n }\n\n // Tokenize all inline Soy expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n var soyLitteralStart = '{literal}'\n var soyLitteralEnd = '{/literal}'\n var soyLitteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'soy',\n soyPattern,\n function (match) {\n // Soy tags inside {literal} block are ignored\n if (match === soyLitteralEnd) {\n soyLitteralMode = false\n }\n if (!soyLitteralMode) {\n if (match === soyLitteralStart) {\n soyLitteralMode = true\n }\n return true\n }\n return false\n }\n )\n })\n\n // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n })\n })(Prism)\n}\n","// @ts-nocheck\nturtle.displayName = 'turtle'\nturtle.aliases = ['trig']\n\n/** @type {import('../core.js').Syntax} */\nexport default function turtle(Prism) {\n Prism.languages.turtle = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'multiline-string': {\n pattern:\n /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n greedy: true,\n alias: 'string',\n inside: {\n comment: /#.*/\n }\n },\n string: {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n url: {\n pattern:\n /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n greedy: true,\n inside: {\n punctuation: /[<>]/\n }\n },\n function: {\n pattern:\n /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n inside: {\n 'local-name': {\n pattern: /([^:]*:)[\\s\\S]+/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]+/,\n inside: {\n punctuation: /:/\n }\n }\n }\n },\n number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[{}.,;()[\\]]|\\^\\^/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n tag: {\n pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n inside: {\n punctuation: /@/\n }\n }\n }\n Prism.languages.trig = Prism.languages['turtle']\n}\n","// @ts-nocheck\nimport refractorTurtle from './turtle.js'\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\n\n/** @type {import('../core.js').Syntax} */\nexport default function sparql(Prism) {\n Prism.register(refractorTurtle)\n Prism.languages.sparql = Prism.languages.extend('turtle', {\n boolean: /\\b(?:false|true)\\b/i,\n variable: {\n pattern: /[?$]\\w+/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sparql', 'punctuation', {\n keyword: [\n /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n ]\n })\n Prism.languages.rq = Prism.languages.sparql\n}\n","// @ts-nocheck\nsplunkSpl.displayName = 'splunk-spl'\nsplunkSpl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function splunkSpl(Prism) {\n Prism.languages['splunk-spl'] = {\n comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true\n },\n // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n keyword:\n /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n 'operator-word': {\n pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n alias: 'operator'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n property: /\\b\\w+(?=\\s*=(?!=))/,\n date: {\n // MM/DD/YYYY(:HH:MM:SS)?\n pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n alias: 'number'\n },\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /\\b(?:f|false|t|true)\\b/i,\n operator: /[<>=]=?|[-+*/%|]/,\n punctuation: /[()[\\],]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nsqf.displayName = 'sqf'\nsqf.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function sqf(Prism) {\n Prism.register(refractorClike)\n Prism.languages.sqf = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function:\n /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n number:\n /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n 'magic-variable': {\n pattern:\n /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n alias: 'keyword'\n },\n constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n })\n Prism.languages.insertBefore('sqf', 'string', {\n macro: {\n pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /#[a-z]+\\b/i,\n alias: 'keyword'\n },\n comment: Prism.languages.sqf.comment\n }\n }\n })\n delete Prism.languages.sqf['class-name']\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function squirrel(Prism) {\n Prism.register(refractorClike)\n Prism.languages.squirrel = Prism.languages.extend('clike', {\n comment: [\n Prism.languages.clike['comment'][0],\n {\n pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n punctuation: /[(){}\\[\\],;.]/\n })\n Prism.languages.insertBefore('squirrel', 'string', {\n char: {\n pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('squirrel', 'operator', {\n 'attribute-punctuation': {\n pattern: /<\\/|\\/>/,\n alias: 'important'\n },\n lambda: {\n pattern: /@(?=\\()/,\n alias: 'operator'\n }\n })\n}\n","// @ts-nocheck\nstan.displayName = 'stan'\nstan.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function stan(Prism) {\n ;(function (Prism) {\n // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n\n var higherOrderFunctions =\n /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n Prism.languages.stan = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n string: {\n // String literals can contain spaces and any printable ASCII characters except for \" and \\\n // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n greedy: true\n },\n directive: {\n pattern: /^([ \\t]*)#include\\b.*/m,\n lookbehind: true,\n alias: 'property'\n },\n 'function-arg': {\n pattern: RegExp(\n '(' +\n higherOrderFunctions.source +\n /\\s*\\(\\s*/.source +\n ')' +\n /[a-zA-Z]\\w*/.source\n ),\n lookbehind: true,\n alias: 'function'\n },\n constraint: {\n pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n lookbehind: true,\n inside: null // see below\n },\n\n property: /\\b[a-z]\\w*(?=\\s*=)/i,\n operator: /=/,\n punctuation: /^<|>$|,/\n }\n },\n keyword: [\n {\n pattern:\n /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n alias: 'program-block'\n },\n /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/,\n // these are functions that are known to take another function as their first argument.\n higherOrderFunctions\n ],\n function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n boolean: /\\b(?:false|true)\\b/,\n operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n punctuation: /[()\\[\\]{},;]/\n }\n Prism.languages.stan.constraint.inside.expression.inside =\n Prism.languages.stan\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorJava from './java.js'\nimport refractorMata from './mata.js'\nimport refractorPython from './python.js'\nstata.displayName = 'stata'\nstata.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function stata(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorMata)\n Prism.register(refractorPython)\n // https://www.stata.com/manuals/u.pdf\n // https://www.stata.com/manuals/p.pdf\n\n Prism.languages.stata = {\n comment: [\n {\n pattern: /(^[ \\t]*)\\*.*/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|\\s)\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n greedy: true\n }\n ],\n 'string-literal': {\n pattern: /\"[^\"\\r\\n]*\"|[‘`']\".*?\"[’`']/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}]*\\}|[‘`']\\w[^’`'\\r\\n]*[’`']/,\n inside: {\n punctuation: /^\\$\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n\n string: /[\\s\\S]+/\n }\n },\n mata: {\n pattern: /(^[ \\t]*mata[ \\t]*:)[\\s\\S]+?(?=^end\\b)/m,\n lookbehind: true,\n greedy: true,\n alias: 'language-mata',\n inside: Prism.languages.mata\n },\n java: {\n pattern: /(^[ \\t]*java[ \\t]*:)[\\s\\S]+?(?=^end\\b)/m,\n lookbehind: true,\n greedy: true,\n alias: 'language-java',\n inside: Prism.languages.java\n },\n python: {\n pattern: /(^[ \\t]*python[ \\t]*:)[\\s\\S]+?(?=^end\\b)/m,\n lookbehind: true,\n greedy: true,\n alias: 'language-python',\n inside: Prism.languages.python\n },\n command: {\n pattern:\n /(^[ \\t]*(?:\\.[ \\t]+)?(?:(?:bayes|bootstrap|by|bysort|capture|collect|fmm|fp|frame|jackknife|mfp|mi|nestreg|noisily|permute|quietly|rolling|simulate|statsby|stepwise|svy|version|xi)\\b[^:\\r\\n]*:[ \\t]*|(?:capture|noisily|quietly|version)[ \\t]+)?)[a-zA-Z]\\w*/m,\n lookbehind: true,\n greedy: true,\n alias: 'keyword'\n },\n variable: /\\$\\w+|[‘`']\\w[^’`'\\r\\n]*[’`']/,\n keyword:\n /\\b(?:bayes|bootstrap|by|bysort|capture|clear|collect|fmm|fp|frame|if|in|jackknife|mi[ \\t]+estimate|mfp|nestreg|noisily|of|permute|quietly|rolling|simulate|sort|statsby|stepwise|svy|varlist|version|xi)\\b/,\n boolean: /\\b(?:off|on)\\b/,\n number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+/,\n function: /\\b[a-z_]\\w*(?=\\()/i,\n operator: /\\+\\+|--|##?|[<>!=~]=?|[+\\-*^&|/]/,\n punctuation: /[(){}[\\],:]/\n }\n Prism.languages.stata[\n 'string-literal'\n ].inside.interpolation.inside.expression.inside = Prism.languages.stata\n}\n","// @ts-nocheck\niecst.displayName = 'iecst'\niecst.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function iecst(Prism) {\n Prism.languages.iecst = {\n comment: [\n {\n pattern:\n /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: [\n /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n ],\n 'class-name':\n /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n address: {\n pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n alias: 'symbol'\n },\n number:\n /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n operator:\n /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n punctuation: /[()[\\].,;]/\n }\n}\n","// @ts-nocheck\nsupercollider.displayName = 'supercollider'\nsupercollider.aliases = ['sclang']\n\n/** @type {import('../core.js').Syntax} */\nexport default function supercollider(Prism) {\n Prism.languages.supercollider = {\n comment: {\n pattern:\n /\\/\\/.*|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n lookbehind: true,\n greedy: true\n },\n char: {\n pattern: /\\$(?:[^\\\\\\r\\n]|\\\\.)/,\n greedy: true\n },\n symbol: {\n pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'|\\\\\\w+/,\n lookbehind: true,\n greedy: true\n },\n keyword: /\\b(?:_|arg|classvar|const|nil|var|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n label: {\n pattern: /\\b[a-z_]\\w*(?=\\s*:)/,\n alias: 'property'\n },\n number:\n /\\b(?:inf|pi|0x[0-9a-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(?:pi)?|\\d+r[0-9a-zA-Z]+(?:\\.[0-9a-zA-Z]+)?|\\d+[sb]{1,4}\\d*)\\b/,\n 'class-name': /\\b[A-Z]\\w*\\b/,\n operator:\n /\\.{2,3}|#(?![[{])|&&|[!=]==?|\\+>>|\\+{1,3}|-[->]|=>|>>|\\?\\?|@\\|?@|\\|(?:@|[!=]=)?\\||!\\?|<[!=>]|\\*{1,2}|<{2,3}\\*?|[-!%&/<>?@|=`]/,\n punctuation: /[{}()[\\].:,;]|#[[{]/\n }\n Prism.languages.sclang = Prism.languages.supercollider\n}\n","// @ts-nocheck\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function systemd(Prism) {\n // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n\n ;(function (Prism) {\n var comment = {\n pattern: /^[;#].*/m,\n greedy: true\n }\n var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n Prism.languages.systemd = {\n comment: comment,\n section: {\n pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'section-name': {\n pattern: /[\\s\\S]+/,\n alias: 'selector'\n }\n }\n },\n key: {\n pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n greedy: true,\n alias: 'attr-name'\n },\n value: {\n // This pattern is quite complex because of two properties:\n // 1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n // the lookbehind. You will see this in the main loop where spaces are handled separately.\n // 2) Line continuations.\n // After line continuations, empty lines and comments are ignored so we have to consume them.\n pattern: RegExp(\n /(=[ \\t]*(?!\\s))/.source +\n // the value either starts with quotes or not\n '(?:' +\n quotesSource +\n '|(?=[^\"\\r\\n]))' +\n // main loop\n '(?:' +\n (/[^\\s\\\\]/.source +\n // handle spaces separately because of quotes\n '|' +\n '[ \\t]+(?:(?![ \\t\"])|' +\n quotesSource +\n ')' +\n // line continuation\n '|' +\n /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'attr-value',\n inside: {\n comment: comment,\n quoted: {\n pattern: RegExp(/(^|\\s)/.source + quotesSource),\n lookbehind: true,\n greedy: true\n },\n punctuation: /\\\\$/m,\n boolean: {\n pattern: /^(?:false|no|off|on|true|yes)$/,\n greedy: true\n }\n }\n },\n punctuation: /=/\n }\n })(Prism)\n}\n","// @ts-nocheck\nt4Templating.displayName = 't4-templating'\nt4Templating.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function t4Templating(Prism) {\n ;(function (Prism) {\n function createBlock(prefix, inside, contentAlias) {\n return {\n pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n alias: 'block',\n inside: {\n delimiter: {\n pattern: RegExp('^<#' + prefix + '|#>$'),\n alias: 'important'\n },\n content: {\n pattern: /[\\s\\S]+/,\n inside: inside,\n alias: contentAlias\n }\n }\n }\n }\n function createT4(insideLang) {\n var grammar = Prism.languages[insideLang]\n var className = 'language-' + insideLang\n return {\n block: {\n pattern: /<#[\\s\\S]+?#>/,\n inside: {\n directive: createBlock('@', {\n 'attr-value': {\n pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n inside: {\n punctuation: /^=|^[\"']|[\"']$/\n }\n },\n keyword: /\\b\\w+(?=\\s)/,\n 'attr-name': /\\b\\w+/\n }),\n expression: createBlock('=', grammar, className),\n 'class-feature': createBlock('\\\\+', grammar, className),\n standard: createBlock('', grammar, className)\n }\n }\n }\n }\n Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n value: createT4\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorCsharp from './csharp.js'\nimport refractorT4Templating from './t4-templating.js'\nt4Cs.displayName = 't4-cs'\nt4Cs.aliases = ['t4']\n\n/** @type {import('../core.js').Syntax} */\nexport default function t4Cs(Prism) {\n Prism.register(refractorCsharp)\n Prism.register(refractorT4Templating)\n Prism.languages.t4 = Prism.languages['t4-cs'] =\n Prism.languages['t4-templating'].createT4('csharp')\n}\n","// @ts-nocheck\nimport refractorT4Templating from './t4-templating.js'\nimport refractorVbnet from './vbnet.js'\nt4Vb.displayName = 't4-vb'\nt4Vb.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function t4Vb(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorVbnet)\n Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","// @ts-nocheck\nimport refractorYaml from './yaml.js'\ntap.displayName = 'tap'\ntap.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function tap(Prism) {\n Prism.register(refractorYaml)\n // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n\n Prism.languages.tap = {\n fail: /not ok[^#{\\n\\r]*/,\n pass: /ok[^#{\\n\\r]*/,\n pragma: /pragma [+-][a-z]+/,\n bailout: /bail out!.*/i,\n version: /TAP version \\d+/i,\n plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n subtest: {\n pattern: /# Subtest(?:: .*)?/,\n greedy: true\n },\n punctuation: /[{}]/,\n directive: /#.*/,\n yamlish: {\n pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n lookbehind: true,\n inside: Prism.languages.yaml,\n alias: 'language-yaml'\n }\n }\n}\n","// @ts-nocheck\ntcl.displayName = 'tcl'\ntcl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function tcl(Prism) {\n Prism.languages.tcl = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\$)\\{[^}]+\\}/,\n lookbehind: true\n },\n {\n pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n lookbehind: true\n },\n builtin: [\n {\n pattern:\n /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n lookbehind: true\n },\n /\\b(?:else|elseif)\\b/\n ],\n scope: {\n pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n lookbehind: true,\n alias: 'constant'\n },\n keyword: {\n pattern:\n /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n lookbehind: true\n },\n operator:\n /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n punctuation: /[{}()\\[\\]]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nimport refractorMarkupTemplating from './markup-templating.js'\ntt2.displayName = 'tt2'\ntt2.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function tt2(Prism) {\n Prism.register(refractorClike)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.tt2 = Prism.languages.extend('clike', {\n comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n keyword:\n /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n punctuation: /[[\\]{},()]/\n })\n Prism.languages.insertBefore('tt2', 'number', {\n operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n variable: {\n pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n }\n })\n Prism.languages.insertBefore('tt2', 'keyword', {\n delimiter: {\n pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('tt2', 'string', {\n 'single-quoted-string': {\n pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n greedy: true,\n alias: 'string'\n },\n 'double-quoted-string': {\n pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n greedy: true,\n alias: 'string',\n inside: {\n variable: {\n pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n }\n }\n }\n })\n\n // The different types of TT2 strings \"replace\" the C-like standard string\n delete Prism.languages.tt2.string\n Prism.hooks.add('before-tokenize', function (env) {\n var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'tt2',\n tt2Pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n })\n })(Prism)\n}\n","// @ts-nocheck\ntoml.displayName = 'toml'\ntoml.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function toml(Prism) {\n ;(function (Prism) {\n var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n\n /**\n * @param {string} pattern\n */\n function insertKey(pattern) {\n return pattern.replace(/__/g, function () {\n return key\n })\n }\n Prism.languages.toml = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n table: {\n pattern: RegExp(\n insertKey(\n /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name'\n },\n key: {\n pattern: RegExp(\n insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n string: {\n pattern:\n /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n date: [\n {\n // Offset Date-Time, Local Date-Time, Local Date\n pattern:\n /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n alias: 'number'\n },\n {\n // Local Time\n pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n alias: 'number'\n }\n ],\n number:\n /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /[.,=[\\]{}]/\n }\n })(Prism)\n}\n","// @ts-nocheck\ntremor.displayName = 'tremor'\ntremor.aliases = ['trickle', 'troy']\n\n/** @type {import('../core.js').Syntax} */\nexport default function tremor(Prism) {\n ;(function (Prism) {\n Prism.languages.tremor = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n 'interpolated-string': null,\n // see below\n extractor: {\n pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n greedy: true,\n inside: {\n regex: {\n pattern: /(^re)\\|[\\s\\S]+/,\n lookbehind: true\n },\n function: /^\\w+/,\n value: /\\|[\\s\\S]+/\n }\n },\n identifier: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n keyword:\n /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number:\n /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n 'pattern-punctuation': {\n pattern: /%(?=[({[])/,\n alias: 'punctuation'\n },\n operator:\n /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n punctuation: /::|[;\\[\\]()\\{\\},.:]/\n }\n var interpolationPattern =\n /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n Prism.languages.tremor['interpolated-string'] = {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n '\"\"\"(?:' +\n /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"\"\"' +\n '|' +\n '\"(?:' +\n /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"' +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n inside: {\n punctuation: /^#\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.tremor\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.troy = Prism.languages['tremor']\n Prism.languages.trickle = Prism.languages['tremor']\n })(Prism)\n}\n","// @ts-nocheck\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\n\n/** @type {import('../core.js').Syntax} */\nexport default function typoscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n Prism.languages.typoscript = {\n comment: [\n {\n // multiline comments /* */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n // double-slash comments - ignored when backslashes or colon is found in front\n // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n },\n {\n // hash comments - ignored when leading quote is found for hex colors in strings\n pattern: /(^|[^\"'])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n function: [\n {\n // old include style\n pattern:\n /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n inside: {\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n inside: {\n keyword: keywords\n }\n },\n keyword: {\n pattern: /INCLUDE_TYPOSCRIPT/\n }\n }\n },\n {\n // new include style\n pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n inside: {\n string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n }\n }\n ],\n string: {\n pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n lookbehind: true,\n inside: {\n function: /\\{\\$.*\\}/,\n // constants include\n keyword: keywords,\n number: /^\\d+$/,\n punctuation: /[,|:]/\n }\n },\n keyword: keywords,\n number: {\n // special highlighting for indexes of arrays in tags\n pattern: /\\b\\d+\\s*[.{=]/,\n inside: {\n operator: /[.{=]/\n }\n },\n tag: {\n pattern: /\\.?[-\\w\\\\]+\\.?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:|]/,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n }\n Prism.languages.tsconfig = Prism.languages.typoscript\n })(Prism)\n}\n","// @ts-nocheck\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\n\n/** @type {import('../core.js').Syntax} */\nexport default function unrealscript(Prism) {\n Prism.languages.unrealscript = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n category: {\n pattern:\n /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n metadata: {\n pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n lookbehind: true,\n greedy: true,\n inside: {\n property: /\\b\\w+(?=\\s*=)/,\n operator: /=/,\n punctuation: /[<>|]/\n }\n },\n macro: {\n pattern: /`\\w+/,\n alias: 'property'\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n operator:\n />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n punctuation: /[()[\\]{};,.]/\n }\n Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","// @ts-nocheck\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function uorazor(Prism) {\n Prism.languages.uorazor = {\n 'comment-hash': {\n pattern: /#.*/,\n alias: 'comment',\n greedy: true\n },\n 'comment-slash': {\n pattern: /\\/\\/.*/,\n alias: 'comment',\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n },\n greedy: true\n },\n 'source-layers': {\n pattern:\n /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n alias: 'function'\n },\n 'source-commands': {\n pattern:\n /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n alias: 'function'\n },\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n function:\n /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n keyword:\n /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nv.displayName = 'v'\nv.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function v(Prism) {\n Prism.register(refractorClike)\n ;(function (Prism) {\n var interpolationExpr = {\n pattern: /[\\s\\S]+/,\n inside: null\n }\n Prism.languages.v = Prism.languages.extend('clike', {\n string: {\n pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n alias: 'quoted-string',\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n lookbehind: true,\n inside: {\n 'interpolation-variable': {\n pattern: /^\\$\\w[\\s\\S]*$/,\n alias: 'variable'\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n 'interpolation-expression': interpolationExpr\n }\n }\n }\n },\n 'class-name': {\n pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n lookbehind: true\n },\n keyword:\n /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n number:\n /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n operator:\n /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n builtin:\n /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n })\n interpolationExpr.inside = Prism.languages.v\n Prism.languages.insertBefore('v', 'string', {\n char: {\n pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n // using {1,2} instead of `u` flag for compatibility\n alias: 'rune'\n }\n })\n Prism.languages.insertBefore('v', 'operator', {\n attribute: {\n pattern:\n /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n lookbehind: true,\n alias: 'annotation',\n inside: {\n punctuation: /[\\[\\]]/,\n keyword: /\\w+/\n }\n },\n generic: {\n pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n inside: {\n punctuation: /[<>]/,\n 'class-name': /\\w+/\n }\n }\n })\n Prism.languages.insertBefore('v', 'function', {\n 'generic-function': {\n // e.g. foo<T>( ...\n pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<\\w+>/,\n inside: Prism.languages.v.generic.inside\n }\n }\n }\n })\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorClike from './clike.js'\nvala.displayName = 'vala'\nvala.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function vala(Prism) {\n Prism.register(refractorClike)\n Prism.languages.vala = Prism.languages.extend('clike', {\n // Classes copied from prism-csharp\n 'class-name': [\n {\n // (Foo bar, Bar baz)\n pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // [Foo]\n pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo : Bar\n pattern:\n /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo\n pattern:\n /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n function: /\\b\\w+(?=\\s*\\()/,\n number:\n /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n operator:\n /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n punctuation: /[{}[\\];(),.:]/,\n constant: /\\b[A-Z0-9_]+\\b/\n })\n Prism.languages.insertBefore('vala', 'string', {\n 'raw-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n 'template-string': {\n pattern: /@\"[\\s\\S]*?\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n inside: {\n delimiter: {\n pattern: /^\\$\\(?|\\)$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.vala\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('vala', 'keyword', {\n regex: {\n pattern:\n /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\//,\n 'regex-flags': /^[a-z]+$/\n }\n }\n })\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function velocity(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n Prism.languages.velocity = Prism.languages.extend('markup', {})\n var velocity = {\n variable: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n lookbehind: true,\n inside: {} // See below\n },\n\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n number: /\\b\\d+\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n punctuation: /[(){}[\\]:,.]/\n }\n velocity.variable.inside = {\n string: velocity['string'],\n function: {\n pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n lookbehind: true\n },\n number: velocity['number'],\n boolean: velocity['boolean'],\n punctuation: velocity['punctuation']\n }\n Prism.languages.insertBefore('velocity', 'comment', {\n unparsed: {\n pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^#\\[\\[|\\]\\]#$/\n }\n },\n 'velocity-comment': [\n {\n pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n {\n pattern: /(^|[^\\\\])##.*/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n }\n ],\n directive: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n inside: {\n punctuation: /[{}]/\n }\n },\n rest: velocity\n }\n },\n variable: velocity['variable']\n })\n Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n Prism.languages.velocity\n })(Prism)\n}\n","// @ts-nocheck\nverilog.displayName = 'verilog'\nverilog.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function verilog(Prism) {\n Prism.languages.verilog = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'kernel-function': {\n // support for any kernel function (ex: $display())\n pattern: /\\B\\$\\w+\\b/,\n alias: 'property'\n },\n // support for user defined constants (ex: `define)\n constant: /\\B`\\w+\\b/,\n function: /\\b\\w+(?=\\()/,\n // support for verilog and system verilog keywords\n keyword:\n /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n // bold highlighting for all verilog and system verilog logic blocks\n important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n // support for time ticks, vectors, and real numbers\n number:\n /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n operator: /[-+{}^~%*\\/?=!<>&|]+/,\n punctuation: /[[\\];(),.:]/\n }\n}\n","// @ts-nocheck\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function vhdl(Prism) {\n Prism.languages.vhdl = {\n comment: /--.+/,\n // support for all logic vectors\n 'vhdl-vectors': {\n pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n alias: 'number'\n },\n // support for operator overloading included\n 'quoted-function': {\n pattern: /\"\\S+?\"(?=\\()/,\n alias: 'function'\n },\n string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n attribute: {\n pattern: /\\b'\\w+/,\n alias: 'attr-name'\n },\n // support for predefined attributes included\n keyword:\n /\\b(?:access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|private|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|view|wait|when|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\w+(?=\\()/,\n // decimal, based, physical, and exponential numbers supported\n number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n operator:\n /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","// @ts-nocheck\nvim.displayName = 'vim'\nvim.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function vim(Prism) {\n Prism.languages.vim = {\n string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n comment: /\".*/,\n function: /\\b\\w+(?=\\()/,\n keyword:\n /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n builtin:\n /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator:\n /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n punctuation: /[{}[\\](),;:]/\n }\n}\n","// @ts-nocheck\nvisualBasic.displayName = 'visual-basic'\nvisualBasic.aliases = ['vb', 'vba']\n\n/** @type {import('../core.js').Syntax} */\nexport default function visualBasic(Prism) {\n Prism.languages['visual-basic'] = {\n comment: {\n pattern: /(?:['‘’]|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n inside: {\n keyword: /^REM/i\n }\n },\n directive: {\n pattern:\n /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n alias: 'property',\n greedy: true\n },\n string: {\n pattern: /\\$?[\"“â€](?:[\"“â€]{2}|[^\"“â€])*[\"“â€]C?/i,\n greedy: true\n },\n date: {\n pattern:\n /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n alias: 'number'\n },\n number:\n /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n boolean: /\\b(?:False|Nothing|True)\\b/i,\n keyword:\n /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n punctuation: /[{}().,:?]/\n }\n Prism.languages.vb = Prism.languages['visual-basic']\n Prism.languages.vba = Prism.languages['visual-basic']\n}\n","// @ts-nocheck\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function warpscript(Prism) {\n Prism.languages.warpscript = {\n comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern:\n /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n greedy: true\n },\n variable: /\\$\\S+/,\n macro: {\n pattern: /@\\S+/,\n alias: 'property'\n },\n // WarpScript doesn't have any keywords, these are all functions under the control category\n // https://www.warp10.io/tags/control\n keyword:\n /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n number:\n /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n boolean: /\\b(?:F|T|false|true)\\b/,\n punctuation: /<%|%>|[{}[\\]()]/,\n // Some operators from the \"operators\" category\n // https://www.warp10.io/tags/operators\n operator:\n /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n }\n}\n","// @ts-nocheck\nwasm.displayName = 'wasm'\nwasm.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function wasm(Prism) {\n Prism.languages.wasm = {\n comment: [\n /\\(;[\\s\\S]*?;\\)/,\n {\n pattern: /;;.*/,\n greedy: true\n }\n ],\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n greedy: true\n },\n keyword: [\n {\n pattern: /\\b(?:align|offset)=/,\n inside: {\n operator: /=/\n }\n },\n {\n pattern:\n /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n ],\n variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n number:\n /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n punctuation: /[()]/\n }\n}\n","// @ts-nocheck\nwebIdl.displayName = 'web-idl'\nwebIdl.aliases = ['webidl']\n\n/** @type {import('../core.js').Syntax} */\nexport default function webIdl(Prism) {\n ;(function (Prism) {\n var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n var type =\n '(?:' +\n /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n '|' +\n /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n '|' +\n /(?!(?:unrestricted|unsigned)\\b)/.source +\n id +\n /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n ')' +\n /(?:\\s*\\?)?/.source\n var typeInside = {}\n Prism.languages['web-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n namespace: {\n pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // callback return type\n pattern: RegExp(\n '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // typedef\n pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n .source + id\n ),\n lookbehind: true\n },\n {\n // inheritance\n pattern: RegExp(/(:\\s*)/.source + id),\n lookbehind: true\n },\n // includes and implements\n RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n {\n pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n lookbehind: true\n },\n {\n // function return type, parameter types, and dictionary members\n pattern: RegExp(\n type +\n '(?=' +\n /\\s*(?:\\.{3}\\s*)?/.source +\n id +\n /\\s*[(),;=]/.source +\n ')'\n ),\n inside: typeInside\n }\n ],\n builtin:\n /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n keyword: [\n /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/,\n // type keywords\n /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n lookbehind: true\n },\n operator: /\\.{3}|[=:?<>-]/,\n punctuation: /[(){}[\\].,;]/\n }\n for (var key in Prism.languages['web-idl']) {\n if (key !== 'class-name') {\n typeInside[key] = Prism.languages['web-idl'][key]\n }\n }\n Prism.languages['webidl'] = Prism.languages['web-idl']\n })(Prism)\n}\n","// @ts-nocheck\nwgsl.displayName = 'wgsl'\nwgsl.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function wgsl(Prism) {\n Prism.languages.wgsl = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n 'builtin-attribute': {\n pattern: /(@)builtin\\(.*?\\)/,\n lookbehind: true,\n inside: {\n attribute: {\n pattern: /^builtin/,\n alias: 'attr-name'\n },\n punctuation: /[(),]/,\n 'built-in-values': {\n pattern:\n /\\b(?:frag_depth|front_facing|global_invocation_id|instance_index|local_invocation_id|local_invocation_index|num_workgroups|position|sample_index|sample_mask|vertex_index|workgroup_id)\\b/,\n alias: 'attr-value'\n }\n }\n },\n attributes: {\n pattern:\n /(@)(?:align|binding|compute|const|fragment|group|id|interpolate|invariant|location|size|vertex|workgroup_size)/i,\n lookbehind: true,\n alias: 'attr-name'\n },\n functions: {\n pattern: /\\b(fn\\s+)[_a-zA-Z]\\w*(?=[(<])/,\n lookbehind: true,\n alias: 'function'\n },\n keyword:\n /\\b(?:bitcast|break|case|const|continue|continuing|default|discard|else|enable|fallthrough|fn|for|function|if|let|loop|private|return|storage|struct|switch|type|uniform|var|while|workgroup)\\b/,\n builtin:\n /\\b(?:abs|acos|acosh|all|any|array|asin|asinh|atan|atan2|atanh|atomic|atomicAdd|atomicAnd|atomicCompareExchangeWeak|atomicExchange|atomicLoad|atomicMax|atomicMin|atomicOr|atomicStore|atomicSub|atomicXor|bool|ceil|clamp|cos|cosh|countLeadingZeros|countOneBits|countTrailingZeros|cross|degrees|determinant|distance|dot|dpdx|dpdxCoarse|dpdxFine|dpdy|dpdyCoarse|dpdyFine|exp|exp2|extractBits|f32|f64|faceForward|firstLeadingBit|floor|fma|fract|frexp|fwidth|fwidthCoarse|fwidthFine|i32|i64|insertBits|inverseSqrt|ldexp|length|log|log2|mat[2-4]x[2-4]|max|min|mix|modf|normalize|override|pack2x16float|pack2x16snorm|pack2x16unorm|pack4x8snorm|pack4x8unorm|pow|ptr|quantizeToF16|radians|reflect|refract|reverseBits|round|sampler|sampler_comparison|select|shiftLeft|shiftRight|sign|sin|sinh|smoothstep|sqrt|staticAssert|step|storageBarrier|tan|tanh|textureDimensions|textureGather|textureGatherCompare|textureLoad|textureNumLayers|textureNumLevels|textureNumSamples|textureSample|textureSampleBias|textureSampleCompare|textureSampleCompareLevel|textureSampleGrad|textureSampleLevel|textureStore|texture_1d|texture_2d|texture_2d_array|texture_3d|texture_cube|texture_cube_array|texture_depth_2d|texture_depth_2d_array|texture_depth_cube|texture_depth_cube_array|texture_depth_multisampled_2d|texture_multisampled_2d|texture_storage_1d|texture_storage_2d|texture_storage_2d_array|texture_storage_3d|transpose|trunc|u32|u64|unpack2x16float|unpack2x16snorm|unpack2x16unorm|unpack4x8snorm|unpack4x8unorm|vec[2-4]|workgroupBarrier)\\b/,\n 'function-calls': {\n pattern: /\\b[_a-z]\\w*(?=\\()/i,\n alias: 'function'\n },\n 'class-name': /\\b(?:[A-Z][A-Za-z0-9]*)\\b/,\n 'bool-literal': {\n pattern: /\\b(?:false|true)\\b/,\n alias: 'boolean'\n },\n 'hex-int-literal': {\n pattern: /\\b0[xX][0-9a-fA-F]+[iu]?\\b(?![.pP])/,\n alias: 'number'\n },\n 'hex-float-literal': {\n pattern: /\\b0[xX][0-9a-fA-F]*(?:\\.[0-9a-fA-F]*)?(?:[pP][+-]?\\d+[fh]?)?/,\n alias: 'number'\n },\n 'decimal-float-literal': [\n {\n pattern: /\\d*\\.\\d+(?:[eE](?:\\+|-)?\\d+)?[fh]?/,\n alias: 'number'\n },\n {\n pattern: /\\d+\\.\\d*(?:[eE](?:\\+|-)?\\d+)?[fh]?/,\n alias: 'number'\n },\n {\n pattern: /\\d+[eE](?:\\+|-)?\\d+[fh]?/,\n alias: 'number'\n },\n {\n pattern: /\\b\\d+[fh]\\b/,\n alias: 'number'\n }\n ],\n 'int-literal': {\n pattern: /\\b\\d+[iu]?\\b/,\n alias: 'number'\n },\n operator: [\n {\n pattern: /(?:\\^|~|\\|(?!\\|)|\\|\\||&&|<<|>>|!)(?!=)/\n },\n {\n pattern: /&(?![&=])/\n },\n {\n pattern: /(?:\\+=|-=|\\*=|\\/=|%=|\\^=|&=|\\|=|<<=|>>=)/\n },\n {\n pattern: /(^|[^<>=!])=(?![=>])/,\n lookbehind: true\n },\n {\n pattern: /(?:==|!=|<=|\\+\\+|--|(^|[^=])>=)/,\n lookbehind: true\n },\n {\n pattern: /(?:(?:[+%]|(?:\\*(?!\\w)))(?!=))|(?:-(?!>))|(?:\\/(?!\\/))/\n },\n {\n pattern: /->/\n }\n ],\n punctuation: /[@(){}[\\],;<>:.]/\n }\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nwiki.displayName = 'wiki'\nwiki.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function wiki(Prism) {\n Prism.register(refractorMarkup)\n Prism.languages.wiki = Prism.languages.extend('markup', {\n 'block-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n alias: 'comment'\n },\n heading: {\n pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n inside: {\n punctuation: /^=+|=+$/,\n important: /.+/\n }\n },\n emphasis: {\n // TODO Multi-line\n pattern: /('{2,5}).+?\\1/,\n inside: {\n 'bold-italic': {\n pattern: /(''''').+?(?=\\1)/,\n lookbehind: true,\n alias: ['bold', 'italic']\n },\n bold: {\n pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n italic: {\n pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n punctuation: /^''+|''+$/\n }\n },\n hr: {\n pattern: /^-{4,}/m,\n alias: 'punctuation'\n },\n url: [\n /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n /\\[\\[.+?\\]\\]|\\[.+?\\]/\n ],\n variable: [\n /__[A-Z]+__/,\n // FIXME Nested structures should be handled\n // {{formatnum:{{#expr:{{{3}}}}}}}\n /\\{{3}.+?\\}{3}/,\n /\\{\\{.+?\\}\\}/\n ],\n symbol: [/^#redirect/im, /~{3,5}/],\n // Handle table attrs:\n // {|\n // ! style=\"text-align:left;\"| Item\n // |}\n 'table-tag': {\n pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n lookbehind: true,\n inside: {\n 'table-bar': {\n pattern: /\\|$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.markup['tag'].inside\n }\n },\n punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n })\n Prism.languages.insertBefore('wiki', 'tag', {\n // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n nowiki: {\n pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n inside: {\n tag: {\n pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n inside: Prism.languages.markup['tag'].inside\n }\n }\n }\n })\n}\n","// @ts-nocheck\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'nb', 'wl']\n\n/** @type {import('../core.js').Syntax} */\nexport default function wolfram(Prism) {\n Prism.languages.wolfram = {\n comment:\n // Allow one level of nesting - note: regex taken from applescipt\n /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n context: {\n pattern: /\\b\\w+`+\\w*/,\n alias: 'class-name'\n },\n blank: {\n pattern: /\\b\\w+_\\b/,\n alias: 'regex'\n },\n 'global-variable': {\n pattern: /\\$\\w+/,\n alias: 'variable'\n },\n boolean: /\\b(?:False|True)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n operator:\n /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.mathematica = Prism.languages.wolfram\n Prism.languages.wl = Prism.languages.wolfram\n Prism.languages.nb = Prism.languages.wolfram\n}\n","// @ts-nocheck\nwren.displayName = 'wren'\nwren.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function wren(Prism) {\n // https://wren.io/\n\n Prism.languages.wren = {\n // Multiline comments in Wren can have nested multiline comments\n // Comments: // and /* */\n comment: [\n {\n // support 3 levels of nesting\n // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n pattern:\n /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n // Based on prism-python.js\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n // see below\n 'string-literal': null,\n // #!/usr/bin/env wren on the first line\n hashbang: {\n pattern: /^#!\\/.+/,\n greedy: true,\n alias: 'comment'\n },\n // Attributes are special keywords to add meta data to classes\n attribute: {\n // #! attributes are stored in class properties\n // #!myvar = true\n // #attributes are not stored and dismissed at compilation\n pattern: /#!?[ \\t\\u3000]*\\w+/,\n alias: 'keyword'\n },\n 'class-name': [\n {\n // class definition\n // class Meta {}\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n },\n // A class must always start with an uppercase.\n // File.read\n /\\b[A-Z][a-z\\d_]*\\b/\n ],\n // A constant can be a variable, class, property or method. Just named in all uppercase letters\n constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n keyword:\n /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n // Functions can be Class.method()\n function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n punctuation: /[\\[\\](){}.,;]/\n }\n Prism.languages.wren['string-literal'] = {\n // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n pattern:\n /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n // \"%(interpolation)\"\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: Prism.languages.wren\n },\n 'interpolation-punctuation': {\n pattern: /^%\\(|\\)$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\n\n/** @type {import('../core.js').Syntax} */\nexport default function xeora(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n Prism.languages.xeora = Prism.languages.extend('markup', {\n constant: {\n pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n inside: {\n punctuation: {\n pattern: /\\$/\n }\n }\n },\n variable: {\n pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[$.]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n 'function-inline': {\n pattern:\n /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n inside: {\n variable: {\n pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n inside: {\n punctuation: {\n pattern: /[,.|]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n punctuation: {\n pattern: /\\$\\w:|[$:?.,|]/\n }\n },\n alias: 'function'\n },\n 'function-block': {\n pattern:\n /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n inside: {\n punctuation: {\n pattern: /[$:{}?.,|]/\n }\n },\n alias: 'function'\n },\n 'directive-inline': {\n pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n }\n },\n alias: 'function'\n },\n 'directive-block-open': {\n pattern:\n /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n },\n attribute: {\n pattern: /![A-Z]+$/,\n inside: {\n punctuation: {\n pattern: /!/\n }\n },\n alias: 'keyword'\n }\n },\n alias: 'function'\n },\n 'directive-block-separator': {\n pattern: /\\}:[-\\w.]+:\\{/,\n inside: {\n punctuation: {\n pattern: /[:{}]/\n }\n },\n alias: 'function'\n },\n 'directive-block-close': {\n pattern: /\\}:[-\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[:{}$]/\n }\n },\n alias: 'function'\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n variable: Prism.languages.xeora['function-inline'].inside['variable']\n },\n Prism.languages.xeora['function-block']\n )\n Prism.languages.xeoracube = Prism.languages.xeora\n })(Prism)\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nxmlDoc.displayName = 'xml-doc'\nxmlDoc.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function xmlDoc(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n /**\n * If the given language is present, it will insert the given doc comment grammar token into it.\n *\n * @param {string} lang\n * @param {any} docComment\n */\n function insertDocComment(lang, docComment) {\n if (Prism.languages[lang]) {\n Prism.languages.insertBefore(lang, 'comment', {\n 'doc-comment': docComment\n })\n }\n }\n var tag = Prism.languages.markup.tag\n var slashDocComment = {\n pattern: /\\/\\/\\/.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n var tickDocComment = {\n pattern: /'''.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n insertDocComment('csharp', slashDocComment)\n insertDocComment('fsharp', slashDocComment)\n insertDocComment('vbnet', tickDocComment)\n })(Prism)\n}\n","// @ts-nocheck\nxojo.displayName = 'xojo'\nxojo.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function xojo(Prism) {\n Prism.languages.xojo = {\n comment: {\n pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n greedy: true\n },\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n directive: {\n pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n operator:\n /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n punctuation: /[.,;:()]/\n }\n}\n","// @ts-nocheck\nimport refractorMarkup from './markup.js'\nxquery.displayName = 'xquery'\nxquery.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function xquery(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n Prism.languages.xquery = Prism.languages.extend('markup', {\n 'xquery-comment': {\n pattern: /\\(:[\\s\\S]*?:\\)/,\n greedy: true,\n alias: 'comment'\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n greedy: true\n },\n extension: {\n pattern: /\\(#.+?#\\)/,\n alias: 'symbol'\n },\n variable: /\\$[-\\w:]+/,\n axis: {\n pattern:\n /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n lookbehind: true,\n alias: 'operator'\n },\n 'keyword-operator': {\n pattern:\n /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n lookbehind: true\n },\n function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n 'xquery-element': {\n pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'tag'\n },\n 'xquery-attribute': {\n pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'attr-name'\n },\n builtin: {\n pattern:\n /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n operator: [\n /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ],\n punctuation: /[[\\](){},;:/]/\n })\n Prism.languages.xquery.tag.pattern =\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n /^=\"|\"$/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n // Allow for two levels of nesting\n pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n inside: Prism.languages.xquery,\n alias: 'language-xquery'\n }\n\n // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{' &&\n // Ignore `{{`\n (!tokens[i + 1] ||\n tokens[i + 1].type !== 'punctuation' ||\n tokens[i + 1].content !== '{') &&\n (!tokens[i - 1] ||\n tokens[i - 1].type !== 'plain-text' ||\n tokens[i - 1].content !== '{')\n ) {\n // Here we might have entered an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else if (token.type !== 'comment') {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside an XQuery expression.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token)\n\n // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n if (/^\\s+$/.test(plainText)) {\n tokens[i] = plainText\n } else {\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'xquery') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","// @ts-nocheck\nyang.displayName = 'yang'\nyang.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function yang(Prism) {\n Prism.languages.yang = {\n // https://tools.ietf.org/html/rfc6020#page-34\n // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n greedy: true\n },\n keyword: {\n pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n lookbehind: true\n },\n namespace: {\n pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n lookbehind: true\n },\n boolean: /\\b(?:false|true)\\b/,\n operator: /\\+/,\n punctuation: /[{};:]/\n }\n}\n","// @ts-nocheck\nzig.displayName = 'zig'\nzig.aliases = []\n\n/** @type {import('../core.js').Syntax} */\nexport default function zig(Prism) {\n ;(function (Prism) {\n function literal(str) {\n return function () {\n return str\n }\n }\n var keyword =\n /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var PREFIX_TYPE_OP =\n /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n /<ALIGN>/g,\n literal(ALIGN)\n )\n var SUFFIX_EXPR =\n /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n /<ID>/g,\n literal(IDENTIFIER)\n )\n var TYPE =\n '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n\n /*\n * A simplified grammar for Zig compile time type literals:\n *\n * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n *\n * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n *\n * PREFIX_TYPE_OP = \"?\"\n * | \\b \"promise\" \"->\"\n * | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n *\n * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n *\n * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n *\n */\n\n Prism.languages.zig = {\n comment: [\n {\n pattern: /\\/\\/[/!].*/,\n alias: 'doc-comment'\n },\n /\\/{2}.*/\n ],\n string: [\n {\n // \"string\" and c\"string\"\n pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n {\n // multiline strings and c-strings\n pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n lookbehind: true,\n greedy: true\n }\n ],\n char: {\n // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n pattern:\n /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n lookbehind: true,\n greedy: true\n },\n builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n label: {\n pattern:\n /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n lookbehind: true\n },\n 'class-name': [\n // const Foo = struct {};\n /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n {\n // const x: i32 = 9;\n // var x: Bar;\n // fn foo(x: bool, y: f32) void {}\n pattern: RegExp(\n /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n // extern fn foo(x: f64) f64; (optional alignment)\n pattern: RegExp(\n /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n\n 'builtin-type': {\n pattern:\n /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n alias: 'keyword'\n },\n keyword: keyword,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n number:\n /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n punctuation: /[.:,;(){}[\\]]/\n }\n Prism.languages.zig['class-name'].forEach(function (obj) {\n if (obj.inside === null) {\n obj.inside = Prism.languages.zig\n }\n })\n })(Prism)\n}\n","/**\n * @typedef {import('./core.js').RefractorRoot} RefractorRoot\n * @typedef {import('./core.js').RefractorElement} RefractorElement\n * @typedef {import('./core.js').Text} Text\n * @typedef {import('./core.js').Grammar} Grammar\n * @typedef {import('./core.js').Syntax} Syntax\n */\nimport markup from '../lang/markup.js'\nimport css from '../lang/css.js'\nimport clike from '../lang/clike.js'\nimport regex from '../lang/regex.js'\nimport javascript from '../lang/javascript.js'\nimport abap from '../lang/abap.js'\nimport abnf from '../lang/abnf.js'\nimport actionscript from '../lang/actionscript.js'\nimport ada from '../lang/ada.js'\nimport agda from '../lang/agda.js'\nimport al from '../lang/al.js'\nimport antlr4 from '../lang/antlr4.js'\nimport apacheconf from '../lang/apacheconf.js'\nimport sql from '../lang/sql.js'\nimport apex from '../lang/apex.js'\nimport apl from '../lang/apl.js'\nimport applescript from '../lang/applescript.js'\nimport aql from '../lang/aql.js'\nimport c from '../lang/c.js'\nimport cpp from '../lang/cpp.js'\nimport arduino from '../lang/arduino.js'\nimport arff from '../lang/arff.js'\nimport armasm from '../lang/armasm.js'\nimport bash from '../lang/bash.js'\nimport yaml from '../lang/yaml.js'\nimport markdown from '../lang/markdown.js'\nimport arturo from '../lang/arturo.js'\nimport asciidoc from '../lang/asciidoc.js'\nimport csharp from '../lang/csharp.js'\nimport aspnet from '../lang/aspnet.js'\nimport asm6502 from '../lang/asm6502.js'\nimport asmatmel from '../lang/asmatmel.js'\nimport autohotkey from '../lang/autohotkey.js'\nimport autoit from '../lang/autoit.js'\nimport avisynth from '../lang/avisynth.js'\nimport avroIdl from '../lang/avro-idl.js'\nimport awk from '../lang/awk.js'\nimport basic from '../lang/basic.js'\nimport batch from '../lang/batch.js'\nimport bbcode from '../lang/bbcode.js'\nimport bbj from '../lang/bbj.js'\nimport bicep from '../lang/bicep.js'\nimport birb from '../lang/birb.js'\nimport bison from '../lang/bison.js'\nimport bnf from '../lang/bnf.js'\nimport bqn from '../lang/bqn.js'\nimport brainfuck from '../lang/brainfuck.js'\nimport brightscript from '../lang/brightscript.js'\nimport bro from '../lang/bro.js'\nimport bsl from '../lang/bsl.js'\nimport cfscript from '../lang/cfscript.js'\nimport chaiscript from '../lang/chaiscript.js'\nimport cil from '../lang/cil.js'\nimport cilkc from '../lang/cilkc.js'\nimport cilkcpp from '../lang/cilkcpp.js'\nimport clojure from '../lang/clojure.js'\nimport cmake from '../lang/cmake.js'\nimport cobol from '../lang/cobol.js'\nimport coffeescript from '../lang/coffeescript.js'\nimport concurnas from '../lang/concurnas.js'\nimport csp from '../lang/csp.js'\nimport cooklang from '../lang/cooklang.js'\nimport coq from '../lang/coq.js'\nimport ruby from '../lang/ruby.js'\nimport crystal from '../lang/crystal.js'\nimport cssExtras from '../lang/css-extras.js'\nimport csv from '../lang/csv.js'\nimport cue from '../lang/cue.js'\nimport cypher from '../lang/cypher.js'\nimport d from '../lang/d.js'\nimport dart from '../lang/dart.js'\nimport dataweave from '../lang/dataweave.js'\nimport dax from '../lang/dax.js'\nimport dhall from '../lang/dhall.js'\nimport diff from '../lang/diff.js'\nimport markupTemplating from '../lang/markup-templating.js'\nimport django from '../lang/django.js'\nimport dnsZoneFile from '../lang/dns-zone-file.js'\nimport docker from '../lang/docker.js'\nimport dot from '../lang/dot.js'\nimport ebnf from '../lang/ebnf.js'\nimport editorconfig from '../lang/editorconfig.js'\nimport eiffel from '../lang/eiffel.js'\nimport ejs from '../lang/ejs.js'\nimport elixir from '../lang/elixir.js'\nimport elm from '../lang/elm.js'\nimport lua from '../lang/lua.js'\nimport etlua from '../lang/etlua.js'\nimport erb from '../lang/erb.js'\nimport erlang from '../lang/erlang.js'\nimport excelFormula from '../lang/excel-formula.js'\nimport fsharp from '../lang/fsharp.js'\nimport factor from '../lang/factor.js'\nimport $false from '../lang/false.js'\nimport firestoreSecurityRules from '../lang/firestore-security-rules.js'\nimport flow from '../lang/flow.js'\nimport fortran from '../lang/fortran.js'\nimport ftl from '../lang/ftl.js'\nimport gml from '../lang/gml.js'\nimport gap from '../lang/gap.js'\nimport gcode from '../lang/gcode.js'\nimport gdscript from '../lang/gdscript.js'\nimport gedcom from '../lang/gedcom.js'\nimport gettext from '../lang/gettext.js'\nimport gherkin from '../lang/gherkin.js'\nimport git from '../lang/git.js'\nimport glsl from '../lang/glsl.js'\nimport gn from '../lang/gn.js'\nimport linkerScript from '../lang/linker-script.js'\nimport go from '../lang/go.js'\nimport goModule from '../lang/go-module.js'\nimport gradle from '../lang/gradle.js'\nimport graphql from '../lang/graphql.js'\nimport groovy from '../lang/groovy.js'\nimport less from '../lang/less.js'\nimport scss from '../lang/scss.js'\nimport textile from '../lang/textile.js'\nimport haml from '../lang/haml.js'\nimport handlebars from '../lang/handlebars.js'\nimport haskell from '../lang/haskell.js'\nimport haxe from '../lang/haxe.js'\nimport hcl from '../lang/hcl.js'\nimport hlsl from '../lang/hlsl.js'\nimport hoon from '../lang/hoon.js'\nimport hpkp from '../lang/hpkp.js'\nimport hsts from '../lang/hsts.js'\nimport json from '../lang/json.js'\nimport uri from '../lang/uri.js'\nimport http from '../lang/http.js'\nimport ichigojam from '../lang/ichigojam.js'\nimport icon from '../lang/icon.js'\nimport icuMessageFormat from '../lang/icu-message-format.js'\nimport idris from '../lang/idris.js'\nimport ignore from '../lang/ignore.js'\nimport inform7 from '../lang/inform7.js'\nimport ini from '../lang/ini.js'\nimport io from '../lang/io.js'\nimport j from '../lang/j.js'\nimport java from '../lang/java.js'\nimport php from '../lang/php.js'\nimport javadoclike from '../lang/javadoclike.js'\nimport scala from '../lang/scala.js'\nimport javadoc from '../lang/javadoc.js'\nimport javastacktrace from '../lang/javastacktrace.js'\nimport jexl from '../lang/jexl.js'\nimport jolie from '../lang/jolie.js'\nimport jq from '../lang/jq.js'\nimport jsTemplates from '../lang/js-templates.js'\nimport typescript from '../lang/typescript.js'\nimport jsdoc from '../lang/jsdoc.js'\nimport n4js from '../lang/n4js.js'\nimport jsExtras from '../lang/js-extras.js'\nimport json5 from '../lang/json5.js'\nimport jsonp from '../lang/jsonp.js'\nimport jsstacktrace from '../lang/jsstacktrace.js'\nimport julia from '../lang/julia.js'\nimport keepalived from '../lang/keepalived.js'\nimport keyman from '../lang/keyman.js'\nimport kotlin from '../lang/kotlin.js'\nimport kumir from '../lang/kumir.js'\nimport kusto from '../lang/kusto.js'\nimport latex from '../lang/latex.js'\nimport latte from '../lang/latte.js'\nimport scheme from '../lang/scheme.js'\nimport lilypond from '../lang/lilypond.js'\nimport liquid from '../lang/liquid.js'\nimport lisp from '../lang/lisp.js'\nimport livescript from '../lang/livescript.js'\nimport llvm from '../lang/llvm.js'\nimport log from '../lang/log.js'\nimport lolcode from '../lang/lolcode.js'\nimport magma from '../lang/magma.js'\nimport makefile from '../lang/makefile.js'\nimport mata from '../lang/mata.js'\nimport matlab from '../lang/matlab.js'\nimport maxscript from '../lang/maxscript.js'\nimport mel from '../lang/mel.js'\nimport mermaid from '../lang/mermaid.js'\nimport metafont from '../lang/metafont.js'\nimport mizar from '../lang/mizar.js'\nimport mongodb from '../lang/mongodb.js'\nimport monkey from '../lang/monkey.js'\nimport moonscript from '../lang/moonscript.js'\nimport n1ql from '../lang/n1ql.js'\nimport nand2tetrisHdl from '../lang/nand2tetris-hdl.js'\nimport naniscript from '../lang/naniscript.js'\nimport nasm from '../lang/nasm.js'\nimport neon from '../lang/neon.js'\nimport nevod from '../lang/nevod.js'\nimport nginx from '../lang/nginx.js'\nimport nim from '../lang/nim.js'\nimport nix from '../lang/nix.js'\nimport nsis from '../lang/nsis.js'\nimport objectivec from '../lang/objectivec.js'\nimport ocaml from '../lang/ocaml.js'\nimport odin from '../lang/odin.js'\nimport opencl from '../lang/opencl.js'\nimport openqasm from '../lang/openqasm.js'\nimport oz from '../lang/oz.js'\nimport parigp from '../lang/parigp.js'\nimport parser from '../lang/parser.js'\nimport pascal from '../lang/pascal.js'\nimport pascaligo from '../lang/pascaligo.js'\nimport psl from '../lang/psl.js'\nimport pcaxis from '../lang/pcaxis.js'\nimport peoplecode from '../lang/peoplecode.js'\nimport perl from '../lang/perl.js'\nimport phpdoc from '../lang/phpdoc.js'\nimport phpExtras from '../lang/php-extras.js'\nimport plantUml from '../lang/plant-uml.js'\nimport plsql from '../lang/plsql.js'\nimport powerquery from '../lang/powerquery.js'\nimport powershell from '../lang/powershell.js'\nimport processing from '../lang/processing.js'\nimport prolog from '../lang/prolog.js'\nimport promql from '../lang/promql.js'\nimport properties from '../lang/properties.js'\nimport protobuf from '../lang/protobuf.js'\nimport stylus from '../lang/stylus.js'\nimport twig from '../lang/twig.js'\nimport pug from '../lang/pug.js'\nimport puppet from '../lang/puppet.js'\nimport pure from '../lang/pure.js'\nimport purebasic from '../lang/purebasic.js'\nimport purescript from '../lang/purescript.js'\nimport python from '../lang/python.js'\nimport qsharp from '../lang/qsharp.js'\nimport q from '../lang/q.js'\nimport qml from '../lang/qml.js'\nimport qore from '../lang/qore.js'\nimport r from '../lang/r.js'\nimport racket from '../lang/racket.js'\nimport cshtml from '../lang/cshtml.js'\nimport jsx from '../lang/jsx.js'\nimport tsx from '../lang/tsx.js'\nimport reason from '../lang/reason.js'\nimport rego from '../lang/rego.js'\nimport renpy from '../lang/renpy.js'\nimport rescript from '../lang/rescript.js'\nimport rest from '../lang/rest.js'\nimport rip from '../lang/rip.js'\nimport roboconf from '../lang/roboconf.js'\nimport robotframework from '../lang/robotframework.js'\nimport rust from '../lang/rust.js'\nimport sas from '../lang/sas.js'\nimport sass from '../lang/sass.js'\nimport shellSession from '../lang/shell-session.js'\nimport smali from '../lang/smali.js'\nimport smalltalk from '../lang/smalltalk.js'\nimport smarty from '../lang/smarty.js'\nimport sml from '../lang/sml.js'\nimport solidity from '../lang/solidity.js'\nimport solutionFile from '../lang/solution-file.js'\nimport soy from '../lang/soy.js'\nimport turtle from '../lang/turtle.js'\nimport sparql from '../lang/sparql.js'\nimport splunkSpl from '../lang/splunk-spl.js'\nimport sqf from '../lang/sqf.js'\nimport squirrel from '../lang/squirrel.js'\nimport stan from '../lang/stan.js'\nimport stata from '../lang/stata.js'\nimport iecst from '../lang/iecst.js'\nimport supercollider from '../lang/supercollider.js'\nimport swift from '../lang/swift.js'\nimport systemd from '../lang/systemd.js'\nimport t4Templating from '../lang/t4-templating.js'\nimport t4Cs from '../lang/t4-cs.js'\nimport vbnet from '../lang/vbnet.js'\nimport t4Vb from '../lang/t4-vb.js'\nimport tap from '../lang/tap.js'\nimport tcl from '../lang/tcl.js'\nimport tt2 from '../lang/tt2.js'\nimport toml from '../lang/toml.js'\nimport tremor from '../lang/tremor.js'\nimport typoscript from '../lang/typoscript.js'\nimport unrealscript from '../lang/unrealscript.js'\nimport uorazor from '../lang/uorazor.js'\nimport v from '../lang/v.js'\nimport vala from '../lang/vala.js'\nimport velocity from '../lang/velocity.js'\nimport verilog from '../lang/verilog.js'\nimport vhdl from '../lang/vhdl.js'\nimport vim from '../lang/vim.js'\nimport visualBasic from '../lang/visual-basic.js'\nimport warpscript from '../lang/warpscript.js'\nimport wasm from '../lang/wasm.js'\nimport webIdl from '../lang/web-idl.js'\nimport wgsl from '../lang/wgsl.js'\nimport wiki from '../lang/wiki.js'\nimport wolfram from '../lang/wolfram.js'\nimport wren from '../lang/wren.js'\nimport xeora from '../lang/xeora.js'\nimport xmlDoc from '../lang/xml-doc.js'\nimport xojo from '../lang/xojo.js'\nimport xquery from '../lang/xquery.js'\nimport yang from '../lang/yang.js'\nimport zig from '../lang/zig.js'\nimport {refractor} from './core.js'\n\nrefractor.register(markup)\nrefractor.register(css)\nrefractor.register(clike)\nrefractor.register(regex)\nrefractor.register(javascript)\nrefractor.register(abap)\nrefractor.register(abnf)\nrefractor.register(actionscript)\nrefractor.register(ada)\nrefractor.register(agda)\nrefractor.register(al)\nrefractor.register(antlr4)\nrefractor.register(apacheconf)\nrefractor.register(sql)\nrefractor.register(apex)\nrefractor.register(apl)\nrefractor.register(applescript)\nrefractor.register(aql)\nrefractor.register(c)\nrefractor.register(cpp)\nrefractor.register(arduino)\nrefractor.register(arff)\nrefractor.register(armasm)\nrefractor.register(bash)\nrefractor.register(yaml)\nrefractor.register(markdown)\nrefractor.register(arturo)\nrefractor.register(asciidoc)\nrefractor.register(csharp)\nrefractor.register(aspnet)\nrefractor.register(asm6502)\nrefractor.register(asmatmel)\nrefractor.register(autohotkey)\nrefractor.register(autoit)\nrefractor.register(avisynth)\nrefractor.register(avroIdl)\nrefractor.register(awk)\nrefractor.register(basic)\nrefractor.register(batch)\nrefractor.register(bbcode)\nrefractor.register(bbj)\nrefractor.register(bicep)\nrefractor.register(birb)\nrefractor.register(bison)\nrefractor.register(bnf)\nrefractor.register(bqn)\nrefractor.register(brainfuck)\nrefractor.register(brightscript)\nrefractor.register(bro)\nrefractor.register(bsl)\nrefractor.register(cfscript)\nrefractor.register(chaiscript)\nrefractor.register(cil)\nrefractor.register(cilkc)\nrefractor.register(cilkcpp)\nrefractor.register(clojure)\nrefractor.register(cmake)\nrefractor.register(cobol)\nrefractor.register(coffeescript)\nrefractor.register(concurnas)\nrefractor.register(csp)\nrefractor.register(cooklang)\nrefractor.register(coq)\nrefractor.register(ruby)\nrefractor.register(crystal)\nrefractor.register(cssExtras)\nrefractor.register(csv)\nrefractor.register(cue)\nrefractor.register(cypher)\nrefractor.register(d)\nrefractor.register(dart)\nrefractor.register(dataweave)\nrefractor.register(dax)\nrefractor.register(dhall)\nrefractor.register(diff)\nrefractor.register(markupTemplating)\nrefractor.register(django)\nrefractor.register(dnsZoneFile)\nrefractor.register(docker)\nrefractor.register(dot)\nrefractor.register(ebnf)\nrefractor.register(editorconfig)\nrefractor.register(eiffel)\nrefractor.register(ejs)\nrefractor.register(elixir)\nrefractor.register(elm)\nrefractor.register(lua)\nrefractor.register(etlua)\nrefractor.register(erb)\nrefractor.register(erlang)\nrefractor.register(excelFormula)\nrefractor.register(fsharp)\nrefractor.register(factor)\nrefractor.register($false)\nrefractor.register(firestoreSecurityRules)\nrefractor.register(flow)\nrefractor.register(fortran)\nrefractor.register(ftl)\nrefractor.register(gml)\nrefractor.register(gap)\nrefractor.register(gcode)\nrefractor.register(gdscript)\nrefractor.register(gedcom)\nrefractor.register(gettext)\nrefractor.register(gherkin)\nrefractor.register(git)\nrefractor.register(glsl)\nrefractor.register(gn)\nrefractor.register(linkerScript)\nrefractor.register(go)\nrefractor.register(goModule)\nrefractor.register(gradle)\nrefractor.register(graphql)\nrefractor.register(groovy)\nrefractor.register(less)\nrefractor.register(scss)\nrefractor.register(textile)\nrefractor.register(haml)\nrefractor.register(handlebars)\nrefractor.register(haskell)\nrefractor.register(haxe)\nrefractor.register(hcl)\nrefractor.register(hlsl)\nrefractor.register(hoon)\nrefractor.register(hpkp)\nrefractor.register(hsts)\nrefractor.register(json)\nrefractor.register(uri)\nrefractor.register(http)\nrefractor.register(ichigojam)\nrefractor.register(icon)\nrefractor.register(icuMessageFormat)\nrefractor.register(idris)\nrefractor.register(ignore)\nrefractor.register(inform7)\nrefractor.register(ini)\nrefractor.register(io)\nrefractor.register(j)\nrefractor.register(java)\nrefractor.register(php)\nrefractor.register(javadoclike)\nrefractor.register(scala)\nrefractor.register(javadoc)\nrefractor.register(javastacktrace)\nrefractor.register(jexl)\nrefractor.register(jolie)\nrefractor.register(jq)\nrefractor.register(jsTemplates)\nrefractor.register(typescript)\nrefractor.register(jsdoc)\nrefractor.register(n4js)\nrefractor.register(jsExtras)\nrefractor.register(json5)\nrefractor.register(jsonp)\nrefractor.register(jsstacktrace)\nrefractor.register(julia)\nrefractor.register(keepalived)\nrefractor.register(keyman)\nrefractor.register(kotlin)\nrefractor.register(kumir)\nrefractor.register(kusto)\nrefractor.register(latex)\nrefractor.register(latte)\nrefractor.register(scheme)\nrefractor.register(lilypond)\nrefractor.register(liquid)\nrefractor.register(lisp)\nrefractor.register(livescript)\nrefractor.register(llvm)\nrefractor.register(log)\nrefractor.register(lolcode)\nrefractor.register(magma)\nrefractor.register(makefile)\nrefractor.register(mata)\nrefractor.register(matlab)\nrefractor.register(maxscript)\nrefractor.register(mel)\nrefractor.register(mermaid)\nrefractor.register(metafont)\nrefractor.register(mizar)\nrefractor.register(mongodb)\nrefractor.register(monkey)\nrefractor.register(moonscript)\nrefractor.register(n1ql)\nrefractor.register(nand2tetrisHdl)\nrefractor.register(naniscript)\nrefractor.register(nasm)\nrefractor.register(neon)\nrefractor.register(nevod)\nrefractor.register(nginx)\nrefractor.register(nim)\nrefractor.register(nix)\nrefractor.register(nsis)\nrefractor.register(objectivec)\nrefractor.register(ocaml)\nrefractor.register(odin)\nrefractor.register(opencl)\nrefractor.register(openqasm)\nrefractor.register(oz)\nrefractor.register(parigp)\nrefractor.register(parser)\nrefractor.register(pascal)\nrefractor.register(pascaligo)\nrefractor.register(psl)\nrefractor.register(pcaxis)\nrefractor.register(peoplecode)\nrefractor.register(perl)\nrefractor.register(phpdoc)\nrefractor.register(phpExtras)\nrefractor.register(plantUml)\nrefractor.register(plsql)\nrefractor.register(powerquery)\nrefractor.register(powershell)\nrefractor.register(processing)\nrefractor.register(prolog)\nrefractor.register(promql)\nrefractor.register(properties)\nrefractor.register(protobuf)\nrefractor.register(stylus)\nrefractor.register(twig)\nrefractor.register(pug)\nrefractor.register(puppet)\nrefractor.register(pure)\nrefractor.register(purebasic)\nrefractor.register(purescript)\nrefractor.register(python)\nrefractor.register(qsharp)\nrefractor.register(q)\nrefractor.register(qml)\nrefractor.register(qore)\nrefractor.register(r)\nrefractor.register(racket)\nrefractor.register(cshtml)\nrefractor.register(jsx)\nrefractor.register(tsx)\nrefractor.register(reason)\nrefractor.register(rego)\nrefractor.register(renpy)\nrefractor.register(rescript)\nrefractor.register(rest)\nrefractor.register(rip)\nrefractor.register(roboconf)\nrefractor.register(robotframework)\nrefractor.register(rust)\nrefractor.register(sas)\nrefractor.register(sass)\nrefractor.register(shellSession)\nrefractor.register(smali)\nrefractor.register(smalltalk)\nrefractor.register(smarty)\nrefractor.register(sml)\nrefractor.register(solidity)\nrefractor.register(solutionFile)\nrefractor.register(soy)\nrefractor.register(turtle)\nrefractor.register(sparql)\nrefractor.register(splunkSpl)\nrefractor.register(sqf)\nrefractor.register(squirrel)\nrefractor.register(stan)\nrefractor.register(stata)\nrefractor.register(iecst)\nrefractor.register(supercollider)\nrefractor.register(swift)\nrefractor.register(systemd)\nrefractor.register(t4Templating)\nrefractor.register(t4Cs)\nrefractor.register(vbnet)\nrefractor.register(t4Vb)\nrefractor.register(tap)\nrefractor.register(tcl)\nrefractor.register(tt2)\nrefractor.register(toml)\nrefractor.register(tremor)\nrefractor.register(typoscript)\nrefractor.register(unrealscript)\nrefractor.register(uorazor)\nrefractor.register(v)\nrefractor.register(vala)\nrefractor.register(velocity)\nrefractor.register(verilog)\nrefractor.register(vhdl)\nrefractor.register(vim)\nrefractor.register(visualBasic)\nrefractor.register(warpscript)\nrefractor.register(wasm)\nrefractor.register(webIdl)\nrefractor.register(wgsl)\nrefractor.register(wiki)\nrefractor.register(wolfram)\nrefractor.register(wren)\nrefractor.register(xeora)\nrefractor.register(xmlDoc)\nrefractor.register(xojo)\nrefractor.register(xquery)\nrefractor.register(yang)\nrefractor.register(zig)\n\nexport {refractor} from './core.js'\n","import{visit as e}from\"unist-util-visit\";import{toString as r}from\"hast-util-to-string\";import{filter as t}from\"unist-util-filter\";import n from\"parse-numeric-range\";import{refractor as i}from\"refractor/lib/common.js\";import{refractor as o}from\"refractor/lib/all.js\";function a(){a=function(e,r){return new t(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function t(e,n,i){var o=new RegExp(e,n);return r.set(o,i||r.get(e)),l(o,t.prototype)}function n(e,t){var n=r.get(t);return Object.keys(n).reduce(function(r,t){var i=n[t];if(\"number\"==typeof i)r[t]=e[i];else{for(var o=0;void 0===e[i[o]]&&o+1<i.length;)o++;r[t]=e[i[o]]}return r},Object.create(null))}return function(e,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),r&&l(e,r)}(t,RegExp),t.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=n(t,this);var i=t.indices;i&&(i.groups=n(i,this))}return t},t.prototype[Symbol.replace]=function(t,i){if(\"string\"==typeof i){var o=r.get(this);return e[Symbol.replace].call(this,t,i.replace(/\\$<([^>]+)>/g,function(e,r){var t=o[r];return\"$\"+(Array.isArray(t)?t.join(\"$\"):t)}))}if(\"function\"==typeof i){var a=this;return e[Symbol.replace].call(this,t,function(){var e=arguments;return\"object\"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(n(e,a)),i.apply(this,e)})}return e[Symbol.replace].call(this,t,i)},a.apply(this,arguments)}function l(e,r){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},l(e,r)}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function u(e,r){var t=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,r){if(e){if(\"string\"==typeof e)return s(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t?Array.from(e):\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?s(e,r):void 0}}(e))||r&&e&&\"number\"==typeof e.length){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var c=function(i){return function(o){return void 0===o&&(o={}),function(e,r){if(r&&!e.registered(r))throw new Error('The default language \"'+r+'\" is not registered with refractor.')}(i,o.defaultLanguage),function(r){e(r,\"element\",l)};function l(e,l,s){var c,p;if(s&&\"pre\"===s.tagName&&\"code\"===e.tagName){var f=(null==e||null==(c=e.data)?void 0:c.meta)||(null==e||null==(p=e.properties)?void 0:p.metastring)||\"\";e.properties.className?\"boolean\"==typeof e.properties.className?e.properties.className=[]:Array.isArray(e.properties.className)||(e.properties.className=[e.properties.className]):e.properties.className=[];var m,h,d=function(e){for(var r,t=u(e.properties.className);!(r=t()).done;){var n=r.value;if(\"language-\"===n.slice(0,9))return n.slice(9).toLowerCase()}return null}(e);if(!d&&o.defaultLanguage&&e.properties.className.push(\"language-\"+(d=o.defaultLanguage)),e.properties.className.push(\"code-highlight\"),d)try{var g,v;v=null!=(g=d)&&g.includes(\"diff-\")?d.split(\"-\")[1]:d,m=i.highlight(r(e),v),s.properties.className=(s.properties.className||[]).concat(\"language-\"+v)}catch(r){if(!o.ignoreMissing||!/Unknown language/.test(r.message))throw r;m=e}else m=e;m.children=(h=1,function e(r){return r.reduce(function(r,t){if(\"text\"===t.type){var n=t.value,i=(n.match(/\\n/g)||\"\").length;if(0===i)t.position={start:{line:h,column:1},end:{line:h,column:1}},r.push(t);else for(var o,a=n.split(\"\\n\"),l=u(a.entries());!(o=l()).done;){var s=o.value,c=s[0],p=s[1];r.push({type:\"text\",value:c===a.length-1?p:p+\"\\n\",position:{start:{line:h+c,column:1},end:{line:h+c,column:1}}})}return h+=i,r}if(Object.prototype.hasOwnProperty.call(t,\"children\")){var f=h;return t.children=e(t.children),r.push(t),t.position={start:{line:f,column:1},end:{line:h,column:1}},r}return r.push(t),r},[])})(m.children),m.position=m.children.length>0?{start:{line:m.children[0].position.start.line,column:0},end:{line:m.children[m.children.length-1].position.end.line,column:0}}:{start:{line:0,column:0},end:{line:0,column:0}};for(var y,b=function(e){var r=/{([\\d,-]+)}/,t=e.split(\",\").map(function(e){return e.trim()}).join();if(r.test(t)){var i=r.exec(t)[1],o=n(i);return function(e){return o.includes(e+1)}}return function(){return!1}}(f),w=function(e){var r=/*#__PURE__*/a(/showLineNumbers=(\\d+)/i,{lines:1});if(r.test(e)){var t=r.exec(e);return Number(t.groups.lines)}return 1}(f),N=function(e){for(var r=new Array(e),t=0;t<e;t++)r[t]={type:\"element\",tagName:\"span\",properties:{className:[]},children:[]};return r}(m.position.end.line),j=[\"showlinenumbers=false\",'showlinenumbers=\"false\"',\"showlinenumbers={false}\"],x=function(){var e,n,i=y.value,a=i[0],l=i[1];l.properties.className=[\"code-line\"];var s=t(m,function(e){return e.position.start.line<=a+1&&e.position.end.line>=a+1});l.children=s.children,!f.toLowerCase().includes(\"showLineNumbers\".toLowerCase())&&!o.showLineNumbers||j.some(function(e){return f.toLowerCase().includes(e)})||(l.properties.line=[(a+w).toString()],l.properties.className.push(\"line-number\")),b(a)&&l.properties.className.push(\"highlight-line\"),(\"diff\"===d||null!=(e=d)&&e.includes(\"diff-\"))&&\"-\"===r(l).substring(0,1)?l.properties.className.push(\"deleted\"):(\"diff\"===d||null!=(n=d)&&n.includes(\"diff-\"))&&\"+\"===r(l).substring(0,1)&&l.properties.className.push(\"inserted\")},O=u(N.entries());!(y=O()).done;)x();N.length>0&&\"\"===r(N[N.length-1]).trim()&&N.pop(),e.children=N}}}},p=c(i),f=c(o);export{f as default,p as rehypePrismCommon,c as rehypePrismGenerator};\n//# sourceMappingURL=index.es.js.map\n","import { VFile } from 'vfile';\nimport { unified } from 'unified';\nimport remarkGfm from 'remark-gfm';\nimport rehypeAttrs from 'rehype-attr';\nimport remarkParse from 'remark-parse';\nimport remarkRehype from 'remark-rehype';\nimport rehypeVideo from 'rehype-video';\nimport rehypeKatex from 'rehype-katex';\nimport rehypeIgnore from 'rehype-ignore';\nimport rehypeRaw from 'rehype-raw';\nimport rehypeRewrite, { getCodeString } from 'rehype-rewrite';\nimport stringify from 'rehype-stringify';\nimport rehypePrism from 'rehype-prism-plus';\nexport { getCodeString };\nObject.defineProperty(rehypePrism, 'name', {\n value: 'rehypePrism',\n configurable: true,\n});\nfunction markdown(markdownStr = '', options = {}) {\n const { filterPlugins, showLineNumbers = true, katexOptions = {} } = options;\n const remarkPlugins = [remarkGfm, ...(options.remarkPlugins || [])];\n const rehypePlugins = [\n rehypeRaw,\n rehypeVideo,\n [rehypePrism, { ignoreMissing: true, showLineNumbers }],\n [rehypeAttrs, { properties: 'attr', codeBlockParames: false }],\n rehypeIgnore,\n ...(options.rehypePlugins || []),\n [\n rehypeRewrite,\n {\n rewrite: (node, index, parent) => {\n if (node.type == 'element' && node.tagName === 'code') {\n const { className = [] } = node.properties || {};\n const found = (Array.isArray(className) ? className : [className]).find((str) => String(str).toLocaleLowerCase().indexOf('language-katex') > -1);\n const code = getCodeString(node.children);\n if (found && node.properties) {\n if (Array.isArray(node.properties.className)) {\n if (parent && parent.type === 'element' && parent.properties) {\n parent.properties.className = ['language-katex'];\n }\n node.properties.className.push('math');\n node.properties.className.push('math-display');\n node.children = [\n {\n type: 'text',\n value: code,\n },\n ];\n }\n }\n if (/^katex/.test(code.toLocaleLowerCase())) {\n node.properties.className = ['math', 'math-inline'];\n node.children = [\n {\n type: 'text',\n value: code.replace(/^KaTeX:(\\s.)?/i, ''),\n },\n ];\n }\n }\n if (options.rewrite && typeof options.rewrite === 'function') {\n options.rewrite(node, index, parent);\n }\n },\n },\n ],\n [rehypeKatex, katexOptions],\n stringify,\n ];\n const processor = unified()\n .use(remarkParse)\n .use(filterPlugins && typeof filterPlugins === 'function' ? filterPlugins('remark', remarkPlugins) : remarkPlugins)\n .use(remarkRehype, Object.assign(Object.assign({}, options.remarkRehypeOptions), { allowDangerousHtml: true }))\n .use(filterPlugins && typeof filterPlugins === 'function' ? filterPlugins('rehype', rehypePlugins) : rehypePlugins);\n const file = new VFile();\n file.value = markdownStr;\n const hastNode = processor.runSync(processor.parse(file), file);\n if (options.hastNode) {\n return hastNode;\n }\n return String(processor.stringify(hastNode, file));\n}\nexport default markdown;\n//# sourceMappingURL=index.js.map","<script setup>\nimport markdown from '@wcj/markdown-to-html'\n</script>\n<template>\n <div class=\"prose lg:prose-xl\" v-html=\"markdown(markdownText)\"></div>\n</template>\n<script>\nexport default {\n props: ['markdownText']\n}\n</script>","/*!\n * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2023 Fonticons, Inc.\n */\n!function(){\"use strict\";var c={},l={};try{\"undefined\"!=typeof window&&(c=window),\"undefined\"!=typeof document&&(l=document)}catch(c){}var s=(c.navigator||{}).userAgent,a=void 0===s?\"\":s,z=c,e=l;z.document,e.documentElement&&e.head&&\"function\"==typeof e.addEventListener&&e.createElement,~a.indexOf(\"MSIE\")||a.indexOf(\"Trident/\");function H(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function t(l){for(var c=1;c<arguments.length;c++){var s=null!=arguments[c]?arguments[c]:{};c%2?H(Object(s),!0).forEach(function(c){V(l,c,s[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(s)):H(Object(s)).forEach(function(c){Object.defineProperty(l,c,Object.getOwnPropertyDescriptor(s,c))})}return l}function V(c,l,s){return l in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s,c}function r(c,l){(null==l||l>c.length)&&(l=c.length);for(var s=0,a=new Array(l);s<l;s++)a[s]=c[s];return a}var M=\"___FONT_AWESOME___\",h=function(){try{return!0}catch(c){return!1}}(),n=\"classic\",i=\"sharp\",m=[n,i];function o(c){return new Proxy(c,{get:function(c,l){return l in c?c[l]:c[n]}})}o((V(C={},n,{fa:\"solid\",fas:\"solid\",\"fa-solid\":\"solid\",far:\"regular\",\"fa-regular\":\"regular\",fal:\"light\",\"fa-light\":\"light\",fat:\"thin\",\"fa-thin\":\"thin\",fad:\"duotone\",\"fa-duotone\":\"duotone\",fab:\"brands\",\"fa-brands\":\"brands\",fak:\"kit\",fakd:\"kit\",\"fa-kit\":\"kit\",\"fa-kit-duotone\":\"kit\"}),V(C,i,{fa:\"solid\",fass:\"solid\",\"fa-solid\":\"solid\",fasr:\"regular\",\"fa-regular\":\"regular\",fasl:\"light\",\"fa-light\":\"light\",fast:\"thin\",\"fa-thin\":\"thin\"}),C));var f=o((V(v={},n,{solid:\"fas\",regular:\"far\",light:\"fal\",thin:\"fat\",duotone:\"fad\",brands:\"fab\",kit:\"fak\"}),V(v,i,{solid:\"fass\",regular:\"fasr\",light:\"fasl\",thin:\"fast\"}),v)),e=(o((V(s={},n,{fab:\"fa-brands\",fad:\"fa-duotone\",fak:\"fa-kit\",fal:\"fa-light\",far:\"fa-regular\",fas:\"fa-solid\",fat:\"fa-thin\"}),V(s,i,{fass:\"fa-solid\",fasr:\"fa-regular\",fasl:\"fa-light\",fast:\"fa-thin\"}),s)),o((V(c={},n,{\"fa-brands\":\"fab\",\"fa-duotone\":\"fad\",\"fa-kit\":\"fak\",\"fa-light\":\"fal\",\"fa-regular\":\"far\",\"fa-solid\":\"fas\",\"fa-thin\":\"fat\"}),V(c,i,{\"fa-solid\":\"fass\",\"fa-regular\":\"fasr\",\"fa-light\":\"fasl\",\"fa-thin\":\"fast\"}),c)),o((V(l={},n,{900:\"fas\",400:\"far\",normal:\"far\",300:\"fal\",100:\"fat\"}),V(l,i,{900:\"fass\",400:\"fasr\",300:\"fasl\",100:\"fast\"}),l)),[1,2,3,4,5,6,7,8,9,10]),a=e.concat([11,12,13,14,15,16,17,18,19,20]),C=\"duotone-group\",v=\"swap-opacity\",s=\"primary\",c=\"secondary\",l=new Set;Object.keys(f[n]).map(l.add.bind(l)),Object.keys(f[i]).map(l.add.bind(l));[].concat(m,function(c){if(Array.isArray(c))return r(c)}(l=l)||function(c){if(\"undefined\"!=typeof Symbol&&null!=c[Symbol.iterator]||null!=c[\"@@iterator\"])return Array.from(c)}(l)||function(c,l){if(c){if(\"string\"==typeof c)return r(c,l);var s=Object.prototype.toString.call(c).slice(8,-1);return\"Map\"===(s=\"Object\"===s&&c.constructor?c.constructor.name:s)||\"Set\"===s?Array.from(c):\"Arguments\"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?r(c,l):void 0}}(l)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(),[\"2xs\",\"xs\",\"sm\",\"lg\",\"xl\",\"2xl\",\"beat\",\"border\",\"fade\",\"beat-fade\",\"bounce\",\"flip-both\",\"flip-horizontal\",\"flip-vertical\",\"flip\",\"fw\",\"inverse\",\"layers-counter\",\"layers-text\",\"layers\",\"li\",\"pull-left\",\"pull-right\",\"pulse\",\"rotate-180\",\"rotate-270\",\"rotate-90\",\"rotate-by\",\"shake\",\"spin-pulse\",\"spin-reverse\",\"spin\",\"stack-1x\",\"stack-2x\",\"stack\",\"ul\",C,v,s,c]).concat(e.map(function(c){return\"\".concat(c,\"x\")})).concat(a.map(function(c){return\"w-\".concat(c)}));z=z||{};z[M]||(z[M]={}),z[M].styles||(z[M].styles={}),z[M].hooks||(z[M].hooks={}),z[M].shims||(z[M].shims=[]);var L=z[M];function u(a){return Object.keys(a).reduce(function(c,l){var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function d(c,l,s){var a=(2<arguments.length&&void 0!==s?s:{}).skipHooks,s=void 0!==a&&a,a=u(l);\"function\"!=typeof L.hooks.addPack||s?L.styles[c]=t(t({},L.styles[c]||{}),a):L.hooks.addPack(c,u(l)),\"fas\"===c&&d(\"fa\",l)}var p={monero:[496,512,[],\"f3d0\",\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"],hooli:[640,512,[],\"f427\",\"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"],yelp:[384,512,[],\"f1e9\",\"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"],\"cc-visa\":[576,512,[],\"f1f0\",\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"],lastfm:[512,512,[],\"f202\",\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"],shopware:[512,512,[],\"f5b5\",\"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"],\"creative-commons-nc\":[496,512,[],\"f4e8\",\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"],aws:[640,512,[],\"f375\",\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"],redhat:[512,512,[],\"f7bc\",\"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"],yoast:[448,512,[],\"f2b1\",\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"],cloudflare:[640,512,[],\"e07d\",\"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"],ups:[384,512,[],\"f7e0\",\"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"],pixiv:[448,512,[],\"e640\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm171.5 84c41 0 76.3 12.9 101.4 35.2l0 0c25.2 22.2 39.8 54.1 39.8 88.8c.1 35.3-16.6 66.3-42.4 87c-25.9 20.8-60.6 32.4-98.8 32.4c-43.5 0-83.8-16.1-83.8-16.1v51.8c7.4 2.2 19.7 7 11.9 14.8H104.8c-7.7-7.8 3.6-12.4 12.1-14.8V175.5C97.1 190.9 87 204.3 81.8 214.2c6 19.4-5.3 18.5-5.3 18.5L56 199.7s72.7-83.7 179.5-83.7zm-3.6 222.9c30 0 56-11.3 73.9-29.2c17.9-18.1 27.9-41.6 28-70.2c-.1-29.3-9.5-54.6-26.7-73.6c-17.2-18.9-42.7-31.3-75.2-31.4c-26.7-.1-59.8 9-80.2 23.7V323.1c18.6 9.3 46.8 15.9 80.2 15.8z\"],wpexplorer:[512,512,[],\"f2de\",\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"],dyalog:[416,512,[],\"f399\",\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"],bity:[496,512,[],\"f37a\",\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"],stackpath:[448,512,[],\"f842\",\"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"],buysellads:[448,512,[],\"f20d\",\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"],\"first-order\":[448,512,[],\"f2b0\",\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"],modx:[448,512,[],\"f285\",\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"],guilded:[448,512,[],\"e07e\",\"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"],vnv:[640,512,[],\"f40b\",\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"],\"square-js\":[448,512,[\"js-square\"],\"f3b9\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z\"],microsoft:[448,512,[],\"f3ca\",\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"],qq:[448,512,[],\"f1d6\",\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"],orcid:[512,512,[],\"f8d2\",\"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"],java:[384,512,[],\"f4e4\",\"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"],invision:[448,512,[],\"f7b0\",\"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"],\"creative-commons-pd-alt\":[496,512,[],\"f4ed\",\"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"],centercode:[512,512,[],\"f380\",\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"],\"glide-g\":[448,512,[],\"f2a6\",\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"],drupal:[448,512,[],\"f1a9\",\"M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z\"],\"hire-a-helper\":[512,512,[],\"f3b0\",\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"],\"creative-commons-by\":[496,512,[],\"f4e7\",\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"],unity:[448,512,[],\"e049\",\"M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z\"],whmcs:[448,512,[],\"f40d\",\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"],rocketchat:[576,512,[],\"f3e8\",\"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"],vk:[448,512,[],\"f189\",\"M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z\"],untappd:[640,512,[],\"f405\",\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"],mailchimp:[448,512,[],\"f59e\",\"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"],\"css3-alt\":[384,512,[],\"f38b\",\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"],\"square-reddit\":[448,512,[\"reddit-square\"],\"f1a2\",\"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"],\"vimeo-v\":[448,512,[],\"f27d\",\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"],contao:[512,512,[],\"f26d\",\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"],\"square-font-awesome\":[448,512,[],\"e5ad\",\"M384.5,32.5h-320c-35.3,0-64,28.7-64,64v320c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64v-320 C448.5,61.2,419.8,32.5,384.5,32.5z M336.5,312.5c-31.6,11.2-41.2,16-59.8,16c-31.4,0-43.2-16-74.6-16c-10.2,0-18.2,1.6-25.6,4v-32 c7.4-2.2,15.4-4,25.6-4c31.2,0,43.2,16,74.6,16c10.2,0,17.8-1.4,27.8-4.6v-96c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.2-16-74.6-16 c-25.4,0-37.4,10.4-57.6,14.4v153.6c0,8.8-7.2,16-16,16c-8.8,0-16-7.2-16-16v-192c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16v6.4 c20.2-4,32.2-14.4,57.6-14.4c31.2,0,43.2,16,74.6,16c18.6,0,28.2-4.8,59.8-16V312.5z\"],deskpro:[480,512,[],\"f38f\",\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"],brave:[448,512,[],\"e63c\",\"M145.5 0H224h78.5l44.7 50.8s39.3-10.9 57.8 7.6s33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9c-7.5 5.1-15.8 10.8-23.5 10.8l0 0 0 0c-7.7 0-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9c-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191l15.3-43.7L9.2 93.3s15.3-16.4 33.8-34.9s57.8-7.6 57.8-7.6L145.5 0zM224 407.6l0 0c3.7 0 8.9-4.7 13-8.4c.6-.5 1.2-1.1 1.7-1.5c4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8c-3-1.6-6.3-3.2-9.7-5c-15.4-8-34.5-14.7-37.5-14.7l0 0 0 0c-3 0-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5c-10.3 5.3-17.6 9.1-20.3 10.8c-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5c4.1 3.7 9.3 8.4 13 8.4l0 0zm0-165.7l0 0c4.7 0 17.6-3 26.4-5l0 0 2-.5c7.8-1.8 7.3-6.3 6.4-13c-.1-.8-.2-1.6-.3-2.4c-.6-6.1-5.8-33.1-9.1-50.3c-1.1-5.8-2-10.5-2.4-12.9c-1.5-8.1-.6-9.4 .7-11.3c.2-.3 .5-.7 .7-1.1c1.4-2.3 16-6.2 27.9-9.5l0 0c2.5-.7 4.8-1.3 6.9-1.9c10.6-3 32.4-.6 44.2 .6c1.8 .2 3.4 .4 4.7 .5c9.6 .9 10.4 2.3 7.2 3.8c-2.3 1.1-16.2 6.3-28.7 10.9l0 0 0 0c-4.7 1.8-9.2 3.5-12.8 4.8c-1.5 .5-3 1.1-4.5 1.7c-12.5 4.6-27.2 10-28.9 19.4c-1.5 8.3 5.2 19.9 11.3 30.3l0 0c1.6 2.8 3.2 5.5 4.6 8.1c6.3 11.9 6.5 13.3 6.1 18.1c-.4 3.9-14.5 12.7-22.4 17.6l0 0c-1.8 1.1-3.3 2.1-4.2 2.7c-.8 .5-2.1 1.4-3.8 2.4c-8.6 5.2-26.3 16-26.3 22.5c0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8s23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3l0 0c.5-.5 1-1 1.4-1.4L377.7 194c1.3-1.3 2.5-2.6 3.7-3.8l0 0c5.8-5.7 10.8-10.5 10.8-22.8c0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1l0 0c-2.7-.9-5.4-1.9-8-2.7C232.8 78.1 224 78 224 78l0 0 0 0s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7l0 0c-10.5 3.6-20.6 7.1-25.8 7.1c-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8l0 0c1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4l0 0c4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40c8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8s32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5c-1.7-1-3.1-1.9-3.8-2.4c-.9-.6-2.4-1.5-4.2-2.7c-7.9-4.9-22-13.7-22.4-17.6c-.4-4.8-.3-6.2 6.1-18.1c1.3-2.5 2.9-5.3 4.6-8.1c6-10.4 12.8-22 11.3-30.3c-1.7-9.4-16.4-14.8-28.9-19.4c-1.6-.6-3.1-1.1-4.5-1.7c-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9c-3.2-1.5-2.3-2.8 7.2-3.8c1.3-.1 2.9-.3 4.7-.5c11.8-1.3 33.6-3.6 44.2-.6c2.1 .6 4.4 1.2 6.9 1.9c11.9 3.2 26.5 7.2 27.9 9.5c.2 .4 .5 .7 .7 1.1c1.3 1.9 2.2 3.2 .7 11.3c-.4 2.4-1.3 7.1-2.4 12.9c-3.3 17.2-8.5 44.2-9.1 50.3c-.1 .8-.2 1.7-.3 2.4c-.8 6.7-1.4 11.2 6.4 13l2 .5 0 0c8.8 2 21.8 5 26.4 5l0 0z\"],sistrix:[448,512,[],\"f3ee\",\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"],\"square-instagram\":[448,512,[\"instagram-square\"],\"e055\",\"M194.4 211.7a53.3 53.3 0 1 0 59.3 88.7 53.3 53.3 0 1 0 -59.3-88.7zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12c-18.1-7.1-57.6-6.8-83.1-6.5c-4.1 0-7.9 .1-11.2 .1c-3.3 0-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5c-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2c0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2c2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5c4.1 0 7.9-.1 11.2-.1c3.3 0 7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5c6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83c0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83l0 0c-2.7-6.9-6.8-13.1-12-18.4zm-67.1 44.5A82 82 0 1 1 178.4 324.2a82 82 0 1 1 91.1-136.4zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1s2.6-7.1 5.2-9.8s6.1-4.5 9.8-5.2s7.6-.4 11.1 1.1s6.5 3.9 8.6 7s3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2s-3.9 3.2-6.2 4.2s-4.8 1.5-7.3 1.5l0 0c-3.8 0-7.5-1.1-10.6-3.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM357 389c-18.7 18.7-41.4 24.6-67 25.9c-26.4 1.5-105.6 1.5-132 0c-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132c1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0c25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9c-1.3 25.6-7.1 48.3-25.8 67z\"],\"battle-net\":[512,512,[],\"f835\",\"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"],\"the-red-yeti\":[512,512,[],\"f69d\",\"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"],\"square-hacker-news\":[448,512,[\"hacker-news-square\"],\"f3af\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM21 229.2c0 0 .1-.1 .1-.2s.1-.2 .2-.2c0 .1 0 .3-.1 .4H21zM239.2 384H207.8V281.3L128 128h37.3c41.5 77.7 48.1 95.8 54.1 112c1.6 4.3 3.1 8.5 5.2 13.6c3.2-7 5.1-11.9 7.1-17.3c5.9-15.3 12.8-33.2 53.5-108.3H320L239.2 283.1V384z\"],edge:[512,512,[],\"f282\",\"M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z\"],threads:[448,512,[],\"e618\",\"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"],napster:[496,512,[],\"f3d2\",\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"],\"square-snapchat\":[448,512,[\"snapchat-square\"],\"f2ad\",\"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z\"],\"google-plus-g\":[640,512,[],\"f0d5\",\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"],artstation:[512,512,[],\"f77a\",\"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"],markdown:[640,512,[],\"f60f\",\"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"],sourcetree:[448,512,[],\"f7d3\",\"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"],\"google-plus\":[512,512,[],\"f2b3\",\"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"],diaspora:[512,512,[],\"f791\",\"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"],foursquare:[368,512,[],\"f180\",\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"],\"stack-overflow\":[384,512,[],\"f16c\",\"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"],\"github-alt\":[480,512,[],\"f113\",\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"],\"phoenix-squadron\":[512,512,[],\"f511\",\"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"],pagelines:[384,512,[],\"f18c\",\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"],algolia:[512,512,[],\"f36c\",\"M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z\"],\"red-river\":[448,512,[],\"f3e3\",\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"],\"creative-commons-sa\":[496,512,[],\"f4ef\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"],safari:[512,512,[],\"f267\",\"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"],google:[488,512,[],\"f1a0\",\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"],\"square-font-awesome-stroke\":[448,512,[\"font-awesome-alt\"],\"f35c\",\"M201.6,152c-25.4,0-37.4,10.4-57.6,14.4V160c0-8.8-7.2-16-16-16s-16,7.2-16,16v192c0,0.8,0.1,1.6,0.2,2.4 c0.1,0.4,0.1,0.8,0.2,1.2c1.6,7.1,8,12.4,15.6,12.4s14-5.3,15.6-12.4c0.1-0.4,0.2-0.8,0.2-1.2c0.1-0.8,0.2-1.6,0.2-2.4V198.4 c4-0.8,7.7-1.8,11.2-3c14.3-4.7,26-11.4,46.4-11.4c31.4,0,43.2,16,74.6,16c8.9,0,15.9-1.1,24.2-3.5c1.2-0.3,2.4-0.7,3.6-1.1v96 c-10,3.2-17.6,4.6-27.8,4.6c-31.4,0-43.4-16-74.6-16c-10.2,0-18.2,1.8-25.6,4v32c7.4-2.4,15.4-4,25.6-4c31.4,0,43.2,16,74.6,16 c18.6,0,28.2-4.8,59.8-16V152c-31.6,11.2-41.2,16-59.8,16C244.8,168,232.8,152,201.6,152z M384,32H64C28.7,32,0,60.7,0,96v320 c0,35.3,28.7,64,64,64h320c35.3,0,64-28.7,64-64V96C448,60.7,419.3,32,384,32z M416,416c0,17.6-14.4,32-32,32H64 c-17.6,0-32-14.4-32-32V96c0-17.6,14.4-32,32-32h320c17.6,0,32,14.4,32,32V416z\"],atlassian:[512,512,[],\"f77b\",\"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"],\"linkedin-in\":[448,512,[],\"f0e1\",\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"],\"digital-ocean\":[512,512,[],\"f391\",\"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"],nimblr:[384,512,[],\"f5a8\",\"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"],chromecast:[512,512,[],\"f838\",\"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"],evernote:[384,512,[],\"f839\",\"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"],\"hacker-news\":[448,512,[],\"f1d4\",\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\"creative-commons-sampling\":[496,512,[],\"f4f0\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"],adversal:[512,512,[],\"f36a\",\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"],\"creative-commons\":[496,512,[],\"f25e\",\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"],\"watchman-monitoring\":[512,512,[],\"e087\",\"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"],fonticons:[448,512,[],\"f280\",\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"],weixin:[576,512,[],\"f1d7\",\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"],shirtsinbulk:[448,512,[],\"f214\",\"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"],codepen:[512,512,[],\"f1cb\",\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"],\"git-alt\":[448,512,[],\"f841\",\"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"],lyft:[512,512,[],\"f3c3\",\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"],rev:[448,512,[],\"f5b2\",\"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"],windows:[448,512,[],\"f17a\",\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"],\"wizards-of-the-coast\":[640,512,[],\"f730\",\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"],\"square-viadeo\":[448,512,[\"viadeo-square\"],\"f2aa\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1c13.3 0 26.6 2.1 39.1 6.7c-4.3 8.4-7.3 17.6-8.4 27.1c-9.7-4.1-20.2-6-30.7-6c-48.8 0-84.6 41.7-84.6 88.9c0 43 28.5 78.7 69.5 85.9c61.5-24 72.9-117.6 72.9-175v0c0-7.3 0-14.8-.6-22.1c-11.2-32.9-26.6-64.6-44.2-94.5c27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70c0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2c0-12.2-2.1-24.3-6.9-35.7c9.5-1.9 18.5-5.6 26.4-10.5c15.3 36.6 12.6 87.3-22.8 125.6c-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53c1.5-3 4.1-8.6 4.5-12c-12.5 27.9-44.2 49.8-73.9 56.7c-4.7-7.3-7.5-15.5-7.5-24.3c0-10.3 5.2-24.1 12.9-31.6c8.3-7.9 18-10.9 27.9-14.1c16-5.1 32.5-10.3 44.5-35.9c32.5 46.2 13.1 130.3-36.3 130.3c-13.3 0-25.1-7.1-34.4-16.1z\"],meetup:[512,512,[],\"f2e0\",\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"],centos:[448,512,[],\"f789\",\"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"],adn:[496,512,[],\"f170\",\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"],cloudsmith:[512,512,[],\"f384\",\"M512 227.6v56.9L284.4 512H227.6L0 284.4V227.6L227.6 0h56.9L512 227.6zm-256 162a133.6 133.6 0 1 0 0-267.1 133.6 133.6 0 1 0 0 267.1z\"],opensuse:[640,512,[],\"e62b\",\"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3c-51.9-1.8-122.8-4.3-223 57.3c-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.1 307 7 335.1c3.3 12.8 8.9 24.9 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4c44.4 3.9 78.1-16 90-53.3c8.2-25.8 0-63.6-31.5-82.9c-25.6-15.7-53.3-12.1-69.2-1.6c-13.9 9.2-21.8 23.5-21.6 39.2c.3 27.8 24.3 42.6 41.5 42.6c5.4 0 10.7-.9 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9c0-12.1-11.6-14.8-16.8-13.9c-2.9 .5-4.5 2-11.8 2.4c-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9c32.3 2.8 47.7 40.7 28.5 65.7C135 388.5 76.7 388 53.6 344.4c-26-49.2 12.7-111.2 87-98.4c33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3c56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8c5.6-33.8 39.7-18.4 82.4-17.4c66.5 .4 102.1-27 103.1-28c3.7-3.1 6.5-15.8 7-17.7c1.3-5.1-3.2-2.4-3.2-2.4c-8.7 5.2-30.5 15.2-50.9 15.6c-25.3 .5-76.2-25.4-81.6-28.2c-.3-.4 .1 1.2-11-25.5c88.4 58.3 118.3 40.5 145.2 21.7c.8-.6 4.3-2.9 3.6-5.7c-13.8-48.1-22.4-62.7-34.5-69.6c-37-21.6-125-34.7-129.2-35.3c.1-.1-.9-.3-.9 .7l0 0zm135.6 75.4a37.6 37.6 0 1 1 -75.2-2.6 37.6 37.6 0 1 1 75.2 2.6zm-36.6-27.9a26.3 26.3 0 1 0 -1.7 52.5 26.3 26.3 0 1 0 1.7-52.5zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6v0z\"],\"pied-piper-alt\":[576,512,[],\"f1a8\",\"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"],\"square-dribbble\":[448,512,[\"dribbble-square\"],\"f397\",\"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7c6.1 .1 62.4 .3 126.4-16.7c-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80c48.6-18.3 69.1-45.9 71.6-49.4C281 124.2 235.3 112.9 192 123.4zM277.4 382c-2-12-10-53.8-29.2-103.6c-55.1 18.8-93.8 56.4-108.1 85.6c40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252c0 .7 0 1.4 0 2.1s0 1.4 0 2.1c0 35.1 13.3 67.1 35.1 91.4c22.2-37.9 67.1-77.9 116.5-91.8c-3.4-7.8-7.2-15.5-11.1-23.2zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6c-4.6-1.5-42.3-12.7-85.1-5.8c17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4c-.3-32.3-11.8-61.9-30.9-85.1c-2.9 3.9-25.8 33.2-76.3 53.9c4.8 9.8 8.3 17.8 12 26.8zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 416a160 160 0 1 1 0-320 160 160 0 1 1 0 320z\"],codiepie:[472,512,[],\"f284\",\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"],node:[640,512,[],\"f419\",\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"],mix:[448,512,[],\"f3cb\",\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"],steam:[496,512,[],\"f1b6\",\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"],\"cc-apple-pay\":[576,512,[],\"f416\",\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"],scribd:[384,512,[],\"f28a\",\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"],debian:[448,512,[],\"e60b\",\"M380.2 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4c-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4c-30-13.8-76.1-16.2-97.3-5.8c1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9c-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7c-3.5 3.4 1.7 2 5.8 .9l0 0c4.1-1.1 7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17c.8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4c-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8c-4.3 8.1-7.9 14.9-8.7 21.3c-.3 5.1-1 11-1.7 17.3l0 0c-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5c.2 .4 .4 .8 .5 1.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9l0 0c4.4 .4 9.3 .9 18.7 24.2c-2.7-.9-5.5-1.9-9.4-7.2c-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8l0 0 0 0c1 .9 2.1 1.9 3.1 2.9c-11.9-6.5 3.2 13.7 11.9 25.2c.8 1.1 1.5 2 2.2 2.9l0 0 0 0 0 0 0 0 0 0c1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2c2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3c10.7 3.7 16.6 4.7 22.7 5.8c.3 0 .6 .1 .9 .1c5.4 .8 11.2 1.8 20.8 4.5c-1.1-.1-2.2-.1-3.3-.1h0c-2.3-.1-4.7-.1-7-.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c-14.4-.2-29.2-.4-42.7-5.2C107.8 480.5 19.5 367.2 26 250.6c-.6-9.9-.3-20.9 0-30.7c.4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2v-.1c.4 .4 3.4 3.4 8.8-5.8c.8-1.8 1.6-3.7 2.4-5.6c.5-1.1 .9-2.2 1.4-3.2c2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7c-3.4 3.8 2.2 2.7 10 1c4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6c8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2c-5.6 .8-12.3 3-11.2 3.8c7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1c3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2c.3 .5 .5 1 .7 1.4c.1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1c1.7-.7-2.7-4.7-6.4-8.2c0 0 0 0-.1-.1c-.2-.1-.3-.3-.5-.4c32.2 17.3 67.3 54.1 78 93.5c-6-11.1-5.2-5.5-4.3 .5c.6 4 1.2 8.1-.2 7.5c4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3c-.4 4.3-2.8 3.9-5.2 3.5l-.1 0 0 0c-3.3-.6-6.2-1.1-1.9 12.6c2.6 3.8 3.1 2.4 3.5 1.1l0 0c.5-1.5 .9-2.7 4.7 5.2c.1 4.1 1 8.2 2.1 12.7l0 0 0 0 .1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4c-1.1-.2-2.3-2.2-3.4-4.2c-1.4-2.4-2.8-4.7-3.7-3.2c2.4 11.5 6.5 17.4 8 18.3c-.3 .6-.6 .7-1.1 .7c-.8 0-1.8 .1-1.9 5.3c.7 13.7 3.3 12.5 5.3 11.6l0 0c.6-.3 1.2-.6 1.7-.4c-.6 2.5-1.6 5.1-2.7 7.9c-2.8 7.1-6 15.4-3.4 26.1c-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5l0 0c-.3-.8-.6-1.6-.9-2.3c-.6 4.4-.3 7.7-.1 10.6c0 .2 0 .5 0 .7c.4 5.3 .7 10-3 19.9c4.3-14.2 3.8-26.9-.2-20.8c1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8c1.7-2.9 1.3-3.6 1-4.2l0 0c-.4-.8-.7-1.5 1.7-5.1c-1.6 .1-5.5 3.9-10.1 8.5c-3.9 3.9-8.5 8.4-12.8 11.8c-37.5 30.1-82.3 34-125.6 17.8c.2-1-.2-2.1-3.1-4.1c-36.8-28.2-58.5-52.1-50.9-107.5c2.1-1.6 3.6-5.8 5.3-10.8l0 0 0 0 .2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8c7.8-17.3 31.3-33.3 56.4-33.7c25.6-1.4 47.2 13.7 58.1 27.9c-19.8-18.4-52.1-24-79.7-10.4c-28.2 12.7-45 43.8-42.5 74.7c.3-.4 .6-.6 .9-.8l0 0s0 0 0 0c0 0 .1-.1 .1-.1l.1-.1c.6-.5 1.1-.9 1.4-3.3c-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1 0 0c2.2-2.1 4.7-4.5 8.9-7.3c-.3 .7-1.3 1.7-2.4 2.7c-2.2 2.1-4.6 4.5-1.6 4.6c5-1.3 18.5-13.4 28.5-22.3l0 0 0 0c.6-.5 1.2-1 1.7-1.5c1.5-1.3 2.8-2.5 4-3.6l0 0 .3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6c.2-.6 .5-1.2 .7-1.8l-.4-.2zM349.3 34.3l-.2-.1 .2 .1 0 0zM247.8 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2c-12.2-5.7-23.4-14.3-32.6-24.9c4.9 7.1 10.1 14.1 17 19.5c-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5c19.8 35.5 80.5 62.3 112.3 49c-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4c1.4-5.8 5.4-10.7 4.4 4.6c-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5c.2-2-1.2-2.4-2.6-2.8l0 0c-2.9-.8-5.9-1.6 5.6-16.1c-.5 1.9-2.1 4.6-3.7 7.3l0 0 0 0-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8h.1zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1c-2.5 2.4-5.2 4.8-8.3 7.2c-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7c-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9h.1zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l.8 1.6 .2 .4zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3c7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.6 110.6c.4 .8 1.4 .5 2.3 .3c1.9-.5 3.6-.9-.1 7.6c-.5 .3-1 .7-1.5 1l0 0 0 0c-1.4 .9-2.8 1.9-3.9 3c1.9-3.8 3.5-7.4 3.2-11.9zM25.3 152.3c-.7 3.7-1.5 7.9-3.4 13.9c.2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8c-.3 1.2-.5 2.5-.7 3.8v.1z\"],openid:[448,512,[],\"f19b\",\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"],instalod:[512,512,[],\"e081\",\"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"],expeditedssl:[496,512,[],\"f23e\",\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"],sellcast:[448,512,[],\"f2da\",\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"],\"square-twitter\":[448,512,[\"twitter-square\"],\"f081\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z\"],\"r-project\":[581,512,[],\"f4f7\",\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"],delicious:[448,512,[],\"f1a5\",\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"],freebsd:[448,512,[],\"f3a4\",\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"],vuejs:[448,512,[],\"f41f\",\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"],accusoft:[640,512,[],\"f369\",\"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"],ioxhost:[640,512,[],\"f208\",\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"],\"fonticons-fi\":[384,512,[],\"f3a2\",\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"],\"app-store\":[512,512,[],\"f36f\",\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"],\"cc-mastercard\":[576,512,[],\"f1f1\",\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"],\"itunes-note\":[384,512,[],\"f3b5\",\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"],golang:[640,512,[],\"e40f\",\"M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z\"],kickstarter:[448,512,[],\"f3bb\",\"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"],grav:[512,512,[],\"f2d6\",\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"],weibo:[512,512,[],\"f18a\",\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"],uncharted:[448,512,[],\"e084\",\"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"],firstdraft:[384,512,[],\"f3a1\",\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"],\"square-youtube\":[448,512,[61798,\"youtube-square\"],\"f431\",\"M282 256.2l-95.2-54.1V310.3L282 256.2zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9C337.9 384 224 384 224 384s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9C42 315.9 42 256.3 42 256.3s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4C110.1 128 224 128 224 128s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"],\"wikipedia-w\":[640,512,[],\"f266\",\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"],wpressr:[496,512,[\"rendact\"],\"f3e4\",\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"],angellist:[448,512,[],\"f209\",\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"],\"galactic-republic\":[496,512,[],\"f50c\",\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"],\"nfc-directional\":[512,512,[],\"e530\",\"M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z\"],skype:[448,512,[],\"f17e\",\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"],joget:[496,512,[],\"f3b7\",\"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"],fedora:[448,512,[],\"f798\",\"M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z\"],\"stripe-s\":[384,512,[],\"f42a\",\"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"],meta:[640,512,[],\"e49b\",\"M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z\"],laravel:[512,512,[],\"f3bd\",\"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"],hotjar:[512,512,[],\"f3b1\",\"M361.5 0c0 131.6-80.7 176.8-140.2 209.4c-.6 .3-1.1 .6-1.6 .9c-53.8 30.2-88.7 49.8-89.6 122H32C32 200.8 112.7 155.6 172.2 123C227 93.2 262.5 73 262.5 0h98.9zM301 302.6c54.8-29.8 90.3-50 90.3-123h98c0 131.6-80.7 176.7-140.2 209.4c-54.8 29.8-90.3 50-90.3 123h-98c0-131.6 80.7-176.8 140.2-209.4z\"],\"bluetooth-b\":[320,512,[],\"f294\",\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"],\"square-letterboxd\":[448,512,[],\"e62e\",\"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1c-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1C176.9 313.8 198.9 327 224 327c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1C271.1 200.2 249.1 187 224 187zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1c12.4 19.8 34.4 32.9 59.5 32.9c38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"],\"sticker-mule\":[576,512,[],\"f3f7\",\"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"],\"creative-commons-zero\":[496,512,[],\"f4f3\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"],hips:[640,512,[],\"f452\",\"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"],behance:[576,512,[],\"f1b4\",\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"],reddit:[512,512,[],\"f1a1\",\"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"],discord:[640,512,[],\"f392\",\"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"],chrome:[512,512,[],\"f268\",\"M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z\"],\"app-store-ios\":[448,512,[],\"f370\",\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"],\"cc-discover\":[576,512,[],\"f1f2\",\"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"],wpbeginner:[512,512,[],\"f297\",\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"],confluence:[512,512,[],\"f78d\",\"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"],shoelace:[512,512,[],\"e60c\",\"M404.9 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9c1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8h.2c3.3-1.9 6-1.8 8.2 .4c3.9 2.1 4.2 5.6 .9 10.6L456.9 322c.2 .5 .4 1 .4 1.5c.5 2.2 .3 4.4-.5 6.6c-.7 1.5-1.8 2.9-3.1 4.2c-1.4 1.4-2.7 2.8-4.2 4.2l-18.8 13.7c-1.7 1.2-3.4 2.3-5.1 3.3c-2.1 1.3-4.3 2.5-6.6 3.6c-1 .4-1.9 .9-2.9 1.3c-5.9 2.5-11.9 4.2-18.2 5c-2.9 24.5-11.3 47.1-25.1 67.8c-17.5 25.7-41.4 45.4-71.8 58.8c-30.2 13.5-63 20.2-98.2 20.2c-48.6-.5-88-11.4-118.2-32.8C49.5 454.4 32 421.5 32 380.3v-5.6c1.2-28.1 9.5-54.6 24.8-79.8c15.1-24.9 37.1-41.7 66.1-50.5c14.9-4.4 29.9-6.6 45-6.6c15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5L326 312.2c15.1 9.8 28.8 16.5 41.2 20c-2.6-25.1-11.7-46.6-27.3-64.5c-15.7-18.1-35.6-31.3-59.9-39.7l-23.3-8c-21.4-7.5-37.3-14.9-47.7-22.2c-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5C223.5 9.7 251.1 0 283 0c24 0 45.6 6.9 64.7 20.8c19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7c-9.8 13.2-18.5 19.9-26 19.9c-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6c-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8c0-4.1 1.6-7.6 4.9-10.4c13.8-12.4 20.8-26.7 20.8-42.8c0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.3 89.9 192.3 112c0 17.8 6.9 33.9 20.6 48.3c13.6 14.2 34.6 25.4 63 33.5c39.8 11.5 70.2 31 91.3 58.3c18.7 24.2 29.1 51.3 31.3 81.4c2.2-.7 4.3-1.5 6.5-2.6zM294.1 178.7c0 1.1 .6 1.6 1.8 1.6c.1 0 9.7-8.9 28.8-26.6c0-2.4-5.1 .9-15.3 10c-10.2 9.2-15.3 14.2-15.3 14.9zm8 6.4c0-1-.5-1.5-1.5-1.5c-1.1 0-2.1 .5-2.9 1.6c-1.9-.1-3.3 .1-4.2 .7c-.4 .2-.5 .5-.5 .7c0 .7 .5 1.3 1.5 1.6h3.3c2.9-1.1 4.4-2.2 4.4-3.3zm22.6-19.9c0-2.8-1.6-2.8-4.9 0c-1.6 1.5-3.6 3.5-6 6.2c-.8 .6-2.6 2.2-5.3 4.9c-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4c.1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9c-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1zM366.6 363.9c-8-2.1-15.4-4.6-22.2-7.5c-15.3-6.2-34.3-17-57-32.4L250 298.7c-15.8-10.1-30.2-17.6-43.2-22.6c-13.1-4.9-26-7.3-38.6-7.3h-5.5c-32.2 1.7-57.2 13.8-75 36.2c-16.6 20.8-25 45.3-25 73.6c0 31.8 12.8 56.7 38.2 74.7c25.4 18.1 60.2 27.1 104.4 27.1c34.7 0 64-6.2 87.8-18.6c23.7-12.4 42.1-28.8 55.2-49.2c9.8-15.5 15.9-31.8 18.2-48.8z\"],mdb:[576,512,[],\"f8ca\",\"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"],dochub:[416,512,[],\"f394\",\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"],\"accessible-icon\":[448,512,[62107],\"f368\",\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"],ebay:[640,512,[],\"f4f4\",\"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"],amazon:[448,512,[],\"f270\",\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"],unsplash:[448,512,[],\"e07c\",\"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"],yarn:[496,512,[],\"f7e3\",\"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"],\"square-steam\":[448,512,[\"steam-square\"],\"f1b7\",\"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2c25.2 10.5 54.1-1.4 64.6-26.5c5.1-12.1 5.1-25.5 .1-37.7c-5.1-12.1-14.5-21.6-26.7-26.7c-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V240.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8c-31.8 0-58.5-22.7-64.5-52.7L0 319.2V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm14.6-.1a43.9 43.9 0 1 1 87.8 0 43.9 43.9 0 1 1 -87.8 0z\"],\"500px\":[448,512,[],\"f26e\",\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"],\"square-vimeo\":[448,512,[\"vimeo-square\"],\"f194\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM318.5 309.5C275 366 238.2 394.3 208.1 394.3c-18.7 0-34.4-17.2-47.3-51.6c-3.8-13.9-7.3-26.9-10.5-39c-18.2-68.3-28.6-107.4-46.2-107.4c-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5c29.1-26.3 55.6-50.3 73.5-51.9c24.9-2.4 40.2 14.6 46 51.1c20.5 129.6 29.6 149.2 66.8 90.5c13.4-21.2 20.6-37.2 21.5-48.3c3.4-32.8-25.6-30.6-45.2-22.2c15.7-51.5 45.8-76.5 90.1-75.1c32.9 1 48.4 22.4 46.5 64c-1.4 31.1-23.2 73.8-65.3 127.9z\"],asymmetrik:[576,512,[],\"f372\",\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"],\"font-awesome\":[448,512,[62501,62694,\"font-awesome-flag\",\"font-awesome-logo-full\"],\"f2b4\",\"M448 48V384C385 407 366 416 329 416C266 416 242 384 179 384C159 384 143 388 128 392V328C143 324 159 320 179 320C242 320 266 352 329 352C349 352 364 349 384 343V135C364 141 349 144 329 144C266 144 242 112 179 112C128 112 104 133 64 141V448C64 466 50 480 32 480S0 466 0 448V64C0 46 14 32 32 32S64 46 64 64V77C104 69 128 48 179 48C242 48 266 80 329 80C366 80 385 71 448 48Z\"],gratipay:[496,512,[],\"f184\",\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"],apple:[384,512,[],\"f179\",\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"],hive:[512,512,[],\"e07f\",\"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"],gitkraken:[592,512,[],\"f3a6\",\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"],keybase:[448,512,[],\"f4f5\",\"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"],\"apple-pay\":[640,512,[],\"f415\",\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"],padlet:[640,512,[],\"e4a0\",\"M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z\"],\"amazon-pay\":[640,512,[],\"f42c\",\"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"],\"square-github\":[448,512,[\"github-square\"],\"f092\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6c.1-11.4 .1-28.8 .1-43.7c0-15.6-5.2-25.5-11.3-30.7c37-4.1 76-9.2 76-73.1c0-18.2-6.5-27.3-17.1-39c1.7-4.3 7.4-22-1.7-45c-13.9-4.3-45.7 17.9-45.7 17.9c-13.2-3.7-27.5-5.6-41.6-5.6s-28.4 1.9-41.6 5.6c0 0-31.8-22.2-45.7-17.9c-9.1 22.9-3.5 40.6-1.7 45c-10.6 11.7-15.6 20.8-15.6 39c0 63.6 37.3 69 74.3 73.1c-4.8 4.3-9.1 11.7-10.6 22.3c-9.5 4.3-33.8 11.7-48.3-13.9c-9.1-15.8-25.5-17.1-25.5-17.1c-16.2-.2-1.1 10.2-1.1 10.2c10.8 5 18.4 24.2 18.4 24.2c9.7 29.7 56.1 19.7 56.1 19.7c0 9 .1 21.7 .1 30.6c0 4.8 .1 8.6 .1 10c0 4.3-3 9.5-11.5 8C106 393.6 59.8 330.8 59.8 257.4c0-91.8 70.2-161.5 162-161.5s166.2 69.7 166.2 161.5c.1 73.4-44.7 136.3-110.7 158.3c-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2c1.9-.2 3.7 .6 3.9 1.9c.3 1.3-1 2.6-3 3c-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4c0-1.3 1.5-2.4 3.5-2.4c1.9-.2 3.7 .9 3.7 2.4c0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4c-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1c.9-1.1 2.8-.9 4.3 .6c1.3 1.3 1.8 3.3 .9 4.1c-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3c1.1 1.5 1.1 3.3 0 4.1c-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5c.9-.9 2.4-.4 3.5 .6c1.1 1.3 1.3 2.8 .4 3.5c-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6c.4-.6 1.5-.9 2.8-.4c1.3 .7 1.9 1.8 1.5 2.6c-.4 .9-1.7 1.1-2.8 .4z\"],stumbleupon:[512,512,[],\"f1a4\",\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"],fedex:[640,512,[],\"f797\",\"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"],\"phoenix-framework\":[640,512,[],\"f3dc\",\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"],shopify:[448,512,[],\"e057\",\"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"],neos:[512,512,[],\"f612\",\"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"],\"square-threads\":[448,512,[],\"e619\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9c10.4 24.3 11.4 63.9-20.2 95.4c-24.2 24.1-53.5 35-95.1 35.3h-.2c-46.8-.3-82.8-16.1-106.9-46.8C91.5 341.8 80.4 303.7 80 256v-.1-.1c.4-47.7 11.5-85.7 33-113.1c24.2-30.7 60.2-46.5 106.9-46.8h.2c46.9 .3 83.3 16 108.2 46.6c12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6c-19.4-23.9-48.7-36.1-87-36.4c-38 .3-66.8 12.5-85.5 36.2c-17.5 22.3-26.6 54.4-26.9 95.5c.3 41.1 9.4 73.3 26.9 95.5c18.7 23.8 47.4 36 85.5 36.2c34.3-.3 56.9-8.4 75.8-27.3c21.5-21.5 21.1-47.9 14.2-64c-4-9.4-11.4-17.3-21.3-23.3c-2.4 18-7.9 32.2-16.5 43.2c-11.4 14.5-27.7 22.4-48.4 23.5c-15.7 .9-30.8-2.9-42.6-10.7c-13.9-9.2-22-23.2-22.9-39.5c-1.7-32.2 23.8-55.3 63.5-57.6c14.1-.8 27.3-.2 39.5 1.9c-1.6-9.9-4.9-17.7-9.8-23.4c-6.7-7.8-17.1-11.8-30.8-11.9h-.4c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1h.6c41.8 .3 66.6 26.3 69.1 71.8c1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8c-8.8-1.9-18.6-2.9-29-2.9c-3.2 0-6.4 .1-9.6 .3c-28.6 1.6-38.1 15.5-37.4 27.9c.9 16.7 19 24.5 36.4 23.6l-.1-.1z\"],hackerrank:[512,512,[],\"f5f7\",\"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"],researchgate:[448,512,[],\"f4f8\",\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"],swift:[448,512,[],\"f8e1\",\"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"],angular:[448,512,[],\"f420\",\"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"],speakap:[448,512,[],\"f3f3\",\"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"],angrycreative:[640,512,[],\"f36e\",\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"],\"y-combinator\":[448,512,[],\"f23b\",\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"],empire:[496,512,[],\"f1d1\",\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"],envira:[448,512,[],\"f299\",\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"],\"google-scholar\":[512,512,[],\"e63b\",\"M390.9 298.5c0 0 0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64C405.3 445.1 338.5 512 256 512s-149.3-66.9-149.3-149.3c0-22.9 5.2-44.6 14.4-64h0c1.7-3.6 3.6-7.2 5.6-10.7c4.4-7.6 9.4-14.7 15-21.3c27.4-32.6 68.5-53.3 114.4-53.3c33.6 0 64.6 11.1 89.6 29.9c9.1 6.9 17.4 14.7 24.8 23.5c5.6 6.6 10.6 13.8 15 21.3c2 3.4 3.8 7 5.5 10.5zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4L0 202.7 256 0 512 202.7l-94.7 77.1z\"],\"square-gitlab\":[448,512,[\"gitlab-square\"],\"e5ae\",\"M0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5c-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8c-2 1-4.4 2-6.7 2c-3 0-6.8-1.8-8.3-2.8l-54.2-40.9L93.5 322.3l-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6c1.6-1 3.4-1.6 5.2-1.8c1.3-.7 2.1-.4 3.4 .1c.6 .2 1.2 .5 2 .7c1 .4 1.6 .9 2.4 1.5c.6 .4 1.2 1 2.1 1.5c1.2 1.4 2.2 3 2.7 4.8l29.2 92.2H285l30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"],studiovinari:[512,512,[],\"f3f8\",\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"],\"pied-piper\":[480,512,[],\"f2ae\",\"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"],wordpress:[512,512,[],\"f19a\",\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"],\"product-hunt\":[512,512,[],\"f288\",\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"],firefox:[512,512,[],\"f269\",\"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"],linode:[448,512,[],\"f2b8\",\"M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z\"],goodreads:[448,512,[],\"f3a8\",\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"],\"square-odnoklassniki\":[448,512,[\"odnoklassniki-square\"],\"f264\",\"M224 137.1a39.9 39.9 0 1 0 0 79.7 39.9 39.9 0 1 0 0-79.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 95.9A81 81 0 1 1 224 258a81 81 0 1 1 0-162.1zm59.3 168.3c16.8-13.2 29.5-5.5 34.1 3.6c7.8 16-1.1 23.7-21.5 37c-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6c-12-12.2-29.5-29.7-47.7-47.9l0 0-47.7 47.9c-17.7 17.2-46-11-28.4-28.6c3.7-3.7 7.9-7.9 12.5-12.5c10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8c-20.3-13.3-29.3-20.9-21.4-37c4.6-9.1 17.3-16.8 34.1-3.6c0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"],jsfiddle:[576,512,[],\"f1cc\",\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"],sith:[448,512,[],\"f512\",\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"],themeisle:[512,512,[],\"f2b2\",\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"],page4:[496,512,[],\"f3d7\",\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"],hashnode:[512,512,[],\"e499\",\"M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z\"],react:[512,512,[],\"f41b\",\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"],\"cc-paypal\":[576,512,[],\"f1f4\",\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"],squarespace:[512,512,[],\"f5be\",\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"],\"cc-stripe\":[576,512,[],\"f1f5\",\"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"],\"creative-commons-share\":[496,512,[],\"f4f2\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"],bitcoin:[512,512,[],\"f379\",\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"],keycdn:[512,512,[],\"f3ba\",\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"],opera:[496,512,[],\"f26a\",\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"],\"itch-io\":[512,512,[],\"f83a\",\"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"],umbraco:[510,512,[],\"f8e8\",\"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"],\"galactic-senate\":[512,512,[],\"f50d\",\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"],ubuntu:[576,512,[],\"f7df\",\"M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z\"],draft2digital:[480,512,[],\"f396\",\"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"],stripe:[640,512,[],\"f429\",\"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"],houzz:[448,512,[],\"f27c\",\"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"],gg:[512,512,[],\"f260\",\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"],dhl:[640,512,[],\"f790\",\"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"],\"square-pinterest\":[448,512,[\"pinterest-square\"],\"f0d3\",\"M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z\"],xing:[384,512,[],\"f168\",\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"],blackberry:[512,512,[],\"f37b\",\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"],\"creative-commons-pd\":[496,512,[],\"f4ec\",\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"],playstation:[576,512,[],\"f3df\",\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"],quinscape:[512,512,[],\"f459\",\"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"],less:[640,512,[],\"f41d\",\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"],\"blogger-b\":[448,512,[],\"f37d\",\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"],opencart:[640,512,[],\"f23d\",\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"],vine:[384,512,[],\"f1ca\",\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"],\"signal-messenger\":[512,512,[],\"e663\",\"M194.6 7.5l5.8 23.3C177.7 36.3 156 45.3 136 57.4L123.7 36.8c22-13.3 45.9-23.2 70.9-29.3zm122.9 0l-5.8 23.3C334.3 36.3 356 45.3 376 57.4l12.4-20.6c-22-13.3-46-23.2-71-29.3zM36.8 123.7c-13.3 22-23.2 45.9-29.3 70.9l23.3 5.8C36.3 177.7 45.3 156 57.4 136L36.8 123.7zM24 256c0-11.6 .9-23.3 2.6-34.8L2.9 217.6c-3.8 25.4-3.8 51.3 0 76.7l23.7-3.6C24.9 279.3 24 267.6 24 256zM388.3 475.2L376 454.6c-20 12.1-41.6 21-64.2 26.6l5.8 23.3c24.9-6.2 48.8-16 70.8-29.3zM488 256c0 11.6-.9 23.3-2.6 34.8l23.7 3.6c3.8-25.4 3.8-51.3 0-76.7l-23.7 3.6c1.7 11.5 2.6 23.1 2.6 34.8zm16.5 61.4l-23.3-5.8c-5.6 22.7-14.5 44.3-26.6 64.3l20.6 12.4c13.3-22 23.2-46 29.3-71zm-213.8 168c-23 3.5-46.5 3.5-69.5 0l-3.6 23.7c25.4 3.8 51.3 3.8 76.7 0l-3.6-23.7zm152-91.8c-13.8 18.7-30.4 35.3-49.2 49.1l14.2 19.3c20.7-15.2 39-33.4 54.2-54.1l-19.3-14.4zM393.6 69.2c18.8 13.8 35.3 30.4 49.2 49.2L462.1 104C446.9 83.4 428.6 65.1 408 49.9L393.6 69.2zM69.2 118.4c13.8-18.8 30.4-35.3 49.2-49.2L104 49.9C83.4 65.1 65.1 83.4 49.9 104l19.3 14.4zm406 5.3L454.6 136c12.1 20 21 41.6 26.6 64.2l23.3-5.8c-6.2-24.9-16-48.8-29.3-70.8zm-254-97.1c23-3.5 46.5-3.5 69.5 0l3.6-23.7C268.9-1 243.1-1 217.6 2.9l3.6 23.7zM81.6 468.4L32 480l11.6-49.6L20.2 425 8.6 474.5c-.9 4-.8 8.1 .3 12.1s3.2 7.5 6.1 10.4s6.5 5 10.4 6.1s8.1 1.2 12.1 .3L87 492l-5.4-23.6zM25.2 403.6L48.6 409l8-34.4c-11.7-19.6-20.4-40.8-25.8-63L7.5 317.4c5.2 21.2 13.2 41.7 23.6 60.8l-5.9 25.3zm112 52l-34.4 8 5.4 23.4 25.3-5.9c19.2 10.4 39.6 18.4 60.8 23.6l5.8-23.3c-22.1-5.5-43.3-14.3-62.8-26l-.2 .2zM256 48c-37.2 0-73.6 10-105.6 28.9s-58.4 46-76.3 78.6s-26.9 69.3-25.8 106.4s12 73.3 31.8 104.8L60 452l85.3-20c27.3 17.2 58.2 27.8 90.3 31s64.5-1.1 94.6-12.6s57.2-29.8 79-53.6s37.8-52.2 46.8-83.2s10.5-63.6 4.7-95.3s-19-61.6-38.4-87.4s-44.5-46.7-73.4-61S288.3 48 256 48z\"],paypal:[384,512,[],\"f1ed\",\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"],gitlab:[512,512,[],\"f296\",\"M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z\"],typo3:[448,512,[],\"f42b\",\"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"],\"reddit-alien\":[512,512,[],\"f281\",\"M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"],yahoo:[512,512,[],\"f19e\",\"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"],dailymotion:[448,512,[],\"e052\",\"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"],affiliatetheme:[512,512,[],\"f36b\",\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"],\"pied-piper-pp\":[448,512,[],\"f1a7\",\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"],bootstrap:[576,512,[],\"f836\",\"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"],odnoklassniki:[320,512,[],\"f263\",\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"],\"nfc-symbol\":[576,512,[],\"e531\",\"M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z\"],mintbit:[512,512,[],\"e62f\",\"M73.2 512V438.9H365.7V365.7h73.2V219.4H512V0H292.6V73.1H146.3v73.2H73.2V438.9H0V512H73.2zm73.1-219.4h73.2v73.1H146.3V292.6zm73.2-73.1h73.1v73.1H219.4V219.4zm73.1 0V146.3h73.2v73.1H292.6zM365.7 73.1h73.2v73.2H365.7V73.1z\"],ethereum:[320,512,[],\"f42e\",\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"],\"speaker-deck\":[512,512,[],\"f83c\",\"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"],\"creative-commons-nc-eu\":[496,512,[],\"f4e9\",\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"],patreon:[512,512,[],\"f3d9\",\"M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z\"],avianex:[512,512,[],\"f374\",\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"],ello:[496,512,[],\"f5f1\",\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"],gofore:[400,512,[],\"f3a7\",\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"],bimobject:[448,512,[],\"f378\",\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"],\"brave-reverse\":[448,512,[],\"e63d\",\"M298 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3c9.2-1.6 18.6-2.2 27.7-1.2c11.6 1.4 21.5 5.4 28.9 12.9c7.7 7.8 15.4 15.8 22.6 23.6c2.5 2.7 4.9 5.2 6.9 7.4c.7 .8 1.4 1.5 1.9 2c3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2c-.1 .4-.1 .4-.5 2.1c-.6 2.3-.6 2.3-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9c-5.6 21.6-11.2 43.2-16.4 63.4c-12.9 49.9-21.4 82.7-23.4 90.9c-11.1 44.5-19.9 60-48.3 80.3c-24.9 17.8-76.8 53.6-86.8 60c-1 .6-2 1.3-3.4 2.3c-.5 .4-3.2 2.2-3.9 2.7c-4.9 3.3-8.3 5.5-12.1 7.3c-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3c-.8-.5-3.4-2.4-3.9-2.7c-1.4-1-2.5-1.7-3.4-2.3c-10-6.4-61.9-42.1-86.8-60c-28.4-20.4-37.2-35.8-48.3-80.3c-2-8.2-10.5-41-23.3-90.5c-5.3-20.6-10.9-42.2-16.5-63.8c-2-7.6-3.8-14.6-5.4-20.9c-.9-3.5-.9-3.5-1.5-5.8c-.4-1.7-.4-1.7-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1L11.8 104c-1.5-3.8-.7-8.2 2-11.2c1.2-1.3 1.8-2 2.6-2.8c2-2.2 4.4-4.7 6.9-7.4C30.6 74.9 38.3 66.9 46 59.1c7.4-7.5 17.3-11.6 28.9-12.9c9.1-1.1 18.5-.5 27.7 1.2c.5 .1 1 .2 1.5 .3l38.1-44C144.2 1.3 147 0 150 0H298zm-4.7 21.1H154.7L115.6 66.2c-2.6 3-6.7 4.3-10.6 3.2c-.2-.1-.7-.2-1.5-.4c-1.3-.3-2.9-.6-4.5-.9c-7.4-1.3-14.9-1.8-21.7-1C70 68 64.3 70.3 60.7 74c-7.6 7.7-15.2 15.6-22.3 23.3c-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.2 170.6c.4 1.4 .5 1.9 1.2 4.8c1.6 6.3 3.5 13.3 5.4 20.9c5.6 21.6 11.2 43.2 16.4 63.4c12.9 50 21.4 82.8 23.4 91C85.7 390.8 92 402 115.8 419c24.6 17.6 76.3 53.2 85.9 59.3c1.2 .8 2.5 1.6 4 2.7c.6 .4 3.2 2.2 3.9 2.7c4 2.8 6.7 4.4 9.2 5.6c2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6c.7-.5 3.3-2.3 3.9-2.7c1.6-1.1 2.8-1.9 4-2.7c9.6-6.1 61.3-41.7 85.9-59.3c23.8-17.1 30.2-28.2 40.1-68.3c2.1-8.3 10.5-41.1 23.3-90.7c5.3-20.6 10.9-42.2 16.5-63.8c2-7.6 3.8-14.6 5.4-20.9c.7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1c-7.2-7.6-14.7-15.5-22.3-23.3c-3.7-3.7-9.3-6-16.6-6.9c-6.8-.8-14.4-.3-21.7 1c-1.7 .3-3.2 .6-4.5 .9c-.8 .2-1.3 .3-1.5 .4c-3.8 1.1-7.9-.2-10.6-3.2L293.3 21.1zM224 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2s1.3 6.2-1.7 8.4s-44.1 34.6-48.1 38.2s-9.8 9.5-13.8 9.5s-9.8-5.9-13.8-9.5s-45.1-36-48.1-38.2s-5.1-6.2-1.7-8.4s13.9-7.5 28.3-15.2s32.5-14.1 35.4-14.1zm.1-230.7c.7 0 8.8 .2 20.5 4.2c12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9s54.2 66.7 54.2 81s-6.8 18-13.7 25.4s-36.8 39.8-40.7 43.9s-11.9 10.5-7.1 21.8s11.7 25.8 3.9 40.4s-21 24.4-29.4 22.8s-28.4-12.2-35.7-17.1s-30.5-24.3-30.5-31.8s24-20.8 28.4-23.9s24.7-14.8 25.1-19.4s.3-6-5.7-17.4s-16.7-26.7-14.9-36.8s19.1-15.4 31.5-20.2s36.2-13.7 39.2-15.1s2.2-2.7-6.8-3.6s-34.6-4.3-46.1-1.1s-31.2 8.2-32.8 10.9s-3 2.7-1.4 11.8s10.1 52.8 10.9 60.6s2.4 12.9-5.8 14.8s-22.1 5.2-26.8 5.2s-18.6-3.3-26.8-5.2s-6.6-7-5.8-14.8s9.3-51.5 10.9-60.6s.2-9.2-1.4-11.8s-21.3-7.6-32.8-10.9s-37.1 .2-46.1 1.1s-9.8 2.2-6.8 3.6s26.8 10.4 39.2 15.1s29.7 10 31.5 20.2s-9 25.4-14.9 36.8s-6.1 12.8-5.7 17.4s20.6 16.4 25.1 19.4s28.4 16.4 28.4 23.9s-23.2 27-30.5 31.8s-27.2 15.4-35.7 17.1s-21.7-8.2-29.4-22.8s-.8-29.1 3.9-40.4s-3.3-17.7-7.1-21.8s-33.8-36.5-40.7-43.9s-13.7-11.2-13.7-25.4s54.2-81 54.2-81s45.8 8.9 51.9 8.9s19.5-5.2 31.9-9.4s20.6-4.2 20.6-4.2l.1 0z\"],\"facebook-f\":[320,512,[],\"f39e\",\"M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z\"],\"square-google-plus\":[448,512,[\"google-plus-square\"],\"f0d4\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM64 256c0-55.3 44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4c-34.1 0-61.9 28.2-61.9 63.2c0 34.9 27.8 63.2 61.9 63.2c39.6 0 54.4-28.5 56.8-43.1H164V241.8h94.4c1 5 1.6 10.1 1.6 16.6c0 57.1-38.3 97.6-96 97.6c-55.3 0-100-44.7-100-100zm291 18.2v29H325.8v-29h-29V245h29V216H355v29h29v29.2H355z\"],mandalorian:[448,512,[],\"f50f\",\"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"],\"first-order-alt\":[496,512,[],\"f50a\",\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"],osi:[512,512,[],\"f41a\",\"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"],\"google-wallet\":[448,512,[],\"f1ee\",\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"],\"d-and-d-beyond\":[640,512,[],\"f6ca\",\"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"],periscope:[448,512,[],\"f3da\",\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"],fulcrum:[320,512,[],\"f50b\",\"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"],cloudscale:[448,512,[],\"f383\",\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"],forumbee:[448,512,[],\"f211\",\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"],mizuni:[496,512,[],\"f3cc\",\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"],schlix:[448,512,[],\"f3ea\",\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"],\"square-xing\":[448,512,[\"xing-square\"],\"f169\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2c-3.5 6.2-7.7 9.1-12.6 9.1H93.8zm163.5-33.4v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1H270.2c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6c11.7-20.7 25.1-44.3 40.1-70.8c3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"],bandcamp:[512,512,[],\"f2d5\",\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"],wpforms:[448,512,[],\"f298\",\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"],cloudversify:[616,512,[],\"f385\",\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"],usps:[576,512,[],\"f7e1\",\"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"],megaport:[496,512,[],\"f5a3\",\"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"],magento:[448,512,[],\"f3c4\",\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"],spotify:[496,512,[],\"f1bc\",\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"],\"optin-monster\":[576,512,[],\"f23c\",\"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"],fly:[384,512,[],\"f417\",\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"],aviato:[640,512,[],\"f421\",\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"],itunes:[448,512,[],\"f3b4\",\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"],cuttlefish:[440,512,[],\"f38c\",\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"],blogger:[448,512,[],\"f37c\",\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"],flickr:[448,512,[],\"f16e\",\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"],viber:[512,512,[],\"f409\",\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"],soundcloud:[640,512,[],\"f1be\",\"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"],digg:[512,512,[],\"f1a6\",\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"],\"tencent-weibo\":[384,512,[],\"f1d5\",\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"],letterboxd:[640,512,[],\"e62d\",\"M521.3 128C586.9 128 640 181.1 640 246.6s-53.1 118.6-118.7 118.6c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"],symfony:[512,512,[],\"f83d\",\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"],maxcdn:[512,512,[],\"f136\",\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"],etsy:[384,512,[],\"f2d7\",\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"],\"facebook-messenger\":[512,512,[],\"f39f\",\"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"],audible:[640,512,[],\"f373\",\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"],\"think-peaks\":[576,512,[],\"f731\",\"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"],bilibili:[512,512,[],\"e3d9\",\"M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z\"],erlang:[640,512,[],\"f39d\",\"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"],\"x-twitter\":[512,512,[],\"e61b\",\"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\"],\"cotton-bureau\":[512,512,[],\"f89e\",\"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"],dashcube:[448,512,[],\"f210\",\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"],\"42-group\":[640,512,[\"innosoft\"],\"e080\",\"M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z\"],\"stack-exchange\":[448,512,[],\"f18d\",\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"],elementor:[512,512,[],\"f430\",\"M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z\"],\"square-pied-piper\":[448,512,[\"pied-piper-square\"],\"e01e\",\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"],\"creative-commons-nd\":[496,512,[],\"f4eb\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"],palfed:[576,512,[],\"f3d8\",\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"],superpowers:[448,512,[],\"f2dd\",\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"],resolving:[496,512,[],\"f3e7\",\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"],xbox:[512,512,[],\"f412\",\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"],searchengin:[460,512,[],\"f3eb\",\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"],tiktok:[448,512,[],\"e07b\",\"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"],\"square-facebook\":[448,512,[\"facebook-square\"],\"f082\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],renren:[512,512,[],\"f18b\",\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"],linux:[448,512,[],\"f17c\",\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"],glide:[448,512,[],\"f2a5\",\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"],linkedin:[448,512,[],\"f08c\",\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"],hubspot:[512,512,[],\"f3b2\",\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"],deploydog:[512,512,[],\"f38e\",\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"],twitch:[512,512,[],\"f1e8\",\"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"],ravelry:[512,512,[],\"f2d9\",\"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"],mixer:[512,512,[],\"e056\",\"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"],\"square-lastfm\":[448,512,[\"lastfm-square\"],\"f203\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9c-12.9-41.9-21-68.4-58-68.4c-22.4 0-45.1 16.1-45.1 61.2c0 35.2 18 57.2 43.3 57.2c28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8c0-57.9 28.6-92 82.5-92c67.9 0 79.3 35.3 96.4 88.4c1.4 4.4 2.9 8.9 4.4 13.5c8.8 26.8 24.2 46.2 61.2 46.2c24.9 0 38.1-5.5 38.1-19.1c0-17.5-16.9-21.2-40-26.4c-3.2-.7-6.5-1.4-9.9-2.2c-30.4-7.3-42.5-23.1-42.5-48c0-40 32.3-52.4 65.2-52.4c37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4c-16.1 0-26 7.3-26 19.8c0 11 4.8 17.6 20.9 21.3c2.2 .5 4.5 1 6.7 1.4c31.1 6.5 65.1 13.7 65.1 56.1c.1 36.7-30.7 50.6-76.1 50.6c-63.4 0-85.4-28.6-97.1-64.1z\"],vimeo:[448,512,[],\"f40a\",\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"],mendeley:[640,512,[],\"f7b3\",\"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"],uniregistry:[384,512,[],\"f404\",\"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"],figma:[384,512,[],\"f799\",\"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"],\"creative-commons-remix\":[496,512,[],\"f4ee\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"],\"cc-amazon-pay\":[576,512,[],\"f42d\",\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"],dropbox:[528,512,[],\"f16b\",\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"],instagram:[448,512,[],\"f16d\",\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],cmplid:[640,512,[],\"e360\",\"M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z\"],upwork:[448,512,[],\"e641\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM270.8 274.3c5.2 8.4 23.6 29.9 51.5 29.9v0c25.2 0 44.9-20.2 44.9-49.7s-19.4-49.7-44.9-49.7s-44.9 16.7-51.5 69.5zm-26.7-41.8c7.3-30.5 32.7-60.1 78.2-60.1l0 0c45.1 0 80.9 35.2 80.9 82.2s-35.9 81.9-80.9 81.9c-.6 0-1.1 0-1.7 0c-.5 0-1.1 0-1.6 0h-.1c-14.5-.5-28.7-4.8-40.9-12.6c-4.7-2.8-9.1-6-13.4-9.5l-12.8 78.4H214.9l19.4-110.6c-20.8-29.1-31.6-62.4-36.2-79.7V255c0 48-30.5 81.5-74.2 81.5c-22 0-41-8-54.8-23.3c-13.4-14.8-20.8-35.5-20.8-58.3V176.8H84.5l-.3 78.2c0 28.4 14.5 49.3 39.8 49.3s38.2-20.9 38.2-49.3V176.8h62.8c4.8 19.3 10.9 40.1 19.2 55.6z\"],facebook:[512,512,[62e3],\"f09a\",\"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z\"],gripfire:[384,512,[],\"f3ac\",\"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"],\"jedi-order\":[448,512,[],\"f50e\",\"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"],uikit:[448,512,[],\"f403\",\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"],\"fort-awesome-alt\":[512,512,[],\"f3a3\",\"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"],phabricator:[496,512,[],\"f3db\",\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"],ussunnah:[482,512,[],\"f407\",\"M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z\"],earlybirds:[480,512,[],\"f39a\",\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"],\"trade-federation\":[496,512,[],\"f513\",\"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"],autoprefixer:[640,512,[],\"f41c\",\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"],whatsapp:[448,512,[],\"f232\",\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"],slideshare:[512,512,[],\"f1e7\",\"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"],\"google-play\":[512,512,[],\"f3ab\",\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"],viadeo:[448,512,[],\"f2a9\",\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"],line:[512,512,[],\"f3c0\",\"M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z\"],\"google-drive\":[512,512,[],\"f3aa\",\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"],servicestack:[496,512,[],\"f3ec\",\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"],simplybuilt:[512,512,[],\"f215\",\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"],bitbucket:[512,512,[61810],\"f171\",\"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"],imdb:[448,512,[],\"f2d8\",\"M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z\"],deezer:[576,512,[],\"e077\",\"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"],\"raspberry-pi\":[407,512,[],\"f7bb\",\"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"],jira:[496,512,[],\"f7b1\",\"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"],docker:[640,512,[],\"f395\",\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"],screenpal:[512,512,[],\"e570\",\"M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z\"],bluetooth:[448,512,[],\"f293\",\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"],gitter:[384,512,[],\"f426\",\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"],\"d-and-d\":[576,512,[],\"f38d\",\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"],microblog:[448,512,[],\"e01a\",\"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"],\"cc-diners-club\":[576,512,[],\"f24c\",\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"],\"gg-circle\":[512,512,[],\"f261\",\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"],\"pied-piper-hat\":[640,512,[],\"f4e5\",\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"],\"kickstarter-k\":[384,512,[],\"f3bc\",\"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"],yandex:[256,512,[],\"f413\",\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"],readme:[576,512,[],\"f4d5\",\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"],html5:[384,512,[],\"f13b\",\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"],sellsy:[640,512,[],\"f213\",\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"],sass:[640,512,[],\"f41e\",\"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"],wirsindhandwerk:[512,512,[\"wsh\"],\"e2d0\",\"M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z\"],buromobelexperte:[448,512,[],\"f37f\",\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"],salesforce:[640,512,[],\"f83b\",\"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"],\"octopus-deploy\":[512,512,[],\"e082\",\"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"],medapps:[320,512,[],\"f3c6\",\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"],ns8:[640,512,[],\"f3d5\",\"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"],\"pinterest-p\":[384,512,[],\"f231\",\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"],apper:[640,512,[],\"f371\",\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"],\"fort-awesome\":[512,512,[],\"f286\",\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"],waze:[512,512,[],\"f83f\",\"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"],\"cc-jcb\":[576,512,[],\"f24b\",\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"],snapchat:[512,512,[62124,\"snapchat-ghost\"],\"f2ab\",\"M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z\"],\"fantasy-flight-games\":[512,512,[],\"f6dc\",\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"],rust:[512,512,[],\"e07a\",\"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"],wix:[640,512,[],\"f5cf\",\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"],\"square-behance\":[448,512,[\"behance-square\"],\"f1b5\",\"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4c0-19.7-11.7-27.4-30.3-27.5h-46v52.9h45.1zm-5.4-129.6H110.3v44.8H153c15.1 0 25.8-6.6 25.8-22.9c0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8h62.2c-1.7-18.5-11.3-29.7-30.5-29.7c-18.3 0-30.5 11.4-31.7 29.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM349.5 185H271.7V166.1h77.8V185zM193.7 243.7c23.6 6.7 35 27.5 35 51.6c0 39-32.7 55.7-67.6 55.9H68v-192h90.5c32.9 0 61.4 9.3 61.4 47.5c0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4c0 1.6-.1 3.3-.2 5c0 .8-.1 1.5-.1 2.2H279.5c0 22.2 11.7 35.3 34.1 35.3c11.6 0 26.5-6.2 30.2-18.1h33.7c-10.4 31.9-31.9 46.8-65.1 46.8c-43.8 0-71.1-29.7-71.1-73c0-41.8 28.7-73.6 71.1-73.6z\"],supple:[640,512,[],\"f3f9\",\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"],webflow:[640,512,[],\"e65c\",\"M640 64L435.8 463.2H244l85.5-165.5h-3.8C255.1 389.3 149.9 449.5 0 463.2V300.1s95.9-5.7 152.3-64.9H0V64H171.1V204.8l3.8 0L244.9 64H374.3V203.9l3.8 0L450.7 64H640z\"],rebel:[512,512,[],\"f1d0\",\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"],css3:[512,512,[],\"f13c\",\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"],staylinked:[440,512,[],\"f3f5\",\"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"],kaggle:[320,512,[],\"f5fa\",\"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"],\"space-awesome\":[512,512,[],\"e5ac\",\"M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z\"],deviantart:[320,512,[],\"f1bd\",\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"],cpanel:[640,512,[],\"f388\",\"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"],\"goodreads-g\":[384,512,[],\"f3a9\",\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"],\"square-git\":[448,512,[\"git-square\"],\"f1d2\",\"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3c-3.3 4.1-6.6 8.4-6.6 13.5c0 18.5 65.5 18.5 65.5-1.5c0-8.3-7.4-8.7-38.8-10.7zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5c32.5 0 31.7-44.5 .7-44.5zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9c0-14.5 8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195h49.5l0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7c0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8c56.3 3.2 80.5 4.6 80.5 38.5c0 29.2-25.7 45.7-69.9 45.7c-46 0-63.5-11.6-63.5-31.7c0-11.4 5.1-17.5 14-25.9c-8.4-3.5-11.2-9.9-11.2-16.8c0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1c0-51.6 56.6-53.3 81.6-46.8zM270.5 303.1l13 1.8 0 20.1H211.1V304.9c2.7-.4 5-.7 6.9-.9c9.9-1.2 10.1-1.3 10.1-6V223.3c0-4.4-.9-4.7-10.1-7.8c-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6h52.6V298c0 4.1 .2 4.6 4.1 5.1zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2c-30.2 0-41.7-12.2-41.7-40.9V217.7c0-.8 0-1.4-.2-1.8c-.8-1.2-4.2-.7-19.6-.7V192.6c22.3-2.5 31.2-13.7 34-41.4h24.2c0 33.3-.6 38 .7 38.6c.3 .1 .7 0 1.3 0h35.8v25.4H339.3v60.7c0 .2 0 .5 0 .9c-.2 6.3-.9 30.4 37.9 15.9z\"],\"square-tumblr\":[448,512,[\"tumblr-square\"],\"f174\",\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9v-90H135.2c-3.4 0-6.2-2.8-6.2-6.2V189.4c0-4.5 2.8-8.5 7.1-10c38.8-13.7 50.9-47.5 52.7-73.2c.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2H249.1V321c0 21.4 14.8 33.5 42.5 22.4c3-1.2 5.6-2 8-1.4c2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1c-8.5 9.1-31.2 19.8-60.9 19.8z\"],trello:[448,512,[],\"f181\",\"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"],\"creative-commons-nc-jp\":[496,512,[],\"f4ea\",\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"],\"get-pocket\":[448,512,[],\"f265\",\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"],perbyte:[448,512,[],\"e083\",\"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"],grunt:[384,512,[],\"f3ad\",\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"],weebly:[512,512,[],\"f5cc\",\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"],connectdevelop:[576,512,[],\"f20e\",\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"],leanpub:[576,512,[],\"f212\",\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"],\"black-tie\":[448,512,[],\"f27e\",\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"],themeco:[448,512,[],\"f5c6\",\"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"],python:[448,512,[],\"f3e2\",\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"],android:[576,512,[],\"f17b\",\"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"],bots:[640,512,[],\"e340\",\"M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z\"],\"free-code-camp\":[576,512,[],\"f2c5\",\"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"],hornbill:[512,512,[],\"f592\",\"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"],js:[448,512,[],\"f3b8\",\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],ideal:[576,512,[],\"e013\",\"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"],git:[512,512,[],\"f1d3\",\"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"],dev:[448,512,[],\"f6cc\",\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"],sketch:[512,512,[],\"f7c6\",\"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"],\"yandex-international\":[320,512,[],\"f414\",\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"],\"cc-amex\":[576,512,[],\"f1f3\",\"M0 432c0 26.5 21.5 48 48 48H528c26.5 0 48-21.5 48-48v-1.1H514.3l-31.9-35.1-31.9 35.1H246.8V267.1H181L262.7 82.4h78.6l28.1 63.2V82.4h97.2L483.5 130l17-47.6H576V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80V432zm440.4-21.7L482.6 364l42 46.3H576l-68-72.1 68-72.1H525.4l-42 46.7-41.5-46.7H390.5L458 338.6l-67.4 71.6V377.1h-83V354.9h80.9V322.6H307.6V300.2h83V267.1h-122V410.3H440.4zm96.3-72L576 380.2V296.9l-39.3 41.4zm-36.3-92l36.9-100.6V246.3H576V103H515.8l-32.2 89.3L451.7 103H390.5V246.1L327.3 103H276.1L213.7 246.3h43l11.9-28.7h65.9l12 28.7h82.7V146L466 246.3h34.4zM282 185.4l19.5-46.9 19.4 46.9H282z\"],uber:[448,512,[],\"f402\",\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"],github:[496,512,[],\"f09b\",\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"],php:[640,512,[],\"f457\",\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"],alipay:[448,512,[],\"f642\",\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"],youtube:[576,512,[61802],\"f167\",\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"],skyatlas:[640,512,[],\"f216\",\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"],\"firefox-browser\":[512,512,[],\"e007\",\"M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z\"],replyd:[448,512,[],\"f3e6\",\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"],suse:[640,512,[],\"f7d6\",\"M593.1 192.6A10.4 10.4 0 1 1 604.5 210a10.4 10.4 0 1 1 -11.4-17.4zm-47.1 12.2a38.5 38.5 0 1 1 75-17.6 38.5 38.5 0 1 1 -75 17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4c1 3.1 2.4 7.3 5.5 8.9c.2 .1 .3 .2 .5 .2c5.7 2.1 20.3 1.7 20.3 1.7h26.8c2.3 0 22.4 0 21.9-2.3c-2.4-10.8-14.9-12.7-24.4-18.3c-8.7-5.2-17-11.1-20.8-21.3c-2-5.2-.8-17.4 2.6-21.8c2.5-3.2 6.1-5.3 10-6.2c4.3-.9 8.8-.1 13.1 .3c5.3 .5 10.6 1.5 15.9 2.2c10.3 1.3 20.6 1.9 31 1.6c17.1-.5 34.2-3.2 50.4-8.7c11.3-3.8 22.4-8.9 32-16.1c10.9-8.1 8.1-7.4-3-6.2c-13.3 1.4-26.6 1.6-39.9 .8c-12.4-.7-24.7-2.2-35.9-7.9c-8.8-4.6-16.4-9.1-23.4-16.2c-1-1.1-1.7-4.2 .2-6.2c1.9-1.9 5.8-.8 7 .2c12.2 10.2 30.5 18.6 49.3 19.5c10.2 .5 20.1 .7 30.4 .3c5.1-.2 12.8-.2 17.9-.3c2.6 0 9.8 .7 11.2-2.1c.4-.8 .4-1.8 .3-2.7c-1.5-40.9-4.5-86.9-47.3-106.5c-31.9-14.6-79.7-37.2-99.9-46.6c-4.7-2.2-10.2 1.3-10.2 6.5c0 13.6 .7 33.3 .7 51.1c-9.7-9.9-26-16.1-38.4-21.8c-14.1-6.5-28.7-12-43.5-16.6c-29.8-9.2-60.7-14.9-91.7-18c-35.2-3.5-71-1.8-105.7 5.3C147 115.1 90.8 142.6 48.2 182.7C22.1 207.3 1.6 242.4 .2 277.9c-2 50.3 12.1 77.3 38 105.2c41.3 44.4 130.2 50.6 166.2-2c16.2-23.7 19.7-55.8 8-82c-11.8-26.2-38.8-45.1-67.4-46c-22.2-.7-45.9 10.6-54.5 31.1c-6.5 15.7-2.8 35.1 9 47.3c4.6 4.8 10.9 8.7 17.7 7.1c4-.9 7.4-3.9 8-8c.9-6-4.4-9.9-7.6-14.5c-5.8-8.3-4.7-20.9 2.7-27.9c6.2-6 15.3-7.8 23.9-7.7c8 0 16.2 1.4 23.1 5.5c9.7 5.7 16.2 16.2 18.4 27.2c6.7 33-20.2 59.9-56.6 62c-18.6 1.1-37.6-3.8-52.1-15.5C40.1 329.9 31.1 269.4 73.2 237c40-30.7 90.4-22.8 120.2-6.8c23.8 12.8 41.5 33.6 55 56.7c6.7 11.6 12.5 23.7 17.8 36.1c5.1 11.8 9.9 23.8 20.2 32.5c6.8 5.8 15.2 5.6 24.1 5.6h50.8c6.9 0 5.2-4.6 2.2-7.7c-6.7-6.9-16.4-8.4-25.4-10.9c-20.5-5.6-18.4-32.8-12.7-32.8c18.3 0 18.9 .6 34.9 .3c23.2-.3 30.2-1.7 48.3 5c9.7 3.6 19 13.1 25.1 21.7z\"],jenkins:[512,512,[],\"f3b6\",\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"],twitter:[512,512,[],\"f099\",\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"],rockrms:[496,512,[],\"f3e9\",\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"],pinterest:[496,512,[],\"f0d2\",\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"],buffer:[448,512,[],\"f837\",\"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"],npm:[576,512,[],\"f3d4\",\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"],yammer:[512,512,[],\"f840\",\"M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z\"],btc:[384,512,[],\"f15a\",\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"],dribbble:[512,512,[],\"f17d\",\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"],\"stumbleupon-circle\":[496,512,[],\"f1a3\",\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"],\"internet-explorer\":[512,512,[],\"f26b\",\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"],stubber:[448,512,[],\"e5c7\",\"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z\"],telegram:[496,512,[62462,\"telegram-plane\"],\"f2c6\",\"M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z\"],\"old-republic\":[496,512,[],\"f510\",\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"],odysee:[512,512,[],\"e5c6\",\"M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z\"],\"square-whatsapp\":[448,512,[\"whatsapp-square\"],\"f40c\",\"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z\"],\"node-js\":[448,512,[],\"f3d3\",\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"],\"edge-legacy\":[512,512,[],\"e078\",\"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"],slack:[448,512,[62447,\"slack-hash\"],\"f198\",\"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"],medrt:[544,512,[],\"f3c8\",\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"],usb:[640,512,[],\"f287\",\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"],tumblr:[320,512,[],\"f173\",\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"],vaadin:[448,512,[],\"f408\",\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"],quora:[448,512,[],\"f2c4\",\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"],\"square-x-twitter\":[448,512,[],\"e61a\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z\"],reacteurope:[576,512,[],\"f75d\",\"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"],medium:[640,512,[62407,\"medium-m\"],\"f23a\",\"M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z\"],amilia:[448,512,[],\"f36d\",\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"],mixcloud:[640,512,[],\"f289\",\"M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z\"],flipboard:[448,512,[],\"f44d\",\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"],viacoin:[384,512,[],\"f237\",\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"],\"critical-role\":[448,512,[],\"f6c9\",\"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"],sitrox:[448,512,[],\"e44a\",\"M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z\"],discourse:[448,512,[],\"f393\",\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"],joomla:[448,512,[],\"f1aa\",\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"],mastodon:[448,512,[],\"f4f6\",\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"],airbnb:[448,512,[],\"f834\",\"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"],\"wolf-pack-battalion\":[512,512,[],\"f514\",\"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"],\"buy-n-large\":[576,512,[],\"f8a6\",\"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"],gulp:[256,512,[],\"f3ae\",\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"],\"creative-commons-sampling-plus\":[496,512,[],\"f4f1\",\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"],strava:[384,512,[],\"f428\",\"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"],ember:[640,512,[],\"f423\",\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"],\"canadian-maple-leaf\":[512,512,[],\"f785\",\"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"],teamspeak:[576,512,[],\"f4f9\",\"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z\"],pushed:[432,512,[],\"f3e1\",\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"],\"wordpress-simple\":[512,512,[],\"f411\",\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"],nutritionix:[400,512,[],\"f3d6\",\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"],wodu:[640,512,[],\"e088\",\"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"],\"google-pay\":[640,512,[],\"e079\",\"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"],intercom:[448,512,[],\"f7af\",\"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"],zhihu:[640,512,[],\"f63f\",\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"],korvue:[446,512,[],\"f42f\",\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"],pix:[512,512,[],\"e43a\",\"M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z\"],\"steam-symbol\":[448,512,[],\"f3f6\",\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"]};!function(c){try{for(var l=arguments.length,s=new Array(1<l?l-1:0),a=1;a<l;a++)s[a-1]=arguments[a];c.apply(void 0,s)}catch(c){if(!h)throw c}}(function(){d(\"fab\",p),d(\"fa-brands\",p)})}(),function(){\"use strict\";var c={},l={};try{\"undefined\"!=typeof window&&(c=window),\"undefined\"!=typeof document&&(l=document)}catch(c){}var s=(c.navigator||{}).userAgent,a=void 0===s?\"\":s,z=c,e=l;z.document,e.documentElement&&e.head&&\"function\"==typeof e.addEventListener&&e.createElement,~a.indexOf(\"MSIE\")||a.indexOf(\"Trident/\");function H(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function t(l){for(var c=1;c<arguments.length;c++){var s=null!=arguments[c]?arguments[c]:{};c%2?H(Object(s),!0).forEach(function(c){V(l,c,s[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(s)):H(Object(s)).forEach(function(c){Object.defineProperty(l,c,Object.getOwnPropertyDescriptor(s,c))})}return l}function V(c,l,s){return l in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s,c}function r(c,l){(null==l||l>c.length)&&(l=c.length);for(var s=0,a=new Array(l);s<l;s++)a[s]=c[s];return a}var M=\"___FONT_AWESOME___\",h=function(){try{return!0}catch(c){return!1}}(),n=\"classic\",i=\"sharp\",m=[n,i];function o(c){return new Proxy(c,{get:function(c,l){return l in c?c[l]:c[n]}})}o((V(C={},n,{fa:\"solid\",fas:\"solid\",\"fa-solid\":\"solid\",far:\"regular\",\"fa-regular\":\"regular\",fal:\"light\",\"fa-light\":\"light\",fat:\"thin\",\"fa-thin\":\"thin\",fad:\"duotone\",\"fa-duotone\":\"duotone\",fab:\"brands\",\"fa-brands\":\"brands\",fak:\"kit\",fakd:\"kit\",\"fa-kit\":\"kit\",\"fa-kit-duotone\":\"kit\"}),V(C,i,{fa:\"solid\",fass:\"solid\",\"fa-solid\":\"solid\",fasr:\"regular\",\"fa-regular\":\"regular\",fasl:\"light\",\"fa-light\":\"light\",fast:\"thin\",\"fa-thin\":\"thin\"}),C));var f=o((V(v={},n,{solid:\"fas\",regular:\"far\",light:\"fal\",thin:\"fat\",duotone:\"fad\",brands:\"fab\",kit:\"fak\"}),V(v,i,{solid:\"fass\",regular:\"fasr\",light:\"fasl\",thin:\"fast\"}),v)),e=(o((V(s={},n,{fab:\"fa-brands\",fad:\"fa-duotone\",fak:\"fa-kit\",fal:\"fa-light\",far:\"fa-regular\",fas:\"fa-solid\",fat:\"fa-thin\"}),V(s,i,{fass:\"fa-solid\",fasr:\"fa-regular\",fasl:\"fa-light\",fast:\"fa-thin\"}),s)),o((V(c={},n,{\"fa-brands\":\"fab\",\"fa-duotone\":\"fad\",\"fa-kit\":\"fak\",\"fa-light\":\"fal\",\"fa-regular\":\"far\",\"fa-solid\":\"fas\",\"fa-thin\":\"fat\"}),V(c,i,{\"fa-solid\":\"fass\",\"fa-regular\":\"fasr\",\"fa-light\":\"fasl\",\"fa-thin\":\"fast\"}),c)),o((V(l={},n,{900:\"fas\",400:\"far\",normal:\"far\",300:\"fal\",100:\"fat\"}),V(l,i,{900:\"fass\",400:\"fasr\",300:\"fasl\",100:\"fast\"}),l)),[1,2,3,4,5,6,7,8,9,10]),a=e.concat([11,12,13,14,15,16,17,18,19,20]),C=\"duotone-group\",v=\"swap-opacity\",s=\"primary\",c=\"secondary\",l=new Set;Object.keys(f[n]).map(l.add.bind(l)),Object.keys(f[i]).map(l.add.bind(l));[].concat(m,function(c){if(Array.isArray(c))return r(c)}(l=l)||function(c){if(\"undefined\"!=typeof Symbol&&null!=c[Symbol.iterator]||null!=c[\"@@iterator\"])return Array.from(c)}(l)||function(c,l){if(c){if(\"string\"==typeof c)return r(c,l);var s=Object.prototype.toString.call(c).slice(8,-1);return\"Map\"===(s=\"Object\"===s&&c.constructor?c.constructor.name:s)||\"Set\"===s?Array.from(c):\"Arguments\"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?r(c,l):void 0}}(l)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(),[\"2xs\",\"xs\",\"sm\",\"lg\",\"xl\",\"2xl\",\"beat\",\"border\",\"fade\",\"beat-fade\",\"bounce\",\"flip-both\",\"flip-horizontal\",\"flip-vertical\",\"flip\",\"fw\",\"inverse\",\"layers-counter\",\"layers-text\",\"layers\",\"li\",\"pull-left\",\"pull-right\",\"pulse\",\"rotate-180\",\"rotate-270\",\"rotate-90\",\"rotate-by\",\"shake\",\"spin-pulse\",\"spin-reverse\",\"spin\",\"stack-1x\",\"stack-2x\",\"stack\",\"ul\",C,v,s,c]).concat(e.map(function(c){return\"\".concat(c,\"x\")})).concat(a.map(function(c){return\"w-\".concat(c)}));z=z||{};z[M]||(z[M]={}),z[M].styles||(z[M].styles={}),z[M].hooks||(z[M].hooks={}),z[M].shims||(z[M].shims=[]);var L=z[M];function u(a){return Object.keys(a).reduce(function(c,l){var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function d(c,l,s){var a=(2<arguments.length&&void 0!==s?s:{}).skipHooks,s=void 0!==a&&a,a=u(l);\"function\"!=typeof L.hooks.addPack||s?L.styles[c]=t(t({},L.styles[c]||{}),a):L.hooks.addPack(c,u(l)),\"fas\"===c&&d(\"fa\",l)}var p={\"trash-can\":[448,512,[61460,\"trash-alt\"],\"f2ed\",\"M170.5 51.6L151.5 80h145l-19-28.4c-1.5-2.2-4-3.6-6.7-3.6H177.1c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80H368h48 8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8V432c0 44.2-35.8 80-80 80H112c-44.2 0-80-35.8-80-80V128H24c-13.3 0-24-10.7-24-24S10.7 80 24 80h8H80 93.8l36.7-55.1C140.9 9.4 158.4 0 177.1 0h93.7c18.7 0 36.2 9.4 46.6 24.9zM80 128V432c0 17.7 14.3 32 32 32H336c17.7 0 32-14.3 32-32V128H80zm80 64V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0V400c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],message:[512,512,[\"comment-alt\"],\"f27a\",\"M160 368c26.5 0 48 21.5 48 48v16l72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16V352c0 8.8 7.2 16 16 16h96zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3V474.7v-6.4V468v-4V416H112 64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0H448c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H309.3L208 492z\"],\"file-lines\":[384,512,[128441,128462,61686,\"file-alt\",\"file-text\"],\"f15c\",\"M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24H264c13.3 0 24-10.7 24-24s-10.7-24-24-24H120zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H264c13.3 0 24-10.7 24-24s-10.7-24-24-24H120z\"],\"calendar-days\":[448,512,[\"calendar-alt\"],\"f073\",\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192h80v56H48V192zm0 104h80v64H48V296zm128 0h96v64H176V296zm144 0h80v64H320V296zm80-48H320V192h80v56zm0 160v40c0 8.8-7.2 16-16 16H320V408h80zm-128 0v56H176V408h96zm-144 0v56H64c-8.8 0-16-7.2-16-16V408h80zM272 248H176V192h96v56z\"],\"hand-point-right\":[512,512,[],\"f0a4\",\"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"],\"face-smile-beam\":[512,512,[128522,\"smile-beam\"],\"f5b8\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\"face-grin-stars\":[512,512,[129321,\"grin-stars\"],\"f587\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z\"],\"address-book\":[512,512,[62138,\"contact-book\"],\"f2b9\",\"M384 48c8.8 0 16 7.2 16 16V448c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H384zM96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H208zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"],comments:[640,512,[128490,61670],\"f086\",\"M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.7 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z\"],paste:[512,512,[\"file-clipboard\"],\"f0ea\",\"M104.6 48H64C28.7 48 0 76.7 0 112V384c0 35.3 28.7 64 64 64h96V400H64c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H80c0 17.7 14.3 32 32 32h72.4C202 108.4 227.6 96 256 96h62c-7.1-27.6-32.2-48-62-48H215.4C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464H256c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16l140.1 0L464 243.9V448c0 8.8-7.2 16-16 16zM256 512H448c35.3 0 64-28.7 64-64V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64z\"],\"face-grin-tongue-squint\":[512,512,[128541,\"grin-tongue-squint\"],\"f58a\",\"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4V392.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V416c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416V378.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V416c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\"face-flushed\":[512,512,[128563,\"flushed\"],\"f579\",\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24H320c13.3 0 24-10.7 24-24s-10.7-24-24-24H192zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"],\"square-caret-right\":[448,512,[\"caret-square-right\"],\"f152\",\"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],\"square-minus\":[448,512,[61767,\"minus-square\"],\"f146\",\"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM152 232H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],compass:[512,512,[129517],\"f14e\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"square-caret-down\":[448,512,[\"caret-square-down\"],\"f150\",\"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\"face-kiss-beam\":[512,512,[128537,\"kiss-beam\"],\"f597\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],lightbulb:[384,512,[128161],\"f0eb\",\"M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7l0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5H109c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8l0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4l0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5H226.4c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8l0 0 0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80V416H272v16c0 44.2-35.8 80-80 80z\"],flag:[448,512,[127988,61725],\"f024\",\"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24V64 350.5 400v88c0 13.3 10.7 24 24 24s24-10.7 24-24V388l80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52V24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8V334.7l-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5v-237z\"],\"square-check\":[448,512,[9745,9989,61510,\"check-square\"],\"f14a\",\"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"circle-dot\":[512,512,[128280,\"dot-circle\"],\"f192\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\"face-dizzy\":[512,512,[\"dizzy\"],\"f567\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z\"],futbol:[512,512,[9917,\"futbol-ball\",\"soccer-ball\"],\"f1e3\",\"M435.4 361.3l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.1zM256 48l.9 0h-1.8l.9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.7 2-4 2.9l4-2.9zm75.2-226.6l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"],\"pen-to-square\":[512,512,[\"edit\"],\"f044\",\"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z\"],\"hourglass-half\":[384,512,[\"hourglass-2\"],\"f252\",\"M0 24C0 10.7 10.7 0 24 0H360c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8V67c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445v19h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V445c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67V48H24C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5H284.2c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67V48H80V67c0 22.1 7 43.4 19.8 61H284.2z\"],\"eye-slash\":[640,512,[],\"f070\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm51.3 163.3l-41.9-33C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5zm-88-69.3L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8z\"],hand:[512,512,[129306,9995,\"hand-paper\"],\"f256\",\"M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64V261.5l-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75H296h8c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5V160c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2V96c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1c0 0 0-.1 0-.1V64c0-8.8 7.2-16 16-16s16 7.2 16 16V95.9c0 0 0 .1 0 .1V232c0 13.3 10.7 24 24 24s24-10.7 24-24V96c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16v55.9c0 0 0 .1 0 .1v80c0 13.3 10.7 24 24 24s24-10.7 24-24V160.1c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16V332.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2H296h-8.5c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9V232c0 13.3 10.7 24 24 24s24-10.7 24-24V96.1z\"],\"hand-spock\":[576,512,[128406],\"f259\",\"M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512c-11.2 0-22.5 0-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8c11.2 0 22.5 0 33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z\"],\"face-kiss\":[512,512,[128535,\"kiss\"],\"f596\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"face-grin-tongue\":[512,512,[128539,\"grin-tongue\"],\"f589\",\"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4V363.6c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27V416c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416V378.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V416c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\"chess-bishop\":[320,512,[9821],\"f43a\",\"M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8V352H96V325c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3v27h48V338.7c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24H160 104zM52.7 464l16.6-32H250.8l16.6 32H52.7zm207.9-80H59.5c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512H279.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z\"],\"face-grin-wink\":[512,512,[\"grin-wink\"],\"f58c\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"],\"face-grin-wide\":[512,512,[128515,\"grin-alt\"],\"f581\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"],\"face-frown-open\":[512,512,[128550,\"frown-open\"],\"f57a\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"hand-point-up\":[384,512,[9757],\"f0a6\",\"M64 64V241.6c5.2-1 10.5-1.6 16-1.6H96V208 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0v24c0 66.3 53.7 120 120 120h48c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H120 80zM0 320s0 0 0 0c0-18 6-34.6 16-48V64C16 28.7 44.7 0 80 0s64 28.7 64 64v82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64v64 24c0 92.8-75.2 168-168 168H168C75.2 512 0 436.8 0 344V320zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16v48 16c0 8.8 7.2 16 16 16s16-7.2 16-16V256zM160 240c5.5 0 10.9 .7 16 2v-2V208c0-8.8-7.2-16-16-16s-16 7.2-16 16v32h16zm64 24v40c0 8.8 7.2 16 16 16s16-7.2 16-16V256 240c0-8.8-7.2-16-16-16s-16 7.2-16 16v24z\"],bookmark:[384,512,[128278,61591],\"f02e\",\"M0 48C0 21.5 21.5 0 48 0l0 48V441.4l130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4V48H48V0H336c26.5 0 48 21.5 48 48V488c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488V48z\"],\"hand-point-down\":[384,512,[],\"f0a7\",\"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"],folder:[512,512,[128193,128447,61716,\"folder-blank\"],\"f07b\",\"M0 96C0 60.7 28.7 32 64 32H196.1c19.1 0 37.4 7.6 50.9 21.1L289.9 96H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16H286.6c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7H64z\"],user:[448,512,[128100,62144],\"f007\",\"M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464H398.7c-8.9-63.3-63.3-112-129-112H178.3c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z\"],\"square-caret-left\":[448,512,[\"caret-square-left\"],\"f191\",\"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],star:[576,512,[11088,61446],\"f005\",\"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"],\"chess-knight\":[448,512,[9822],\"f441\",\"M226.6 48H117.3l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1H66.8c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0H226.6C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352H341.3l24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464H379.3l-16.6-32H85.2zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H56.8C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384h297c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z\"],\"face-laugh-squint\":[512,512,[\"laugh-squint\"],\"f59b\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\"face-laugh\":[512,512,[\"laugh\"],\"f599\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"folder-open\":[576,512,[128194,128449,61717],\"f07c\",\"M384 480h48c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224H144c-11.4 0-21.9 6-27.6 15.9L48 357.1V96c0-8.8 7.2-16 16-16H181.5c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8H416c8.8 0 16 7.2 16 16v32h48V160c0-35.3-28.7-64-64-64H298.5c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H87.7 384z\"],clipboard:[384,512,[128203],\"f328\",\"M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"chess-queen\":[512,512,[9819],\"f445\",\"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352H153l-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352h55.4l93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432H378.8l16.6 32H116.7l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3h-265c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8H407.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"],\"hand-back-fist\":[448,512,[\"hand-rock\"],\"f255\",\"M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16V264c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6V488c0 13.3 10.7 24 24 24s24-10.7 24-24V370.2c38-20.1 64-60.1 64-106.2V160c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64v64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6v12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3V488c0 13.3 10.7 24 24 24s24-10.7 24-24V359.9c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4V224.6c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6V208c0 8.8 7.2 16 16 16s16-7.2 16-16V142.3 128 64z\"],\"square-caret-up\":[448,512,[\"caret-square-up\"],\"f151\",\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\"chart-bar\":[512,512,[\"bar-chart\"],\"f080\",\"M24 32c13.3 0 24 10.7 24 24V408c0 13.3 10.7 24 24 24H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-39.8 0-72-32.2-72-72V56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96H424c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\"window-restore\":[512,512,[],\"f2d2\",\"M432 48H208c-17.7 0-32 14.3-32 32V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V336h16c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V256H48V448zM64 128H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64z\"],\"square-plus\":[448,512,[61846,\"plus-square\"],\"f0fe\",\"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],image:[512,512,[],\"f03e\",\"M448 80c8.8 0 16 7.2 16 16V415.8l-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3V96c0-8.8 7.2-16 16-16H448zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\"folder-closed\":[512,512,[],\"e185\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H289.9L247 53.1C233.5 39.6 215.2 32 196.1 32H64zM48 96c0-8.8 7.2-16 16-16H196.1c6.4 0 12.5 2.5 17 7l45.3 45.3c7.5 7.5 17.7 11.7 28.3 11.7H448c8.8 0 16 7.2 16 16v32H48V96zm0 144H464V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V240z\"],lemon:[448,512,[127819],\"f094\",\"M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"],handshake:[640,512,[],\"f2b5\",\"M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176H96V304c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128H544h40 40c8.8 0 16 7.2 16 16V352c0 17.7-14.3 32-32 32H576c-11.8 0-22.2-6.4-27.7-16H463.4c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384H32c-17.7 0-32-14.3-32-32V144c0-8.8 7.2-16 16-16H56 96h19.8c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64H259c4.4 0 8.9 .2 13.2 .6zM544 320V176H496c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1H544zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],gem:[512,512,[128142],\"f3a5\",\"M168.5 72L256 165l87.5-93h-175zM383.9 99.1L311.5 176h129L383.9 99.1zm50 124.9H256 78.1L256 420.3 433.9 224zM71.5 176h129L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"],\"circle-play\":[512,512,[61469,\"play-circle\"],\"f144\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9V168c0-8.7 4.7-16.7 12.3-20.9z\"],\"circle-check\":[512,512,[61533,\"check-circle\"],\"f058\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"],\"circle-stop\":[512,512,[62094,\"stop-circle\"],\"f28d\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"],\"id-badge\":[384,512,[],\"f2c1\",\"M256 48V64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H256zM0 64C0 28.7 28.7 0 64 0H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\"face-laugh-beam\":[512,512,[128513,\"laugh-beam\"],\"f59a\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],registered:[512,512,[174],\"f25d\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152V264v96c0 13.3 10.7 24 24 24s24-10.7 24-24V288h60.9l37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80H184c-13.3 0-24 10.7-24 24zm48 88V176h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H208z\"],\"address-card\":[576,512,[62140,\"contact-card\",\"vcard\"],\"f2bb\",\"M512 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H512zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H304c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H176zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376z\"],\"face-tired\":[512,512,[128555,\"tired\"],\"f5c8\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\"font-awesome\":[448,512,[62501,62694,\"font-awesome-flag\",\"font-awesome-logo-full\"],\"f2b4\",\"M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56V456c0 13.3 10.7 24 24 24s24-10.7 24-24V124.2l12.5-2.4c16.7-3.2 31.5-8.5 44.2-13.1l0 0 0 0c3.7-1.3 7.1-2.6 10.4-3.7c15.2-5.2 30.4-9.1 51.2-9.1c25.6 0 43 6 63.5 13.3l.5 .2c20.9 7.4 44.8 15.9 79.1 15.9c32.4 0 53.7-6.8 90.5-19.6V342.9l-9.5 3.3c-41.5 14.4-55.2 19.2-81 19.2c-25.7 0-43.1-6-63.6-13.3l-.6-.2c-20.8-7.4-44.8-15.8-79-15.8c-16.8 0-31 2-43.9 5c-12.9 3-20.9 16-17.9 28.9s16 20.9 28.9 17.9c9.6-2.2 20.1-3.7 32.9-3.7c25.6 0 43 6 63.5 13.3l.5 .2c20.9 7.4 44.8 15.9 79.1 15.9c34.4 0 56.4-7.7 97.8-22.2c7.5-2.6 15.5-5.4 24.4-8.5l16.2-5.5V360 72 38.4L416.2 49.3c-9.7 3.3-18.2 6.3-25.7 8.9c-41.5 14.4-55.2 19.2-81 19.2c-25.7 0-43.1-6-63.6-13.3l-.6-.2c-20.8-7.4-44.8-15.8-79-15.8c-27.8 0-48.5 5.5-66.6 11.6c-4.9 1.7-9.3 3.3-13.6 4.8c-11.9 4.3-22 7.9-34.7 10.3L48 75.4V56z\"],\"face-smile-wink\":[512,512,[128521,\"smile-wink\"],\"f4da\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"],\"file-word\":[384,512,[],\"f1c2\",\"M48 448V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z\"],\"file-powerpoint\":[384,512,[],\"f1c4\",\"M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm72 208c-13.3 0-24 10.7-24 24V336v56c0 13.3 10.7 24 24 24s24-10.7 24-24V360h44c42 0 76-34 76-76s-34-76-76-76H136zm68 104H160V256h44c15.5 0 28 12.5 28 28s-12.5 28-28 28z\"],\"envelope-open\":[512,512,[62135],\"f2b6\",\"M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5v13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1V200.5c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2V456c0 4.4-3.6 8-8 8H56c-4.4 0-8-3.6-8-8V276.2zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5V456c0 30.9 25.1 56 56 56H456c30.9 0 56-25.1 56-56V200.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z\"],\"file-zipper\":[384,512,[\"file-archive\"],\"f1c6\",\"M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16h48v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm48 112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8H136.6c-14.5 0-27.2 9.7-30.9 23.8zM128 336h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H128c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],square:[448,512,[9632,9723,9724,61590],\"f0c8\",\"M384 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H384zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],snowflake:[448,512,[10052,10054],\"f2dc\",\"M224 0c13.3 0 24 10.7 24 24V70.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57v76.5l66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6v76.5l57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V441.9l-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V297.6l-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4V137.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V24c0-13.3 10.7-24 24-24z\"],newspaper:[512,512,[128240],\"f1ea\",\"M168 80c-13.3 0-24 10.7-24 24V408c0 8.4-1.4 16.5-4.1 24H440c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H168zM72 480c-39.8 0-72-32.2-72-72V112C0 98.7 10.7 88 24 88s24 10.7 24 24V408c0 13.3 10.7 24 24 24s24-10.7 24-24V104c0-39.8 32.2-72 72-72H440c39.8 0 72 32.2 72 72V408c0 39.8-32.2 72-72 72H72zM176 136c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24v80c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V136zm200-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H376c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H376c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80H408c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\"face-kiss-wink-heart\":[512,512,[128536,\"kiss-wink-heart\"],\"f598\",\"M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9l0 0 0 0 0 0 .2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1 0 0 0 0 0 0 0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7l0 0 0 0 0 0 .2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1 0 0 0 0 0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"],\"star-half-stroke\":[576,512,[\"star-half-alt\"],\"f5c0\",\"M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7V79.1l52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z\"],\"file-excel\":[384,512,[],\"f1c3\",\"M48 448V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z\"],\"face-grin-beam\":[512,512,[128516,\"grin-beam\"],\"f582\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\"object-ungroup\":[640,512,[],\"f248\",\"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5c0-.1 0-.1 0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3V228.7C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40H324.7c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3V123.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40H123.3C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3V228.7c-16 6.5-28.9 19.3-35.3 35.3H123.3c-6.5-16-19.3-28.9-35.3-35.3V123.3c16-6.5 28.9-19.3 35.3-35.3H324.7zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40h45.4c6.5 16 19.3 28.9 35.3 35.3V388.7c-16 6.5-28.9 19.3-35.3 35.3H315.3c-6.5-16-19.3-28.9-35.3-35.3V352H232v36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40H516.7c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3V283.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40H448v16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8c0-8.8 7.2-16 16-16c7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7c0 8.8-7.2 16-16 16c-.9 0-1.9-.1-2.8-.2z\"],\"circle-right\":[512,512,[61838,\"arrow-alt-circle-right\"],\"f35a\",\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1c-4.2-4.5-10.1-7.1-16.3-7.1C266 128 256 138 256 150.3V208H160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32h96v57.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.3-7.1l99.9-107.1c3.5-3.8 5.5-8.7 5.5-13.8s-2-10.1-5.5-13.8L294.6 135.1z\"],\"face-rolling-eyes\":[512,512,[128580,\"meh-rolling-eyes\"],\"f5a5\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24H320c13.3 0 24-10.7 24-24s-10.7-24-24-24H192c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\"object-group\":[576,512,[],\"f247\",\"M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16H460.2c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8V396.2c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16H115.8c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8V115.8zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3V386.7c13.6 4.8 24.4 15.6 29.3 29.3H450.7c4.8-13.6 15.6-24.4 29.3-29.3V125.3c-13.6-4.8-24.4-15.6-29.3-29.3H125.3zm2.7 64c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"],heart:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],\"f004\",\"M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8v-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5v3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20c0 0-.1-.1-.1-.1c0 0 0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5v3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2v-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z\"],\"face-surprise\":[512,512,[128558,\"surprise\"],\"f5c2\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\"circle-pause\":[512,512,[62092,\"pause-circle\"],\"f28b\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72V328c0 13.3-10.7 24-24 24s-24-10.7-24-24V184c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0V328c0 13.3-10.7 24-24 24s-24-10.7-24-24V184c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],circle:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],\"f111\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"],\"circle-up\":[512,512,[61467,\"arrow-alt-circle-up\"],\"f35b\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4c-4.5 4.2-7.1 10.1-7.1 16.3c0 12.3 10 22.3 22.3 22.3H208v96c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256h57.7c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.1-16.3L269.8 117.5c-3.8-3.5-8.7-5.5-13.8-5.5s-10.1 2-13.8 5.5L135.1 217.4z\"],\"file-audio\":[384,512,[],\"f1c7\",\"M64 464H320c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM192 272V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376H112c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h17.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z\"],\"file-image\":[384,512,[128443],\"f1c5\",\"M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2h48 32 40 72c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z\"],\"circle-question\":[512,512,[62108,\"question-circle\"],\"f059\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"face-meh-blank\":[512,512,[128566,\"meh-blank\"],\"f5a4\",\"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],eye:[576,512,[128065],\"f06e\",\"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"],\"face-sad-cry\":[512,512,[128557,\"sad-cry\"],\"f5b3\",\"M400 406.1V288c0-13.3-10.7-24-24-24s-24 10.7-24 24V440.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4V288c0-13.3-10.7-24-24-24s-24 10.7-24 24V406.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320v32c0 26.5 21.5 48 48 48s48-21.5 48-48V320c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\"file-code\":[384,512,[],\"f1c9\",\"M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16H224v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z\"],\"window-maximize\":[512,512,[128470],\"f2d0\",\"M.3 89.5C.1 91.6 0 93.8 0 96V224 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64V224 96c0-35.3-28.7-64-64-64H64c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224H464l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z\"],\"face-frown\":[512,512,[9785,\"frown\"],\"f119\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"floppy-disk\":[448,512,[128190,128426,\"save\"],\"f0c7\",\"M48 96V416c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V170.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H309.5c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8V184c0 13.3-10.7 24-24 24H104c-13.3 0-24-10.7-24-24V80H64c-8.8 0-16 7.2-16 16zm80-16v80H272V80H128zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\"comment-dots\":[512,512,[128172,62075,\"commenting\"],\"f4ad\",\"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"face-grin-squint\":[512,512,[128518,\"grin-squint\"],\"f585\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\"hand-pointer\":[448,512,[],\"f25a\",\"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16V200c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16V392c0 39.8-32.2 72-72 72H272 212.3h-.9c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23V320 64zM176 0c-35.3 0-64 28.7-64 64V261.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2h.9H272h56c66.3 0 120-53.7 120-120V288l0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5V64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"],\"hand-scissors\":[512,512,[],\"f257\",\"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"],\"face-grin-tears\":[640,512,[128514,\"grin-tears\"],\"f588\",\"M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0zm160 0l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0z\"],\"calendar-xmark\":[448,512,[\"calendar-times\"],\"f273\",\"M128 0c13.3 0 24 10.7 24 24V64H296V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192 144 128C0 92.7 28.7 64 64 64h40V24c0-13.3 10.7-24 24-24zM400 192H48V448c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V192zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"file-video\":[384,512,[],\"f1c8\",\"M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM80 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v16l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V288z\"],\"file-pdf\":[512,512,[],\"f1c1\",\"M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"],comment:[512,512,[128489,61669],\"f075\",\"M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9c.1-.2 .2-.3 .3-.5z\"],envelope:[512,512,[128386,9993,61443],\"f0e0\",\"M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"],hourglass:[384,512,[9203,62032,\"hourglass-empty\"],\"f254\",\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V67c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445v19H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V445c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM192 289.9l81.5 81.5C293 391 304 417.4 304 445v19H80V445c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67V48H304V67c0 27.6-11 54-30.5 73.5L192 222.1z\"],\"calendar-check\":[448,512,[],\"f274\",\"M128 0c13.3 0 24 10.7 24 24V64H296V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192 144 128C0 92.7 28.7 64 64 64h40V24c0-13.3 10.7-24 24-24zM400 192H48V448c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V192zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"hard-drive\":[512,512,[128436,\"hdd\"],\"f0a0\",\"M64 80c-8.8 0-16 7.2-16 16V258c5.1-1.3 10.5-2 16-2H448c5.5 0 10.9 .7 16 2V96c0-8.8-7.2-16-16-16H64zM48 320v96c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V320c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM0 320V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V320v96c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"face-grin-squint-tears\":[512,512,[129315,\"grin-squint-tears\"],\"f586\",\"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z\"],\"rectangle-list\":[576,512,[\"list-alt\"],\"f022\",\"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H512c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24H448c13.3 0 24 10.7 24 24s-10.7 24-24 24H224c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"calendar-plus\":[448,512,[],\"f271\",\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192zm176 40c-13.3 0-24 10.7-24 24v48H152c-13.3 0-24 10.7-24 24s10.7 24 24 24h48v48c0 13.3 10.7 24 24 24s24-10.7 24-24V352h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H248V256c0-13.3-10.7-24-24-24z\"],\"circle-left\":[512,512,[61840,\"arrow-alt-circle-left\"],\"f359\",\"M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9c4.2 4.5 10.1 7.1 16.3 7.1c12.3 0 22.3-10 22.3-22.3V304h96c17.7 0 32-14.3 32-32V240c0-17.7-14.3-32-32-32H256V150.3c0-12.3-10-22.3-22.3-22.3c-6.2 0-12.1 2.6-16.3 7.1L117.5 242.2c-3.5 3.8-5.5 8.7-5.5 13.8s2 10.1 5.5 13.8l99.9 107.1z\"],\"money-bill-1\":[576,512,[\"money-bill-alt\"],\"f3d1\",\"M112 112c0 35.3-28.7 64-64 64V336c35.3 0 64 28.7 64 64H464c0-35.3 28.7-64 64-64V176c-35.3 0-64-28.7-64-64H112zM0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16v64h-8c-8.8 0-16 7.2-16 16s7.2 16 16 16h24 24c8.8 0 16-7.2 16-16s-7.2-16-16-16h-8V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16z\"],clock:[512,512,[128339,\"clock-four\"],\"f017\",\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],keyboard:[576,512,[9e3],\"f11c\",\"M64 112c-8.8 0-16 7.2-16 16V384c0 8.8 7.2 16 16 16H512c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H64zM0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM176 320H400c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H200c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H280c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H280c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H360c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H360c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H440c-8.8 0-16-7.2-16-16V248zm16-96h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H440c-8.8 0-16-7.2-16-16V168c0-8.8 7.2-16 16-16z\"],\"closed-captioning\":[576,512,[],\"f20a\",\"M512 80c8.8 0 16 7.2 16 16V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16H512zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"],images:[576,512,[],\"f302\",\"M160 80H512c8.8 0 16 7.2 16 16V320c0 8.8-7.2 16-16 16H490.8L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336H160c-8.8 0-16-7.2-16-16V96c0-8.8 7.2-16 16-16zM96 96V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"face-grin\":[512,512,[128512,\"grin\"],\"f580\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"face-meh\":[512,512,[128528,\"meh\"],\"f11a\",\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"],\"id-card\":[576,512,[62147,\"drivers-license\"],\"f2c2\",\"M528 160V416c0 8.8-7.2 16-16 16H320c0-44.2-35.8-80-80-80H176c-44.2 0-80 35.8-80 80H64c-8.8 0-16-7.2-16-16V160H528zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H376z\"],sun:[512,512,[9728],\"f185\",\"M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\"face-laugh-wink\":[512,512,[\"laugh-wink\"],\"f59c\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9H364.5c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"],\"circle-down\":[512,512,[61466,\"arrow-alt-circle-down\"],\"f358\",\"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6c4.5-4.2 7.1-10.1 7.1-16.3c0-12.3-10-22.3-22.3-22.3H304V160c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32v96H150.3C138 256 128 266 128 278.3c0 6.2 2.6 12.1 7.1 16.3l107.1 99.9c3.8 3.5 8.7 5.5 13.8 5.5s10.1-2 13.8-5.5l107.1-99.9z\"],\"thumbs-down\":[512,512,[128078,61576],\"f165\",\"M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16H286.5c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8H384c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H32z\"],\"chess-pawn\":[320,512,[9823],\"f443\",\"M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120H243.4l10.7 80H205.7L195 272H160 125l-10.7 80H65.9l10.7-80H64c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464H267.3l-16.6-32H69.2L52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H40.8C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384h201z\"],\"credit-card\":[576,512,[128179,62083,\"credit-card-alt\"],\"f09d\",\"M512 80c8.8 0 16 7.2 16 16v32H48V96c0-8.8 7.2-16 16-16H512zm16 144V416c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V224H528zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H120zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24H248z\"],bell:[448,512,[128276,61602],\"f0f3\",\"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416H424c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112v25.4c0 47.9 13.9 94.6 39.7 134.6H72.3C98.1 328 112 281.3 112 233.4V208c0-61.9 50.1-112 112-112zm64 352H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"],file:[384,512,[128196,128459,61462],\"f15b\",\"M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64z\"],hospital:[640,512,[127973,62589,\"hospital-alt\",\"hospital-wide\"],\"f0f8\",\"M232 0c-39.8 0-72 32.2-72 72v8H72C32.2 80 0 112.2 0 152V440c0 39.8 32.2 72 72 72h.2 .2 .2 .2 .2H73h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H75h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H77h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2H79h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H82h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H85h.2 .2 .2 .2H86h.2 .2 .2 .2H87h.2 .2 .2 .2H88h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2H98h.2 .2 .2 .2H99h.2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2v0H456h8v0H568c39.8 0 72-32.2 72-72V152c0-39.8-32.2-72-72-72H480V72c0-39.8-32.2-72-72-72H232zM480 128h88c13.3 0 24 10.7 24 24v40H536c-13.3 0-24 10.7-24 24s10.7 24 24 24h56v48H536c-13.3 0-24 10.7-24 24s10.7 24 24 24h56V440c0 13.3-10.7 24-24 24H480V336 128zM72 128h88V464h-.1-.2-.2-.2H159h-.2-.2-.2H158h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H154h-.2-.2-.2H153h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H150h-.2-.2-.2H149h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H146h-.2-.2-.2H145h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H142h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H139h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H136h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H133h-.2-.2-.2-.2-.2-.2-.2-.2H131h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H128h-.2-.2-.2-.2-.2-.2-.2-.2H126h-.2-.2-.2-.2-.2-.2-.2-.2H124h-.2-.2-.2-.2-.2-.2-.2-.2H122h-.2-.2-.2-.2-.2-.2-.2-.2H120h-.2-.2-.2-.2-.2-.2-.2-.2H118h-.2-.2-.2-.2-.2-.2-.2-.2H116h-.2-.2-.2-.2-.2-.2-.2-.2H114h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H111h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H108h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H105h-.2-.2-.2-.2H104h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H100h-.2-.2-.2-.2H99h-.2-.2-.2-.2H98h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H88h-.2-.2-.2-.2H87h-.2-.2-.2-.2H86h-.2-.2-.2-.2H85h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H82h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H79h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H77h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H75h-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2H73h-.2-.2-.2-.2-.2H72c-13.2 0-24-10.7-24-24V336h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H48V240h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H48V152c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24H408c13.3 0 24 10.7 24 24V336 464H368V400c0-26.5-21.5-48-48-48s-48 21.5-48 48v64H208V72zm88 24v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V168h24c8.8 0 16-7.2 16-16V136c0-8.8-7.2-16-16-16H344V96c0-8.8-7.2-16-16-16H312c-8.8 0-16 7.2-16 16z\"],\"chess-rook\":[448,512,[9820],\"f447\",\"M80 80V192c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352H85.2l9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192V72c0-22.1 17.9-40 40-40H376c22.1 0 40 17.9 40 40V192c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85H314.5l-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4V80H304v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V80H192v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V80H80zm4.7 384H363.3l-16.6-32H101.2L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8H72.8C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384h265zM208 288c-8.8 0-16-7.2-16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 8.8-7.2 16-16 16H208z\"],\"star-half\":[576,512,[61731],\"f089\",\"M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4V408.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4V128.4z\"],\"chess-king\":[448,512,[9818],\"f43f\",\"M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V56H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v40H59.6C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352h52.3L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6H224 388.4c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352h52.3l54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6H248V104h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H248V24zM101.2 432H346.8l16.6 32H84.7l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3H91.5c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512H375.2c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"],\"circle-user\":[512,512,[62142,\"user-circle\"],\"f2bd\",\"M406.5 399.6C387.4 352.9 341.5 320 288 320H224c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3h64c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"],copy:[448,512,[],\"f0c5\",\"M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z\"],\"share-from-square\":[576,512,[61509,\"share-square\"],\"f14d\",\"M400 255.4V240 208c0-8.8-7.2-16-16-16H352 336 289.5c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112h48 16 32c8.8 0 16-7.2 16-16V80 64.6L506 160 400 255.4zM336 240h16v48c0 17.7 14.3 32 32 32h3.7c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7V80H336 304 288c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4h2.5c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5l0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5H304h32zM72 32C32.2 32 0 64.2 0 104V440c0 39.8 32.2 72 72 72H408c39.8 0 72-32.2 72-72V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V104c0-13.3 10.7-24 24-24h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H72z\"],copyright:[512,512,[169],\"f1f9\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z\"],map:[576,512,[128506,62072],\"f279\",\"M565.6 36.2C572.1 40.7 576 48.1 576 56V392c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456V120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5V421.2l120-45.7V90.8L48 136.5zM360 422.7V137.3l-144-48V374.7l144 48zm48-1.5l120-45.7V90.8L408 136.5V421.2z\"],\"bell-slash\":[640,512,[128277,61943],\"f1f6\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM224 150.3C243.6 117.7 279.3 96 320 96c61.9 0 112 50.1 112 112v25.4c0 32.7 6.4 64.8 18.7 94.5L224 150.3zM406.2 416l-60.9-48H168.3c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1v11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6H406.2zM384 448H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"],\"hand-lizard\":[512,512,[],\"f258\",\"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24H240c35.3 0 64 28.7 64 64s-28.7 64-64 64H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H288c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4v24c0 13.3-10.7 24-24 24s-24-10.7-24-24V413.3L281.1 384H136c-39.8 0-72-32.2-72-72s32.2-72 72-72H240c8.8 0 16-7.2 16-16s-7.2-16-16-16H72c-39.8 0-72-32.2-72-72S32.2 64 72 64H281.6c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7V424c0 13.3-10.7 24-24 24s-24-10.7-24-24V316.1c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9H72z\"],\"face-smile\":[512,512,[128578,\"smile\"],\"f118\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"hand-peace\":[512,512,[9996],\"f25b\",\"M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320v0 24c0 92.8 75.2 168 168 168h48c92.8 0 168-75.2 168-168V272 256 224c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192v48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2h-7.4l-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240H144c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16v32 16c0 8.8-7.2 16-16 16s-16-7.2-16-16V192zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2v10c0 66.3-53.7 120-120 120H232c-66.3 0-120-53.7-120-120l0-24 0 0c0-17.7 14.3-32 32-32h80c8.8 0 16 7.2 16 16s-7.2 16-16 16H184c-13.3 0-24 10.7-24 24s10.7 24 24 24h40c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16V240 224c0-8.8 7.2-16 16-16s16 7.2 16 16v32 16z\"],\"face-grin-hearts\":[512,512,[128525,\"grin-hearts\"],\"f584\",\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"],building:[384,512,[127970,61687],\"f1ad\",\"M64 48c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16h80V400c0-26.5 21.5-48 48-48s48 21.5 48 48v64h80c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H64zM0 64C0 28.7 28.7 0 64 0H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm88 40c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H104c-8.8 0-16-7.2-16-16V104zM232 88h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H232c-8.8 0-16-7.2-16-16V104c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H104c-8.8 0-16-7.2-16-16V232zm144-16h48c8.8 0 16 7.2 16 16v48c0 8.8-7.2 16-16 16H232c-8.8 0-16-7.2-16-16V232c0-8.8 7.2-16 16-16z\"],\"face-grin-beam-sweat\":[512,512,[128517,\"grin-beam-sweat\"],\"f583\",\"M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"],moon:[384,512,[127769,9214],\"f186\",\"M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0c-.1 0-.2 0-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z\"],calendar:[448,512,[128197,128198],\"f133\",\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z\"],\"face-grin-tongue-wink\":[512,512,[128540,\"grin-tongue-wink\"],\"f58b\",\"M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4V363.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1V416c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64V378.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6V416z\"],clone:[512,512,[],\"f24d\",\"M64 464H288c8.8 0 16-7.2 16-16V384h48v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h64v48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16zM224 304H448c8.8 0 16-7.2 16-16V64c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16V288c0 8.8 7.2 16 16 16zm-64-16V64c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64z\"],\"face-angry\":[512,512,[128544,\"angry\"],\"f556\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\"rectangle-xmark\":[512,512,[62164,\"rectangle-times\",\"times-rectangle\",\"window-close\"],\"f410\",\"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V96c0-8.8-7.2-16-16-16H64zM0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\"paper-plane\":[512,512,[61913],\"f1d8\",\"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"],\"life-ring\":[512,512,[],\"f1cd\",\"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\"face-grimace\":[512,512,[128556,\"grimace\"],\"f57f\",\"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h8V320h-8zm40 48h32V320H208v48zm96 0V320H272v48h32zm32 0h8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v48zM168 288H344c30.9 0 56 25.1 56 56s-25.1 56-56 56H168c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"calendar-minus\":[448,512,[],\"f272\",\"M128 0c13.3 0 24 10.7 24 24V64H296V24c0-13.3 10.7-24 24-24s24 10.7 24 24V64h40c35.3 0 64 28.7 64 64v16 48V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192 144 128C0 92.7 28.7 64 64 64h40V24c0-13.3 10.7-24 24-24zM400 192H48V448c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16V192zM296 352H152c-13.3 0-24-10.7-24-24s10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\"circle-xmark\":[512,512,[61532,\"times-circle\",\"xmark-circle\"],\"f057\",\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"],\"thumbs-up\":[512,512,[128077,61575],\"f164\",\"M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16H286.5c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8H384c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H32z\"],\"window-minimize\":[512,512,[128469],\"f2d1\",\"M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"],\"square-full\":[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],\"f45c\",\"M464 48V464H48V48H464zM48 0H0V48 464v48H48 464h48V464 48 0H464 48z\"],\"note-sticky\":[448,512,[62026,\"sticky-note\"],\"f249\",\"M64 80c-8.8 0-16 7.2-16 16V416c0 8.8 7.2 16 16 16H288V352c0-17.7 14.3-32 32-32h80V96c0-8.8-7.2-16-16-16H64zM288 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V320v5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7H288z\"],\"face-sad-tear\":[512,512,[128546,\"sad-tear\"],\"f5b4\",\"M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"hand-point-left\":[512,512,[],\"f0a5\",\"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"]};!function(c){try{for(var l=arguments.length,s=new Array(1<l?l-1:0),a=1;a<l;a++)s[a-1]=arguments[a];c.apply(void 0,s)}catch(c){if(!h)throw c}}(function(){d(\"far\",p),d(\"fa-regular\",p)})}(),function(){\"use strict\";var c={},l={};try{\"undefined\"!=typeof window&&(c=window),\"undefined\"!=typeof document&&(l=document)}catch(c){}var s=(c.navigator||{}).userAgent,a=void 0===s?\"\":s,z=c,e=l;z.document,e.documentElement&&e.head&&\"function\"==typeof e.addEventListener&&e.createElement,~a.indexOf(\"MSIE\")||a.indexOf(\"Trident/\");function H(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function t(l){for(var c=1;c<arguments.length;c++){var s=null!=arguments[c]?arguments[c]:{};c%2?H(Object(s),!0).forEach(function(c){V(l,c,s[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(s)):H(Object(s)).forEach(function(c){Object.defineProperty(l,c,Object.getOwnPropertyDescriptor(s,c))})}return l}function V(c,l,s){return l in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s,c}function r(c,l){(null==l||l>c.length)&&(l=c.length);for(var s=0,a=new Array(l);s<l;s++)a[s]=c[s];return a}var M=\"___FONT_AWESOME___\",h=function(){try{return!0}catch(c){return!1}}(),n=\"classic\",i=\"sharp\",m=[n,i];function o(c){return new Proxy(c,{get:function(c,l){return l in c?c[l]:c[n]}})}o((V(C={},n,{fa:\"solid\",fas:\"solid\",\"fa-solid\":\"solid\",far:\"regular\",\"fa-regular\":\"regular\",fal:\"light\",\"fa-light\":\"light\",fat:\"thin\",\"fa-thin\":\"thin\",fad:\"duotone\",\"fa-duotone\":\"duotone\",fab:\"brands\",\"fa-brands\":\"brands\",fak:\"kit\",fakd:\"kit\",\"fa-kit\":\"kit\",\"fa-kit-duotone\":\"kit\"}),V(C,i,{fa:\"solid\",fass:\"solid\",\"fa-solid\":\"solid\",fasr:\"regular\",\"fa-regular\":\"regular\",fasl:\"light\",\"fa-light\":\"light\",fast:\"thin\",\"fa-thin\":\"thin\"}),C));var f=o((V(v={},n,{solid:\"fas\",regular:\"far\",light:\"fal\",thin:\"fat\",duotone:\"fad\",brands:\"fab\",kit:\"fak\"}),V(v,i,{solid:\"fass\",regular:\"fasr\",light:\"fasl\",thin:\"fast\"}),v)),e=(o((V(s={},n,{fab:\"fa-brands\",fad:\"fa-duotone\",fak:\"fa-kit\",fal:\"fa-light\",far:\"fa-regular\",fas:\"fa-solid\",fat:\"fa-thin\"}),V(s,i,{fass:\"fa-solid\",fasr:\"fa-regular\",fasl:\"fa-light\",fast:\"fa-thin\"}),s)),o((V(c={},n,{\"fa-brands\":\"fab\",\"fa-duotone\":\"fad\",\"fa-kit\":\"fak\",\"fa-light\":\"fal\",\"fa-regular\":\"far\",\"fa-solid\":\"fas\",\"fa-thin\":\"fat\"}),V(c,i,{\"fa-solid\":\"fass\",\"fa-regular\":\"fasr\",\"fa-light\":\"fasl\",\"fa-thin\":\"fast\"}),c)),o((V(l={},n,{900:\"fas\",400:\"far\",normal:\"far\",300:\"fal\",100:\"fat\"}),V(l,i,{900:\"fass\",400:\"fasr\",300:\"fasl\",100:\"fast\"}),l)),[1,2,3,4,5,6,7,8,9,10]),a=e.concat([11,12,13,14,15,16,17,18,19,20]),C=\"duotone-group\",v=\"swap-opacity\",s=\"primary\",c=\"secondary\",l=new Set;Object.keys(f[n]).map(l.add.bind(l)),Object.keys(f[i]).map(l.add.bind(l));[].concat(m,function(c){if(Array.isArray(c))return r(c)}(l=l)||function(c){if(\"undefined\"!=typeof Symbol&&null!=c[Symbol.iterator]||null!=c[\"@@iterator\"])return Array.from(c)}(l)||function(c,l){if(c){if(\"string\"==typeof c)return r(c,l);var s=Object.prototype.toString.call(c).slice(8,-1);return\"Map\"===(s=\"Object\"===s&&c.constructor?c.constructor.name:s)||\"Set\"===s?Array.from(c):\"Arguments\"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?r(c,l):void 0}}(l)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}(),[\"2xs\",\"xs\",\"sm\",\"lg\",\"xl\",\"2xl\",\"beat\",\"border\",\"fade\",\"beat-fade\",\"bounce\",\"flip-both\",\"flip-horizontal\",\"flip-vertical\",\"flip\",\"fw\",\"inverse\",\"layers-counter\",\"layers-text\",\"layers\",\"li\",\"pull-left\",\"pull-right\",\"pulse\",\"rotate-180\",\"rotate-270\",\"rotate-90\",\"rotate-by\",\"shake\",\"spin-pulse\",\"spin-reverse\",\"spin\",\"stack-1x\",\"stack-2x\",\"stack\",\"ul\",C,v,s,c]).concat(e.map(function(c){return\"\".concat(c,\"x\")})).concat(a.map(function(c){return\"w-\".concat(c)}));z=z||{};z[M]||(z[M]={}),z[M].styles||(z[M].styles={}),z[M].hooks||(z[M].hooks={}),z[M].shims||(z[M].shims=[]);var L=z[M];function u(a){return Object.keys(a).reduce(function(c,l){var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function d(c,l,s){var a=(2<arguments.length&&void 0!==s?s:{}).skipHooks,s=void 0!==a&&a,a=u(l);\"function\"!=typeof L.hooks.addPack||s?L.styles[c]=t(t({},L.styles[c]||{}),a):L.hooks.addPack(c,u(l)),\"fas\"===c&&d(\"fa\",l)}var p={0:[320,512,[],\"30\",\"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z\"],1:[256,512,[],\"31\",\"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z\"],2:[320,512,[],\"32\",\"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"],3:[320,512,[],\"33\",\"M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z\"],4:[384,512,[],\"34\",\"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z\"],5:[320,512,[],\"35\",\"M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"],6:[320,512,[],\"36\",\"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z\"],7:[320,512,[],\"37\",\"M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z\"],8:[320,512,[],\"38\",\"M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"],9:[320,512,[],\"39\",\"M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"],\"fill-drip\":[576,512,[],\"f576\",\"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"],\"arrows-to-circle\":[640,512,[],\"e4bd\",\"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V320v0c0 0 0-.1 0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4c0 0 .1 0 .1 0h0 96c17.7 0 32 14.3 32 32s-14.3 32-32 32H525.3z\"],\"circle-chevron-right\":[512,512,[\"chevron-circle-right\"],\"f138\",\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"],at:[512,512,[61946],\"40\",\"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256v32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32v80 32c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\"trash-can\":[448,512,[61460,\"trash-alt\"],\"f2ed\",\"M135.2 17.7C140.6 6.8 151.7 0 163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm96 64c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"],\"text-height\":[576,512,[],\"f034\",\"M64 128V96h64l0 320H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H192l0-320h64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H160 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V352H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H512V160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"],\"user-xmark\":[640,512,[\"user-times\"],\"f235\",\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],stethoscope:[576,512,[129658],\"f0f1\",\"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1V192c0 53 43 96 96 96s96-43 96-96V71.1l-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1V192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112V265.3c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V336c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192V71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],message:[512,512,[\"comment-alt\"],\"f27a\",\"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64h96v80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64z\"],info:[192,512,[],\"f129\",\"M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32V448h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64V256H32c-17.7 0-32-14.3-32-32z\"],\"down-left-and-up-right-to-center\":[512,512,[\"compress-alt\"],\"f422\",\"M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H296c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272H216c13.3 0 24 10.7 24 24V440c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z\"],explosion:[576,512,[],\"e4e9\",\"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87H378.5c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64H117.8L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448v0H512v0h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H64zM288 0c13.3 0 24 10.7 24 24V72c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24z\"],\"file-lines\":[384,512,[128441,128462,61686,\"file-alt\",\"file-text\"],\"f15c\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"wave-square\":[640,512,[],\"f83e\",\"M128 64c0-17.7 14.3-32 32-32H320c17.7 0 32 14.3 32 32V416h96V256c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H512V448c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V96H192V256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V64z\"],ring:[512,512,[],\"f70b\",\"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8v96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304V208z\"],\"building-un\":[384,512,[],\"e4d9\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM237.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V80c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\"dice-three\":[448,512,[9858],\"f527\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"calendar-days\":[448,512,[\"calendar-alt\"],\"f073\",\"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm128 0v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H336zM64 400v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H208zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V400c0-8.8-7.2-16-16-16H336c-8.8 0-16 7.2-16 16z\"],\"anchor-circle-check\":[640,512,[],\"e4aa\",\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"building-circle-arrow-right\":[640,512,[],\"e4d1\",\"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V232.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352H432c-8.8 0-16 7.2-16 16s7.2 16 16 16h89.4l-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"],volleyball:[512,512,[127952,\"volleyball-ball\"],\"f45f\",\"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"],\"arrows-up-to-line\":[576,512,[],\"e4c2\",\"M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"],\"sort-down\":[320,512,[\"sort-desc\"],\"f0dd\",\"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"],\"circle-minus\":[512,512,[\"minus-circle\"],\"f056\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\"door-open\":[576,512,[],\"f52b\",\"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 288h32V480 32zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128h96V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H512V128c0-35.3-28.7-64-64-64H352v64z\"],\"right-from-bracket\":[512,512,[\"sign-out-alt\"],\"f2f5\",\"M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"],atom:[512,512,[9883],\"f5d2\",\"M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],soap:[512,512,[129532],\"e06e\",\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96H160c-53 0-96-43-96-96s43-96 96-96h88.4c-15.2-17-24.4-39.4-24.4-64H96c-53 0-96 43-96 96V416c0 53 43 96 96 96H416c53 0 96-43 96-96V288c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64H352c35.3 0 64-28.7 64-64s-28.7-64-64-64H320 160z\"],icons:[512,512,[\"heart-music-camera-bolt\"],\"f86d\",\"M500.3 7.3C507.7 13.3 512 22.4 512 32V176c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V71L352 90.2V208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48V64c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2h61.7c10.7 0 20.7 5.3 26.6 14.2L213.3 304H240c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V352c0-26.5 21.5-48 48-48H74.7zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368H496c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400H336c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"],\"microphone-lines-slash\":[640,512,[\"microphone-alt-slash\"],\"f539\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8V256H358.9l-34.5-27c2.9-3.1 7-5 11.6-5h80V192H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H336c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zM358.2 378.2C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9z\"],\"bridge-circle-check\":[640,512,[],\"e4c9\",\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"pump-medical\":[448,512,[],\"e06a\",\"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM216 280v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V360H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V280c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],fingerprint:[512,512,[],\"f577\",\"M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1v40c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128v24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7V256c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256v24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8V256c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96v24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7V256c0-28.7 23.3-52 52-52s52 23.3 52 52v24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1V256c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24v24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9V256z\"],\"hand-point-right\":[512,512,[],\"f0a4\",\"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"],\"magnifying-glass-location\":[512,512,[\"search-location\"],\"f689\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"forward-step\":[320,512,[\"step-forward\"],\"f051\",\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241V96c0-17.7 14.3-32 32-32s32 14.3 32 32V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V271l-11.5 9.6-192 160z\"],\"face-smile-beam\":[512,512,[128522,\"smile-beam\"],\"f5b8\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\"flag-checkered\":[448,512,[127937],\"f11e\",\"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1V345.8c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V400 334 64 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9v65.5L64 252.6V318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3V238.7l38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9v66.7l-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8v71.4c21.8 1.9 43.3 6.7 64 14.4V244.2l22.7 6.7c13.5 4 27.3 6.4 41.3 7.4V194c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12v-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8v72.4c-13-.4-26 .8-38.7 3.6L128 173.2V98L64 114v73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2V251.9l-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5v77.4zm64-149.4V115.4c-20.9 6.1-42.4 9.1-64 9.1V194c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"],football:[512,512,[127944,\"football-ball\"],\"f44e\",\"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6c-18.3 29.8-30.9 62.3-39.2 95.4L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"],\"school-circle-exclamation\":[640,512,[],\"e56c\",\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],crop:[512,512,[],\"f125\",\"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64v64l178.7 0L128 338.7V32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H173.3L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-274.7z\"],\"angles-down\":[448,512,[\"angle-double-down\"],\"f103\",\"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"],\"users-rectangle\":[640,512,[],\"e594\",\"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H544c53 0 96-43 96-96V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3C119.9 256 96 279.9 96 309.3zM461.2 336h56.1c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"],\"people-roof\":[640,512,[],\"e537\",\"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5V480c0 17.7-14.3 32-32 32H120c-17.7 0-32-14.3-32-32V441.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3h19.5c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6h19.5c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5V480c0 17.7-14.3 32-32 32H472c-17.7 0-32-14.3-32-32V441.5l-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5V400c0 17.7-14.3 32-32 32H296c-17.7 0-32-14.3-32-32V345.5l-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"],\"people-line\":[640,512,[],\"e534\",\"M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5V272c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V217.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5V352c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V313.5z\"],\"beer-mug-empty\":[512,512,[\"beer\"],\"f0fc\",\"M32 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V96h51.2c42.4 0 76.8 34.4 76.8 76.8V274.9c0 30.4-17.9 57.9-45.6 70.2L384 381.7V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7V172.8c0-7.1-5.7-12.8-12.8-12.8H384V311.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V368c0 8.8 7.2 16 16 16s16-7.2 16-16V144z\"],\"diagram-predecessor\":[512,512,[],\"e477\",\"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"],\"arrow-up-long\":[384,512,[\"long-arrow-up\"],\"f176\",\"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"],\"fire-flame-simple\":[384,512,[\"burn\"],\"f46a\",\"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"],person:[320,512,[129485,\"male\"],\"f183\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z\"],laptop:[640,512,[128187],\"f109\",\"M128 32C92.7 32 64 60.7 64 96V352h64V96H512V352h64V96c0-35.3-28.7-64-64-64H128zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480H563.2c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2H19.2z\"],\"file-csv\":[512,512,[],\"f6dd\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V304H176c-35.3 0-64 28.7-64 64V512H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM200 352h16c22.1 0 40 17.9 40 40v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8v-8c0-8.8 7.2-16 16-16s16 7.2 16 16v8c0 22.1-17.9 40-40 40H200c-22.1 0-40-17.9-40-40V392c0-22.1 17.9-40 40-40zm133.1 0H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H333.1c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1H304c-8.8 0-16-7.2-16-16s7.2-16 16-16h42.9c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16v31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66V368c0-8.8 7.2-16 16-16s16 7.2 16 16v31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6V368c0-8.8 7.2-16 16-16z\"],menorah:[640,512,[],\"f676\",\"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32S0 81.7 0 64V62.8c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V64c0 17.7-14.3 32-32 32s-32-14.3-32-32V62.8c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32V288c0 17.7 14.3 32 32 32H288V160c0-17.7 14.3-32 32-32s32 14.3 32 32V320H544c17.7 0 32-14.3 32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 53-43 96-96 96H352v64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V384H96c-53 0-96-43-96-96V160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H96V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H192V256 160c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32v96 32H384V256 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96 32H480V256 160c0-17.7 14.3-32 32-32z\"],\"truck-plane\":[640,512,[],\"e58f\",\"M200 0c-30.6 0-56 54.7-56 86.1V192.5L7.8 274.3C2.9 277.2 0 282.4 0 288v64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37v81.2l-50 40c-3.8 3-6 7.6-6 12.5v32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15V463.4c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1V408 325.5 184l0-1.1 0 0V86.1C256 54.7 231.5 0 200 0zm88 176V400c0 20.9 13.4 38.7 32 45.3V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V448H544v40c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V445.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7H539.7c9.2 0 17.2 6 20.5 14.7L576 304H352l15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"record-vinyl\":[512,512,[],\"f8d9\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"face-grin-stars\":[512,512,[129321,\"grin-stars\"],\"f587\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"],bong:[448,512,[],\"f55c\",\"M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7H302.9c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8V64H160V208.5zM288 64V208.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5H76.1c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14V64C78.3 64 64 49.7 64 32S78.3 0 96 0h16H272h16c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"],\"spaghetti-monster-flying\":[640,512,[\"pastafarianism\"],\"f67b\",\"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1l0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\"arrow-down-up-across-line\":[576,512,[],\"e4af\",\"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V288H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H448V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3V224H192 128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192h64V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192zM448 320H384V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320z\"],spoon:[512,512,[129348,61873,\"utensil-spoon\"],\"f2e5\",\"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"],\"jar-wheat\":[320,512,[],\"e517\",\"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm112 0H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320H144h32 21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7zM112 352H69.8c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416H144v32c0 8.8 7.2 16 16 16s16-7.2 16-16V416h21.8c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8H208c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"],\"envelopes-bulk\":[640,512,[\"mail-bulk\"],\"f674\",\"M128 0C110.3 0 96 14.3 96 32V224h96V192c0-35.3 28.7-64 64-64H480V32c0-17.7-14.3-32-32-32H128zM256 160c-17.7 0-32 14.3-32 32v32h96c35.3 0 64 28.7 64 64V416H576c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H256zm240 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32v13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301V288c0-17.7-14.3-32-32-32H64zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8V480c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V340.8z\"],\"file-circle-exclamation\":[576,512,[],\"e4eb\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\"circle-h\":[512,512,[9405,\"hospital-symbol\"],\"f47e\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H192l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H320V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],pager:[512,512,[128223],\"f815\",\"M0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zm64 32v64c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H80zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c13.3 0 24-10.7 24-24s-10.7-24-24-24H216z\"],\"address-book\":[512,512,[62138,\"contact-book\"],\"f2b9\",\"M96 0C60.7 0 32 28.7 32 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zM208 288h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zM496 192c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V208c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V336z\"],strikethrough:[512,512,[],\"f0cc\",\"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H270.1c-.1 0-.3-.1-.4-.1l-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3l0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6l0 0 .2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1H335.1c7 5.6 11.4 11.2 13.9 17.2z\"],k:[320,512,[107],\"4b\",\"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249V64c0-17.7-14.3-32-32-32S0 46.3 0 64V328 448c0 17.7 14.3 32 32 32s32-14.3 32-32V341l64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"],\"landmark-flag\":[512,512,[],\"e51c\",\"M272 0h80c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H272v32H464c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H240V16c0-8.8 7.2-16 16-16h16zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"],pencil:[512,512,[9999,61504,\"pencil-alt\"],\"f303\",\"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],backward:[512,512,[9194],\"f04a\",\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3V256v41.7L459.5 440.6zM256 352V256 128 96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V352z\"],\"caret-right\":[256,512,[],\"f0da\",\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"],comments:[640,512,[128490,61670],\"f086\",\"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"],paste:[512,512,[\"file-clipboard\"],\"f0ea\",\"M160 0c-23.7 0-44.4 12.9-55.4 32H48C21.5 32 0 53.5 0 80V400c0 26.5 21.5 48 48 48H192V176c0-44.2 35.8-80 80-80h48V80c0-26.5-21.5-48-48-48H215.4C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48V448v16c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V243.9c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1H320 272zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"code-pull-request\":[512,512,[],\"e13c\",\"M305.8 2.1C314.4 5.9 320 14.5 320 24V64h16c70.7 0 128 57.3 128 128V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-35.3-28.7-64-64-64H320v40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"clipboard-list\":[384,512,[],\"f46d\",\"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16z\"],\"truck-ramp-box\":[640,512,[\"truck-loading\"],\"f4de\",\"M640 0V400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8V64c0-35.3 28.7-64 64-64H640zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"],\"user-check\":[640,512,[],\"f4fc\",\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"vial-virus\":[512,512,[],\"e597\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V384c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5V96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 96 32zM96 192V96h64v96H96zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"sheet-plastic\":[384,512,[],\"e571\",\"M0 448c0 35.3 28.7 64 64 64H224V384c0-17.7 14.3-32 32-32H384V64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384H256V512L384 384z\"],blog:[512,512,[],\"f781\",\"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144V368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144H128v96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48V144z\"],\"user-ninja\":[448,512,[129399],\"f504\",\"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H160z\"],\"person-arrow-up-from-line\":[640,512,[],\"e539\",\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32V141.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"],\"scroll-torah\":[640,512,[\"torah\"],\"f6a0\",\"M96 480V32C96 14.3 74.5 0 48 0S0 14.3 0 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32H128V480H512V32zM592 0c-26.5 0-48 14.3-48 32V480c0 17.7 21.5 32 48 32s48-14.3 48-32V32c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3H271l31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180h56.7c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3H369l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332H214.3c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332H298.8L320 368.4zM254.5 256l30.3 52h70.4l30.3-52-30.3-52H284.8l-30.3 52zm144.9 23.8L383 308h32.8l-16.4-28.2zM415.8 204H383l16.4 28.2L415.8 204zM320 143.6L298.8 180h42.4L320 143.6zM224.2 204l16.4 28.2L257 204H224.2zM257 308l-16.4-28.2L224.2 308H257z\"],\"broom-ball\":[576,512,[\"quidditch\",\"quidditch-broom-ball\"],\"f458\",\"M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H364.3L256 211.7V182.6c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\"toggle-off\":[576,512,[],\"f204\",\"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128H192c-70.7 0-128-57.3-128-128s57.3-128 128-128H384zM576 256c0-106-86-192-192-192H192C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\"box-archive\":[512,512,[\"archive\"],\"f187\",\"M32 32H480c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H32C14.3 128 0 113.7 0 96V64C0 46.3 14.3 32 32 32zm0 128H480V416c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V160zm128 80c0 8.8 7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"],\"person-drowning\":[576,512,[],\"e545\",\"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32V96.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3V64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"],\"arrow-down-9-1\":[576,512,[\"sort-numeric-desc\",\"sort-numeric-down-alt\"],\"f886\",\"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V416H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V320c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"],\"face-grin-tongue-squint\":[512,512,[128541,\"grin-tongue-squint\"],\"f58a\",\"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\"spray-can\":[512,512,[],\"f5bd\",\"M128 0h64c17.7 0 32 14.3 32 32v96H96V32c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96H224c53 0 96 43 96 96V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"truck-monster\":[640,512,[],\"f63b\",\"M288 64v64H416L368 64H288zM419.2 25.6L496 128h80c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64H288c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H224V48c0-26.5 21.5-48 48-48h96c20.1 0 39.1 9.5 51.2 25.6zM152 256h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512H152c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6h16c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8v16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512H472c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392V376c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],w:[576,512,[119],\"57\",\"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"],\"earth-africa\":[512,512,[127757,\"globe-africa\"],\"f57c\",\"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9v41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32v28c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16v48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4V318.6c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"],rainbow:[640,512,[127752],\"f75b\",\"M320 96C178.6 96 64 210.6 64 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C0 175.3 143.3 32 320 32s320 143.3 320 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-70.7 57.3-128 128-128s128 57.3 128 128v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-35.3-28.7-64-64-64zM160 352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-123.7 100.3-224 224-224s224 100.3 224 224v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"],\"circle-notch\":[512,512,[],\"f1ce\",\"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"],\"tablet-screen-button\":[448,512,[\"tablet-alt\"],\"f3fa\",\"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64H64V384H384V64z\"],paw:[512,512,[],\"f1b0\",\"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5v1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3v-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"],cloud:[640,512,[9729],\"f0c2\",\"M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"],\"trowel-bricks\":[512,512,[],\"e58a\",\"M240.8 4.8C250.3 10.6 256 20.9 256 32v72h89c3.6-13.8 16.1-24 31-24h88c26.5 0 48 21.5 48 48s-21.5 48-48 48H376c-14.9 0-27.4-10.2-31-24H256v72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H320c-17.7 0-32-14.3-32-32V256zM32 384h96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32zm192 0H480c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32z\"],\"face-flushed\":[512,512,[128563,\"flushed\"],\"f579\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16s-7.2-16-16-16H192c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"hospital-user\":[576,512,[],\"f80d\",\"M48 0C21.5 0 0 21.5 0 48V256H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v64H144c8.8 0 16 7.2 16 16s-7.2 16-16 16H0v80c0 26.5 21.5 48 48 48H265.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM152 64h16c8.8 0 16 7.2 16 16v24h24c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H184v24c0 8.8-7.2 16-16 16H152c-8.8 0-16-7.2-16-16V152H112c-8.8 0-16-7.2-16-16V120c0-8.8 7.2-16 16-16h24V80c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9H541.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H381.1c-51.4 0-93.1 41.7-93.1 93.1z\"],\"tent-arrow-left-right\":[576,512,[],\"e57f\",\"M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H240h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H464h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],gavel:[512,512,[\"legal\"],\"f0e3\",\"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"],binoculars:[512,512,[],\"f1e5\",\"M128 32h32c17.7 0 32 14.3 32 32V96H96V64c0-17.7 14.3-32 32-32zm64 96V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V388.9c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28H192zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3V448c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V128h99.8zM320 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V96H320V64zm-32 64V288H224V128h64z\"],\"microphone-slash\":[640,512,[],\"f131\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 21.2-5.1 41.1-14.2 58.7L416 300.8V96c0-53-43-96-96-96s-96 43-96 96v54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128v-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6v40c0 89.1 66.2 162.7 152 174.4V464H248c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"],\"box-tissue\":[512,512,[],\"e05b\",\"M92.5 0H208c40 0 52 24 64 48s24 48 64 48h85.2C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288H128l-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64H80c-8.8 0-16 7.2-16 16s7.2 16 16 16h48H384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H418.5l25.6-64H464c26.5 0 48 21.5 48 48V384H0V272c0-26.5 21.5-48 48-48H79zM0 416H512v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V416z\"],motorcycle:[640,512,[127949],\"f21c\",\"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h57.7l16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7H64c-17.7 0-32 14.3-32 32v32h96c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32h70.4c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128H480c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H459.6c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21H280zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40h66.4C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104H187.3zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"bell-concierge\":[512,512,[128718,\"concierge-bell\"],\"f562\",\"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24h16v33.3C119.6 157.2 32 252.4 32 368H480c0-115.6-87.6-210.8-200-222.7V112h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H256 216zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H24z\"],\"pen-ruler\":[512,512,[\"pencil-ruler\"],\"f5ae\",\"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"],\"people-arrows\":[640,512,[\"people-arrows-left-right\"],\"e068\",\"M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160h44.8c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2V464c0 26.5-21.5 48-48 48H112c-26.5 0-48-21.5-48-48V348.3c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1h44.8c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6V464c0 26.5-21.5 48-48 48H496c-26.5 0-48-21.5-48-48V391.2l47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240v32h96V240c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V336H272v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"],\"mars-and-venus-burst\":[640,512,[],\"e523\",\"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59 146.6 136 158.2V408H352c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v32c0 13.3 10.7 24 24 24s24-10.7 24-24V456h24c13.3 0 24-10.7 24-24s-10.7-24-24-24H424V382.2c77-11.6 136-78 136-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H504zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"],\"square-caret-right\":[448,512,[\"caret-square-right\"],\"f152\",\"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],scissors:[512,512,[9984,9986,9988,\"cut\"],\"f0c4\",\"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"sun-plant-wilt\":[640,512,[],\"e57a\",\"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32v53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6V176c0-44.2-35.8-80-80-80s-80 35.8-80 80v22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80v21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6V272c0-17.7 14.3-32 32-32s32 14.3 32 32v8V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H504V280v-8V176z\"],\"toilets-portable\":[576,512,[],\"e584\",\"M32 0H224c17.7 0 32 14.3 32 32V64H0V32C0 14.3 14.3 0 32 0zM0 96H24 232h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H48v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM192 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16zM352 0H544c17.7 0 32 14.3 32 32V64H320V32c0-17.7 14.3-32 32-32zM320 96h24H552h24v24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H368v8c0 13.3-10.7 24-24 24s-24-10.7-24-24V120 96zM512 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V240c0-8.8-7.2-16-16-16z\"],\"hockey-puck\":[512,512,[],\"f453\",\"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6V352c0 53-114.6 96-256 96S0 405 0 352V222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"],table:[512,512,[],\"f0ce\",\"M64 256V160H224v96H64zm0 64H224v96H64V320zm224 96V320H448v96H288zM448 256H288V160H448v96zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],\"magnifying-glass-arrow-right\":[512,512,[],\"e521\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31H120c-13.3 0-24 10.7-24 24s10.7 24 24 24H238.1l-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"],\"tachograph-digital\":[640,512,[\"digital-tachograph\"],\"f566\",\"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm32 64H320c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16H560c8.8 0 16 7.2 16 16s-7.2 16-16 16H400c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\"users-slash\":[640,512,[],\"e073\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320H618.7c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192H106.7zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H485.3c10.5 0 19.5-6 23.9-14.8L324.9 352H261.3zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z\"],clover:[448,512,[],\"e139\",\"M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3v4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4H61.3C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368h4.9c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34v4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3v-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4h4.9c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3h-4.9c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34V93.3C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z\"],reply:[512,512,[61714,\"mail-reply\"],\"f3e5\",\"M205 34.8c11.5 5.1 19 16.6 19 29.2v64H336c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96H224v64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"],\"star-and-crescent\":[512,512,[9770],\"f699\",\"M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"],\"house-fire\":[640,512,[],\"e50c\",\"M288 350.1l0 1.9H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\"square-minus\":[448,512,[61767,\"minus-square\"],\"f146\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 200H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],helicopter:[640,512,[128641],\"f533\",\"M128 32c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H384v64h32c88.4 0 160 71.6 160 160v64c0 17.7-14.3 32-32 32H384 320c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64H48c10.1 0 19.6 4.7 25.6 12.8L112 128H320V64H160c-17.7 0-32-14.3-32-32zM384 320H512V288c0-53-43-96-96-96H384V320zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H536.2c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"],compass:[512,512,[129517],\"f14e\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"square-caret-down\":[448,512,[\"caret-square-down\"],\"f150\",\"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\"file-circle-question\":[576,512,[],\"e4ef\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"],\"laptop-code\":[640,512,[],\"f5fc\",\"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],swatchbook:[512,512,[],\"f5c3\",\"M0 32C0 14.3 14.3 0 32 0H160c17.7 0 32 14.3 32 32V416c0 53-43 96-96 96s-96-43-96-96V32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9V154l75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192H480c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H182.8zM128 64H64v64h64V64zM64 192v64h64V192H64zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"prescription-bottle\":[384,512,[],\"f485\",\"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V416H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V320H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V224H144c8.8 0 16-7.2 16-16s-7.2-16-16-16H32V128z\"],bars:[448,512,[\"navicon\"],\"f0c9\",\"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\"people-group\":[640,512,[],\"e533\",\"M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z\"],\"hourglass-end\":[384,512,[8987,\"hourglass-3\"],\"f253\",\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"],\"heart-crack\":[512,512,[128148,\"heart-broken\"],\"f7a9\",\"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1v5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141z\"],\"square-up-right\":[448,512,[8599,\"external-link-square-alt\"],\"f360\",\"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM320 313.4V176c0-8.8-7.2-16-16-16H166.6c-12.5 0-22.6 10.1-22.6 22.6c0 6 2.4 11.8 6.6 16L184 232l-66.3 66.3C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7L248 296l33.4 33.4c4.2 4.2 10 6.6 16 6.6c12.5 0 22.6-10.1 22.6-22.6z\"],\"face-kiss-beam\":[512,512,[128537,\"kiss-beam\"],\"f597\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],film:[512,512,[127902],\"f008\",\"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM48 368v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H416zM48 240v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H416zM48 112v32c0 8.8 7.2 16 16 16H96c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H64c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H416zM160 128v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V320c0-17.7-14.3-32-32-32H192z\"],\"ruler-horizontal\":[640,512,[],\"f547\",\"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"],\"people-robbery\":[576,512,[],\"e536\",\"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V174.3c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64v96l0 .6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352H88V480c0 17.7 14.3 32 32 32s32-14.3 32-32V252.7l13 20.5c5.9 9.2 16.1 14.9 27 14.9h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H209.6l-37.4-58.9C157.6 142 132.1 128 104.7 128H72z\"],lightbulb:[384,512,[128161],\"f0eb\",\"M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"],\"caret-left\":[256,512,[],\"f0d9\",\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"],\"circle-exclamation\":[512,512,[\"exclamation-circle\"],\"f06a\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"school-circle-xmark\":[640,512,[],\"e56d\",\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"],\"arrow-right-from-bracket\":[512,512,[\"sign-out\"],\"f08b\",\"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"],\"circle-chevron-down\":[512,512,[\"chevron-circle-down\"],\"f13a\",\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"],\"unlock-keyhole\":[448,512,[\"unlock-alt\"],\"f13e\",\"M224 64c-44.2 0-80 35.8-80 80v48H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80V144C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h64z\"],\"cloud-showers-heavy\":[512,512,[],\"f740\",\"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"],\"headphones-simple\":[512,512,[\"headphones-alt\"],\"f58f\",\"M256 80C141.1 80 48 173.1 48 288V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288C0 146.6 114.6 32 256 32s256 114.6 256 256V392c0 13.3-10.7 24-24 24s-24-10.7-24-24V288c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64h16c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V352zm288-64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h16z\"],sitemap:[576,512,[],\"f0e8\",\"M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z\"],\"circle-dollar-to-slot\":[512,512,[\"donate\"],\"f4b9\",\"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3c-.3-.1-.5-.2-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 84c-11 0-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104c0-11-9-20-20-20zM48 352H64c19.5 25.9 44 47.7 72.2 64H64v32H256 448V416H375.8c28.2-16.3 52.8-38.1 72.2-64h16c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V400c0-26.5 21.5-48 48-48z\"],memory:[576,512,[],\"f538\",\"M64 64C28.7 64 0 92.7 0 128v7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6V320H576V248.6c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3V128c0-35.3-28.7-64-64-64H64zM576 352H0v64c0 17.7 14.3 32 32 32H80V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h96V416c0-8.8 7.2-16 16-16s16 7.2 16 16v32h48c17.7 0 32-14.3 32-32V352zM192 160v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\"road-spikes\":[640,512,[],\"e568\",\"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256V116.8c0-15.8 20.5-22 29.3-8.9L320 256V116.8c0-15.8 20.5-22 29.3-8.9L448 256V116.8c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7H512 448 384 320 256 192 64V116.8zM32 384H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"fire-burner\":[640,512,[],\"e4f1\",\"M320 352c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C464.5 108 480 160.2 480 192c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32H96c17.7 0 32 14.3 32 32s-14.3 32-32 32v64H544V320c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32V288zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],flag:[448,512,[127988,61725],\"f024\",\"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32V64 368 480c0 17.7 14.3 32 32 32s32-14.3 32-32V352l64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30V66.1c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48V32z\"],hanukiah:[640,512,[128334],\"f6e6\",\"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16v96 16h32V272 176c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32V320H96c-17.7 0-32-14.3-32-32V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 53 43 96 96 96H288v64H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H320 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H544c53 0 96-43 96-96V192c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H352V144z\"],feather:[512,512,[129718],\"f52d\",\"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"],\"volume-low\":[448,512,[128264,\"volume-down\"],\"f027\",\"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"],\"comment-slash\":[640,512,[],\"f4b3\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z\"],\"cloud-sun-rain\":[640,512,[127782],\"f743\",\"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"],compress:[448,512,[],\"f066\",\"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V64zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V64zM320 320c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"],\"wheat-awn\":[512,512,[\"wheat-alt\"],\"e2cd\",\"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"],ankh:[320,512,[9765],\"f644\",\"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96V480c0 17.7 14.3 32 32 32s32-14.3 32-32V320h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H241.2c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"],\"hands-holding-child\":[640,512,[],\"e4fa\",\"M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35h-7.6l-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"],asterisk:[384,512,[10033,61545],\"2a\",\"M192 32c17.7 0 32 14.3 32 32V199.5l111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V312.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5V64c0-17.7 14.3-32 32-32z\"],\"square-check\":[448,512,[9745,9989,61510,\"check-square\"],\"f14a\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"peseta-sign\":[384,512,[],\"e221\",\"M64 32C46.3 32 32 46.3 32 64v96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96V448c0 17.7 14.3 32 32 32s32-14.3 32-32V352h96c77.4 0 142-55 156.8-128H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-3.2C334 87 269.4 32 192 32H64zM282.5 160H96V96h96c41.8 0 77.4 26.7 90.5 64zM96 224H282.5c-13.2 37.3-48.7 64-90.5 64H96V224z\"],heading:[448,512,[\"header\"],\"f1dc\",\"M0 64C0 46.3 14.3 32 32 32H80h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H112V208H336V96H320c-17.7 0-32-14.3-32-32s14.3-32 32-32h48 48c17.7 0 32 14.3 32 32s-14.3 32-32 32H400V240 416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H368 320c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112V416h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V240 96H32C14.3 96 0 81.7 0 64z\"],ghost:[384,512,[128123],\"f6e2\",\"M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2V192C0 86 86 0 192 0S384 86 384 192V462.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],list:[512,512,[\"list-squares\"],\"f03a\",\"M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z\"],\"square-phone-flip\":[448,512,[\"phone-square-alt\"],\"f87b\",\"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"],\"cart-plus\":[576,512,[],\"f217\",\"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20h44v44c0 11 9 20 20 20s20-9 20-20V180h44c11 0 20-9 20-20s-9-20-20-20H356V96c0-11-9-20-20-20s-20 9-20 20v44H272c-11 0-20 9-20 20z\"],gamepad:[640,512,[],\"f11b\",\"M192 64C86 64 0 150 0 256S86 448 192 448H448c106 0 192-86 192-192s-86-192-192-192H192zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24v32h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V200z\"],\"circle-dot\":[512,512,[128280,\"dot-circle\"],\"f192\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\"face-dizzy\":[512,512,[\"dizzy\"],\"f567\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"],egg:[384,512,[129370],\"f7fb\",\"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"],\"house-medical-circle-xmark\":[640,512,[],\"e513\",\"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"],campground:[576,512,[9978],\"f6bb\",\"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4V464c0 26.5 21.5 48 48 48H288 528c26.5 0 48-21.5 48-48V440.4c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448H168.5L288 291.7 407.5 448H288z\"],\"folder-plus\":[512,512,[],\"f65e\",\"M512 416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24V312h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H280V200c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H168c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"],futbol:[512,512,[9917,\"futbol-ball\",\"soccer-ball\"],\"f1e3\",\"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6h59.2c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"],paintbrush:[576,512,[128396,\"paint-brush\"],\"f1fc\",\"M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H208c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"],lock:[448,512,[128274],\"f023\",\"M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z\"],\"gas-pump\":[512,512,[9981],\"f52f\",\"M32 64C32 28.7 60.7 0 96 0H256c35.3 0 64 28.7 64 64V256h8c48.6 0 88 39.4 88 88v32c0 13.3 10.7 24 24 24s24-10.7 24-24V222c-27.6-7.1-48-32.2-48-62V96L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3V168v24 32V376c0 39.8-32.2 72-72 72s-72-32.2-72-72V344c0-22.1-17.9-40-40-40h-8V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64zM96 80v96c0 8.8 7.2 16 16 16H240c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16z\"],\"hot-tub-person\":[512,512,[\"hot-tub\"],\"f593\",\"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2V24zM0 320v16V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H277.3c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96v64zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm112 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24v5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5V200c0 13.3 10.7 24 24 24s24-10.7 24-24V186.8c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2V24c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z\"],\"map-location\":[576,512,[\"map-marked\"],\"f59f\",\"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3V152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6V503zM15.1 187.3C6 191 0 199.8 0 209.6V480.4c0 17 17.1 28.6 32.9 22.3L160 451.8V200.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77V449.4l192 54.9V255z\"],\"house-flood-water\":[576,512,[],\"e50e\",\"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192h16v73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2H464c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"],tree:[448,512,[127794],\"f1bb\",\"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208H104L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320H80L5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5H192v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448H424.5c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320h33.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208h24.9c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"],\"bridge-lock\":[640,512,[],\"e4cc\",\"M32 64c0-17.7 14.3-32 32-32H576c17.7 0 32 14.3 32 32s-14.3 32-32 32H536v64h-8c-61.9 0-112 50.1-112 112v24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V384c0-53-43-96-96-96V160h72V96H64C46.3 96 32 81.7 32 64zM408 96v64h80V96H408zm-48 64V96H280v64h80zM152 96v64h80V96H152zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\"sack-dollar\":[512,512,[128176],\"f81d\",\"M320 96H192L144.6 24.9C137.5 14.2 145.1 0 157.9 0H354.1c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128H320c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96H96c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4l0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V424c0 11 9 20 20 20s20-9 20-20V410.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l0 0-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V216z\"],\"pen-to-square\":[512,512,[\"edit\"],\"f044\",\"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160V416c0 53 43 96 96 96H352c53 0 96-43 96-96V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H96z\"],\"car-side\":[640,512,[128663],\"f5e4\",\"M171.3 96H224v96H111.3l30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192V96h81.2c9.7 0 18.9 4.4 25 12l67.2 84H272zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36H171.3c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256V368c0 17.7 14.3 32 32 32H65.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H385.3c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80H608c17.7 0 32-14.3 32-32V320c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"share-nodes\":[448,512,[\"share-alt\"],\"f1e0\",\"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"],\"heart-circle-minus\":[576,512,[],\"e4ff\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"],\"hourglass-half\":[384,512,[\"hourglass-2\"],\"f252\",\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM96 75V64H288V75c0 19-5.6 37.4-16 53H112c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9H112z\"],microscope:[512,512,[128300],\"f610\",\"M160 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32zM32 448H320c70.7 0 128-57.3 128-128s-57.3-128-128-128V128c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],sink:[512,512,[],\"e06d\",\"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96V288H160V264c0-30.9-25.1-56-56-56H56c-13.3 0-24 10.7-24 24s10.7 24 24 24h48c4.4 0 8 3.6 8 8v24H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H256 480c17.7 0 32-14.3 32-32s-14.3-32-32-32H400V264c0-4.4 3.6-8 8-8h56c13.3 0 24-10.7 24-24s-10.7-24-24-24H408c-30.9 0-56 25.1-56 56v24H288V96zM480 416V384H32v32c0 53 43 96 96 96H384c53 0 96-43 96-96z\"],\"bag-shopping\":[448,512,[\"shopping-bag\"],\"f290\",\"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64v48H160V112zm-48 48H48c-26.5 0-48 21.5-48 48V416c0 53 43 96 96 96H352c53 0 96-43 96-96V208c0-26.5-21.5-48-48-48H336V112C336 50.1 285.9 0 224 0S112 50.1 112 112v48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"arrow-down-z-a\":[576,512,[\"sort-alpha-desc\",\"sort-alpha-down-alt\"],\"f881\",\"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96H352c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400h40.4L416 359.6 395.8 400z\"],mitten:[448,512,[],\"f7b5\",\"M352 384H64L5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0h3.4c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192h2.8c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V448z\"],\"person-rays\":[512,512,[],\"e54d\",\"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9l-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H248zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"],users:[640,512,[],\"f0c0\",\"M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z\"],\"eye-slash\":[640,512,[],\"f070\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"],\"flask-vial\":[640,512,[],\"e4f3\",\"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96V64C14.3 64 0 49.7 0 32S14.3 0 32 0H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V309.9l-49 79.6zM96 64v96h64V64H96zM352 0H480h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V214.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4H261.4c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9V64c-17.7 0-32-14.3-32-32s14.3-32 32-32h32zm32 64V224c0 5.9-1.6 11.7-4.7 16.8L330.5 320h171l-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8V64H384z\"],hand:[512,512,[129306,9995,\"hand-paper\"],\"f256\",\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32z\"],om:[512,512,[128329],\"f679\",\"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1 0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48H109.8c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9H144h16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64h22.6c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9l0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96V288c0-53-43-96-96-96h-5.5c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4H245.2c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z\"],worm:[512,512,[],\"e599\",\"M256 96c0-53 43-96 96-96h38.4C439.9 0 480 40.1 480 89.6V176v16V376c0 75.1-60.9 136-136 136s-136-60.9-136-136V296c0-22.1-17.9-40-40-40s-40 17.9-40 40V464c0 26.5-21.5 48-48 48s-48-21.5-48-48V296c0-75.1 60.9-136 136-136s136 60.9 136 136v80c0 22.1 17.9 40 40 40s40-17.9 40-40V192H352c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\"house-circle-xmark\":[640,512,[],\"e50b\",\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],plug:[384,512,[128268],\"f1e6\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8C297 398 352 333.4 352 256V224c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\"chevron-up\":[512,512,[],\"f077\",\"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"],\"hand-spock\":[576,512,[128406],\"f259\",\"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64h10.9 8.2c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"],stopwatch:[448,512,[9201],\"f2f2\",\"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H224 176zm72 192V320c0 13.3-10.7 24-24 24s-24-10.7-24-24V192c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\"face-kiss\":[512,512,[128535,\"kiss\"],\"f596\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"bridge-circle-xmark\":[640,512,[],\"e4cb\",\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\"face-grin-tongue\":[512,512,[128539,\"grin-tongue\"],\"f589\",\"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448V400.7c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6V448c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448V402.6c0-14.7-11.9-26.6-26.6-26.6h-2c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9h-2c-14.7 0-26.6 11.9-26.6 26.6V448c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\"chess-bishop\":[320,512,[9821],\"f43a\",\"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7V400H256V372.7c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32H128zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512H297.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432H48z\"],\"face-grin-wink\":[512,512,[\"grin-wink\"],\"f58c\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"ear-deaf\":[512,512,[\"deaf\",\"deafness\",\"hard-of-hearing\"],\"f2a4\",\"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7V400c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48v-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"],\"road-circle-check\":[640,512,[],\"e564\",\"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\"dice-five\":[448,512,[9860],\"f523\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"square-rss\":[448,512,[\"rss-square\"],\"f143\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"land-mine-on\":[640,512,[],\"e51b\",\"M344 24V168c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32v32H192V320zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5H482.3c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512H115.8c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"],\"i-cursor\":[256,512,[],\"f246\",\"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3V224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H96v95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40.1 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V128.3c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"],stamp:[512,512,[],\"f5bf\",\"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2H112C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V413.3c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112H366.2c-29.9 0-54.2-24.3-54.2-54.2zM416 416v32H96V416H416z\"],stairs:[576,512,[],\"e289\",\"M384 64c0-17.7 14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v96c0 17.7-14.3 32-32 32H320v96c0 17.7-14.3 32-32 32H192v96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h96V320c0-17.7 14.3-32 32-32h96V192c0-17.7 14.3-32 32-32h96V64z\"],i:[320,512,[105],\"49\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96h96V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V96h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160 32z\"],\"hryvnia-sign\":[384,512,[8372,\"hryvnia\"],\"f6f2\",\"M121.9 116.2C138.3 103.1 158.7 96 179.6 96H223c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H155.5l-50.6 28.9c-1.7 1-3.4 2-5.1 3.1H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H52.3c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113h43.4c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2H161c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H228.5l50.6-28.9c1.7-1 3.4-2 5.1-3.1H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H331.7c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113H179.6c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"],pills:[576,512,[],\"f484\",\"M112 96c-26.5 0-48 21.5-48 48V256h96V144c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112V368c0 61.9-50.1 112-112 112S0 429.9 0 368V144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"],\"face-grin-wide\":[512,512,[128515,\"grin-alt\"],\"f581\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"],tooth:[448,512,[129463],\"f5c9\",\"M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5v6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5v-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"],v:[384,512,[118],\"56\",\"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"],\"bangladeshi-taka-sign\":[384,512,[],\"e2e6\",\"M36 32.2C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8V160H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V384c0 53 43 96 96 96h32c106 0 192-86 192-192V256c0-53-43-96-96-96H272c-17.7 0-32 14.3-32 32s14.3 32 32 32h16c17.7 0 32 14.3 32 32v32c0 70.7-57.3 128-128 128H160c-17.7 0-32-14.3-32-32V224h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V128.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"],bicycle:[640,512,[128690],\"f206\",\"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h25.7l34.6 64H222.9l-27.4-38C191 99.7 183.7 96 176 96H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h43.7l22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112h49c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32H312zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368h65c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1H166.8zm90.6-128H365.9L317 274.8 257.4 192z\"],\"staff-snake\":[384,512,[\"rod-asclepius\",\"rod-snake\",\"staff-aesculapius\"],\"e579\",\"M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"head-side-cough-slash\":[640,512,[],\"e062\",\"M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8h-3.9c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"truck-medical\":[640,512,[128657,\"ambulance\"],\"f0f9\",\"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80v48l-48 0c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V192h48c8.8 0 16-7.2 16-16V144c0-8.8-7.2-16-16-16H240V80c0-8.8-7.2-16-16-16H192c-8.8 0-16 7.2-16 16z\"],\"wheat-awn-circle-exclamation\":[640,512,[],\"e598\",\"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],snowman:[512,512,[9731,9924],\"f7d0\",\"M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2V120c0-13.3 10.7-24 24-24s24 10.7 24 24v19.6l22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9H181.3c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6V120c0-13.3 10.7-24 24-24s24 10.7 24 24v40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24v3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9V120c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"],\"mortar-pestle\":[512,512,[],\"f5a7\",\"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160H397.3L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512H352c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\"road-barrier\":[640,512,[],\"e562\",\"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V266.3L149.2 96H64V64c0-17.7-14.3-32-32-32zM405.2 96H330.8l-5.4 10.7L234.8 288h74.3l5.4-10.7L405.2 96zM362.8 288h74.3l5.4-10.7L533.2 96H458.8l-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288h74.3l5.4-10.7L277.2 96H202.8zm288 192H576V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v53.7L490.8 288z\"],school:[640,512,[127979],\"f549\",\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H256V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96H592c26.5 0 48-21.5 48-48V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V208zM96 320h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H512c-8.8 0-16-7.2-16-16V336zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16z\"],igloo:[576,512,[],\"f7ae\",\"M320 33.8V160H48.5C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160V39.1C424.9 55.7 487.2 99.8 527.5 160H352zM29.9 192H96V320H0c0-46 10.8-89.4 29.9-128zM192 320H128V192H448V320H384v32H576v80c0 26.5-21.5 48-48 48H352V352c0-35.3-28.7-64-64-64s-64 28.7-64 64V480H48c-26.5 0-48-21.5-48-48V352H192V320zm288 0V192h66.1c19.2 38.6 29.9 82 29.9 128H480z\"],joint:[640,512,[],\"f595\",\"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9v11c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43V32zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32V245c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8v11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512h67.3c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512h19 51.3c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352H336 288c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9V392c0-22.1-17.9-40-40-40H444.7c-4.1 0-6.3 5.1-3.6 8.3z\"],\"angle-right\":[320,512,[8250],\"f105\",\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"],horse:[576,512,[128014],\"f6f0\",\"M448 238.1V160h16l9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1V80c0-19.1-8.4-36.3-21.7-48H560c8.8 0 16-7.2 16-16s-7.2-16-16-16H480 448C377.3 0 320 57.3 320 128H224 203.2 148.8c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256v56c0 13.3 10.7 24 24 24s24-10.7 24-24V256c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9h33.7c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8V480c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V315.7c19.2-19.2 31.5-45.7 32-75.7h0v-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],q:[448,512,[113],\"51\",\"M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"],g:[448,512,[103],\"47\",\"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128H256c-17.7 0-32-14.3-32-32s14.3-32 32-32H400c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"],\"notes-medical\":[512,512,[],\"f481\",\"M96 352V96c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V293.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7H160c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V256h48c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H320V144c0-8.8-7.2-16-16-16H272zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24H136C60.9 512 0 451.1 0 376V152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88H296z\"],\"temperature-half\":[320,512,[127777,\"temperature-2\",\"thermometer-2\",\"thermometer-half\"],\"f2c9\",\"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"],\"dong-sign\":[384,512,[],\"e169\",\"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32V288 128c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],capsules:[576,512,[],\"f46b\",\"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48V256H64V144zM0 144V368c0 61.9 50.1 112 112 112s112-50.1 112-112V189.6c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83V144c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"],\"poo-storm\":[448,512,[\"poo-bolt\"],\"f75a\",\"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17H128c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320H304c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9H360c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64h-1.4c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H233.9l52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z\"],\"face-frown-open\":[512,512,[128550,\"frown-open\"],\"f57a\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"],\"hand-point-up\":[384,512,[9757],\"f0a6\",\"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32V240H32V32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192zm-64-64c17.7 0 32 14.3 32 32v48c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H162.3c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363V336c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"],\"money-bill\":[576,512,[],\"f0d6\",\"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],bookmark:[384,512,[128278,61591],\"f02e\",\"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"],\"align-justify\":[448,512,[],\"f039\",\"M448 64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32z\"],\"umbrella-beach\":[576,512,[127958],\"f5ca\",\"M346.3 271.8l-60.1-21.9L214 448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H282.1l64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"],\"helmet-un\":[512,512,[],\"e503\",\"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240v56.3C0 344.8 39.2 384 87.7 384H200h14.9L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6h96c13.3 0 24-10.7 24-24s-10.7-24-24-24H369.5l-1.5-1.5V288h80 32c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.5zM320 417.2l-78-73.7L274.4 288H320V417.2zM285.3 103.1l34.7 52V112c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V208c0 8.8-7.2 16-16 16s-16-7.2-16-16V112c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112v64c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],bullseye:[512,512,[],\"f140\",\"M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],bacon:[576,512,[129363],\"f7e5\",\"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6l0 0 .2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"],\"hand-point-down\":[384,512,[],\"f0a7\",\"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32V272H32V480zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-64 64c17.7 0 32-14.3 32-32V304c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6V160C384 71.6 312.4 0 224 0H162.3C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149v27c0 35.3 28.7 64 64 64h88c22.1 0 40-17.9 40-40s-17.9-40-40-40H96c-8.8 0-16-7.2-16-16s7.2-16 16-16h56c39.8 0 72 32.2 72 72z\"],\"arrow-up-from-bracket\":[448,512,[],\"e09a\",\"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3V320c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 53 43 96 96 96H352c53 0 96-43 96-96V352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V352z\"],folder:[512,512,[128193,128447,61716,\"folder-blank\"],\"f07b\",\"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"],\"file-waveform\":[448,512,[\"file-medical-alt\"],\"f478\",\"M96 0C60.7 0 32 28.7 32 64V288H144c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320H32V448c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V160H288c-17.7 0-32-14.3-32-32V0H96zM288 0V128H416L288 0z\"],radiation:[512,512,[],\"f7b9\",\"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"chart-simple\":[448,512,[],\"e473\",\"M160 80c0-26.5 21.5-48 48-48h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V80zM0 272c0-26.5 21.5-48 48-48H80c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V272zM368 96h32c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48H368c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"],\"mars-stroke\":[512,512,[9894],\"f229\",\"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V24c0-13.3-10.7-24-24-24H376zm88 48h0v0l0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z\"],vial:[512,512,[129514],\"f492\",\"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5V416c0 53 43 96 96 96h5.5c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96H205.3z\"],gauge:[512,512,[\"dashboard\",\"gauge-med\",\"tachometer-alt-average\"],\"f624\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"wand-magic-sparkles\":[576,512,[\"magic-wand-sparkles\"],\"e2ca\",\"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"],e:[320,512,[101],\"45\",\"M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z\"],\"pen-clip\":[512,512,[\"pen-alt\"],\"f305\",\"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1 0 0-1-1 0 0-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"],\"bridge-circle-exclamation\":[640,512,[],\"e4ca\",\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32h40v64H32V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2V160H536V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM488 96v64H408V96h80zM360 96v64H280V96h80zM232 96v64H152V96h80zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],user:[448,512,[128100,62144],\"f007\",\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"],\"school-circle-check\":[640,512,[],\"e56b\",\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H320v0H256V416c0-35.3 28.7-64 64-64l.3 0h.5c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8V144c0-26.5-21.5-48-48-48H473.7L337.8 5.4zM96 192h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V208c0-8.8 7.2-16 16-16zm0 128h32c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H336V144c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"],dumpster:[576,512,[],\"f793\",\"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0H428.5L402.9 32H304V160zm157.1 0h94c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l25.6 128zM32 192l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H448c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160h12c17.7 0 32-14.3 32-32s-14.3-32-32-32h-4l4-32H32z\"],\"van-shuttle\":[640,512,[128656,\"shuttle-van\"],\"f5b6\",\"M64 104v88h96V96H72c-4.4 0-8 3.6-8 8zm482 88L465.1 96H384v96H546zm-226 0V96H224v96h96zM592 384H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V104C0 64.2 32.2 32 72 32H192 352 465.1c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2V336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\"building-user\":[640,512,[],\"e4da\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h89.9c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2V271.8 48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9H605.1c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1H445.1c-51.4 0-93.1 41.7-93.1 93.1z\"],\"square-caret-left\":[448,512,[\"caret-square-left\"],\"f191\",\"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],highlighter:[576,512,[],\"f591\",\"M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5l0 0V248.3c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5H224l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7H24c-13.3 0-24-10.7-24-24v-4.7c0-6.4 2.5-12.5 7-17z\"],key:[512,512,[128273],\"f084\",\"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],bullhorn:[512,512,[128226,128363],\"f0a1\",\"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75H192 160 64c-35.3 0-64 28.7-64 64v96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V352l8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V300.4c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4V32zm-64 76.7V240 371.3C357.2 317.8 280.5 288 200.7 288H192V192h8.7c79.8 0 156.5-29.8 215.3-83.3z\"],globe:[512,512,[127760],\"f0ac\",\"M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z\"],synagogue:[640,512,[128333],\"f69b\",\"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166V280.1 512H464 352V416c0-17.7-14.3-32-32-32s-32 14.3-32 32v96H176 160V280.1 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512V244.5l28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1V448c0 35.3-28.7 64-64 64H512zM128 244.5V512H64c-35.3 0-64-28.7-64-64V316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"],\"person-half-dress\":[320,512,[],\"e548\",\"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352V128h6.9c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352h0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3V384h0v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"],\"road-bridge\":[640,512,[],\"e563\",\"M352 0H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V224c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V384zM480 40c-13.3 0-24 10.7-24 24v64c0 13.3 10.7 24 24 24s24-10.7 24-24V64c0-13.3-10.7-24-24-24zM32 96H288v64H248v64h40v96c-53 0-96 43-96 96v64c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V416c0-53-43-96-96-96V224H72V160H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64H120v64h80V160z\"],\"location-arrow\":[448,512,[],\"f124\",\"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8H224V432c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"],c:[384,512,[99],\"43\",\"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"],\"tablet-button\":[448,512,[],\"f10a\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"building-lock\":[576,512,[],\"e4d6\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h88.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-23.7 12.9-44.4 32-55.4V272c0-30.5 12.2-58.2 32-78.4V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32v48H432V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\"pizza-slice\":[512,512,[],\"f818\",\"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"money-bill-wave\":[576,512,[],\"f53a\",\"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64H64V352zm64-208c0 35.3-28.7 64-64 64V144h64zM512 304v64H448c0-35.3 28.7-64 64-64zM448 96h64v64c-35.3 0-64-28.7-64-64z\"],\"chart-area\":[512,512,[\"area-chart\"],\"f1fe\",\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm96 288H448c17.7 0 32-14.3 32-32V251.8c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1v84c0 17.7 14.3 32 32 32z\"],\"house-flag\":[640,512,[],\"e50d\",\"M480 0c-17.7 0-32 14.3-32 32V192 512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H512c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288H64V480c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v96c0 17.7 14.3 32 32 32h64.7l.2 0h-1V159z\"],\"person-circle-minus\":[576,512,[],\"e540\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"],ban:[512,512,[128683,\"cancel\"],\"f05e\",\"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"],\"camera-rotate\":[640,512,[],\"e0d8\",\"M213.1 64.8L202.7 96H128c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H437.3L426.9 64.8C420.4 45.2 402.1 32 381.4 32H258.6c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16H355.3c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3V256zM192 320c0-8.8 7.2-16 16-16h76.7c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3V320z\"],\"spray-can-sparkles\":[512,512,[\"air-freshener\"],\"f5d0\",\"M96 32v96H224V32c0-17.7-14.3-32-32-32H128C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96V464c0 26.5 21.5 48 48 48H272c26.5 0 48-21.5 48-48V256c0-53-43-96-96-96H96zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"],star:[576,512,[11088,61446],\"f005\",\"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"],repeat:[512,512,[128257],\"f363\",\"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32V64H160C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96H192V352c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V448H352c88.4 0 160-71.6 160-160z\"],cross:[384,512,[128327,10013],\"f654\",\"M176 0c-26.5 0-48 21.5-48 48v80H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h80V464c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V256h80c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H256V48c0-26.5-21.5-48-48-48H176z\"],box:[448,512,[128230],\"f466\",\"M50.7 58.5L0 160H208V32H93.7C75.5 32 58.9 42.3 50.7 58.5zM240 160H448L397.3 58.5C389.1 42.3 372.5 32 354.3 32H240V160zm208 32H0V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192z\"],\"venus-mars\":[640,512,[9892],\"f228\",\"M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H208v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0H616c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"],\"arrow-pointer\":[320,512,[\"mouse-pointer\"],\"f245\",\"M0 55.2V426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320H297.9c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"],maximize:[512,512,[\"expand-arrows-alt\"],\"f31e\",\"M200 32H56C42.7 32 32 42.7 32 56V200c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312V456c0 13.3 10.7 24 24 24H200c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H456c13.3 0 24-10.7 24-24V312c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z\"],\"charging-station\":[576,512,[],\"f5e7\",\"M96 0C60.7 0 32 28.7 32 64V448c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32s-14.3-32-32-32V304h16c22.1 0 40 17.9 40 40v32c0 39.8 32.2 72 72 72s72-32.2 72-72V252.3c32.5-10.2 56-40.5 56-76.3V144c0-8.8-7.2-16-16-16H544V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H480V80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H432c-8.8 0-16 7.2-16 16v32c0 35.8 23.5 66.1 56 76.3V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V344c0-48.6-39.4-88-88-88H320V64c0-35.3-28.7-64-64-64H96zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9H256c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9H96c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"],shapes:[512,512,[\"triangle-circle-square\"],\"f61f\",\"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2H384c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312V456c0 22.1 17.9 40 40 40H472c22.1 0 40-17.9 40-40V312c0-22.1-17.9-40-40-40H328c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z\"],shuffle:[512,512,[128256,\"random\"],\"f074\",\"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"],\"person-running\":[448,512,[127939,\"running\"],\"f70c\",\"M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H362.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h69.6c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z\"],\"mobile-retro\":[320,512,[],\"e527\",\"M0 64C0 28.7 28.7 0 64 0H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm64 96v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H128z\"],\"grip-lines-vertical\":[192,512,[],\"f7a5\",\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64z\"],spider:[512,512,[128375],\"f717\",\"M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1V160c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4V112c0 8.8-7.2 16-16 16s-16-7.2-16-16V101.2c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160v14.1l-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"],\"hands-bound\":[640,512,[],\"e4f9\",\"M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32V96v59.1 .7V192v21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352H128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32H288h64H480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24h-3.6l85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7V192 155.8v-.7V96 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V96v48.8l-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1V320v32H288V320 258.1c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8V96 32zm64 448v32H288V480h64v32H480V480h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H480 352 288 160 128c-13.3 0-24 10.7-24 24s10.7 24 24 24h32z\"],\"file-invoice-dollar\":[384,512,[],\"f571\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16v17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1 0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1V440c0 8.8-7.2 16-16 16s-16-7.2-16-16V422.2c-11.2-2.1-21.7-5.7-30.9-8.9l0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4l0 0 0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7V232c0-8.8 7.2-16 16-16z\"],\"plane-circle-exclamation\":[640,512,[],\"e556\",\"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\"x-ray\":[512,512,[],\"f497\",\"M0 64C0 46.3 14.3 32 32 32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16v32H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48H128c-8.8 0-16 7.2-16 16s7.2 16 16 16H240v70.6L189.1 307c-5.2-2-10.6-3-16.2-3h-2.1c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6H316.4c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8H339c-5.5 0-11 1-16.2 3L272 326.6V256H384c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V176h80c8.8 0 16-7.2 16-16s-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],\"spell-check\":[576,512,[],\"f891\",\"M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224h90.7l5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160H93.3L112 115.2 130.7 160zM256 32v96 96c0 17.7 14.3 32 32 32h80c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80H288c-17.7 0-32 14.3-32 32zm96 64H320V64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64h32 16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320V160zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"],slash:[640,512,[],\"f715\",\"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"],\"computer-mouse\":[384,512,[128433,\"mouse\"],\"f8cc\",\"M0 192H176V0H160C71.6 0 0 71.6 0 160v32zm0 32V352c0 88.4 71.6 160 160 160h64c88.4 0 160-71.6 160-160V224H192 0zm384-32V160C384 71.6 312.4 0 224 0H208V192H384z\"],\"arrow-right-to-bracket\":[512,512,[\"sign-in\"],\"f090\",\"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\"shop-slash\":[640,512,[\"store-alt-slash\"],\"e070\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43V224H512V376L384 275.7V224H320v1.5L277.2 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192h85L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V398.5l-64-50.4V384zM544 512l-.3 0h.6l-.3 0z\"],server:[512,512,[],\"f233\",\"M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"virus-covid-slash\":[640,512,[],\"e4a9\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7H528v16c0 13.3 10.7 24 24 24s24-10.7 24-24V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v16H494.4c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6V48h16c13.3 0 24-10.7 24-24s-10.7-24-24-24H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h16V81.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zm362.5 407L149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5H112V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V280h33.6c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1V464H280c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V430.4c20.4-2.8 39.7-9.1 57.3-18.2z\"],\"shop-lock\":[640,512,[],\"e4a5\",\"M36.8 192H449.6c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224H320V384H128V224H64V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 352 224zm144 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\"hourglass-start\":[384,512,[\"hourglass-1\"],\"f251\",\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64V75c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437v11c-17.7 0-32 14.3-32 32s14.3 32 32 32H64 320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V437c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H320 64 32zM288 437v11H96V437c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"],\"blender-phone\":[576,512,[],\"f6b6\",\"M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0H534.1c21.1 0 36.4 20.1 30.9 40.4L558.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H549.8l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16H523.6l-17.5 64H400c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L480 352H224zm-16 32H496c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"],\"building-wheat\":[640,512,[],\"e4db\",\"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H272zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zm384 80v16c0 44.2-35.8 80-80 80H544V272c0-44.2 35.8-80 80-80h16zm0 128c0 44.2-35.8 80-80 80H544V384c0-44.2 35.8-80 80-80h16v16zm0 112c0 44.2-35.8 80-80 80H544V496c0-44.2 35.8-80 80-80h16v16zM512 496v16H496c-44.2 0-80-35.8-80-80V416h16c44.2 0 80 35.8 80 80zm0-96H496c-44.2 0-80-35.8-80-80V304h16c44.2 0 80 35.8 80 80v16zm0-128v16H496c-44.2 0-80-35.8-80-80V192h16c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24V160c0 13.3-10.7 24-24 24s-24-10.7-24-24V56c0-13.3 10.7-24 24-24zm96 64v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V96c0-13.3 10.7-24 24-24z\"],\"person-breastfeeding\":[448,512,[],\"e53a\",\"M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8V320c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1h75.2c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"],\"right-to-bracket\":[512,512,[\"sign-in-alt\"],\"f2f6\",\"M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],venus:[384,512,[9792],\"f221\",\"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V384H128c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V349.1z\"],passport:[448,512,[],\"f5ab\",\"M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8h39.1c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5h47.1c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8h39.1c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8H279.6zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5H200.5c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8H129.3c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"],\"heart-pulse\":[512,512,[\"heartbeat\"],\"f21e\",\"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z\"],\"people-carry-box\":[640,512,[\"people-carry\"],\"f4ce\",\"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7v65.1l51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7V186.6c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5V160c0-17.7 14.3-32 32-32H384c17.7 0 32 14.3 32 32v76.2l10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6v88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51V241.7l-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8H256.7c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"],\"temperature-high\":[512,512,[],\"f769\",\"M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5V112zM144 0C82.1 0 32 50.2 32 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"],microchip:[512,512,[],\"f2db\",\"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z\"],crown:[576,512,[128081],\"f521\",\"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"],\"weight-hanging\":[512,512,[],\"f5cd\",\"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32H120c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512H464c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128H346.5z\"],\"xmarks-lines\":[640,512,[],\"e59a\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"],\"file-prescription\":[384,512,[],\"f572\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM104 196h72c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6H124v44c0 11-9 20-20 20s-20-9-20-20V296 216c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20H124v40h52z\"],\"weight-scale\":[512,512,[\"weight\"],\"f496\",\"M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H391.8zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"],\"user-group\":[640,512,[128101,\"user-friends\"],\"f500\",\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"],\"arrow-up-a-z\":[576,512,[\"sort-alpha-up\"],\"f15e\",\"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z\"],\"chess-knight\":[448,512,[9822],\"f441\",\"M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5V238.9c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400H384l28.9-159c2.1-11.3 3.1-22.8 3.1-34.3V192C416 86 330 0 224 0H83.8C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H409.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432H64L22.6 473.4z\"],\"face-laugh-squint\":[512,512,[\"laugh-squint\"],\"f59b\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],wheelchair:[512,512,[],\"f193\",\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4h5.1c.4 0 .8 0 1.3 0h94.1c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9H282.2l-9.6-48H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H259.8z\"],\"circle-arrow-up\":[512,512,[\"arrow-circle-up\"],\"f0aa\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 231c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71V376c0 13.3-10.7 24-24 24s-24-10.7-24-24V193.9l-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 119c9.4-9.4 24.6-9.4 33.9 0L385 231z\"],\"toggle-on\":[576,512,[],\"f205\",\"M192 64C86 64 0 150 0 256S86 448 192 448H384c106 0 192-86 192-192s-86-192-192-192H192zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\"person-walking\":[320,512,[128694,\"walking\"],\"f554\",\"M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"],l:[320,512,[108],\"4c\",\"M64 32c17.7 0 32 14.3 32 32V416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32z\"],fire:[448,512,[128293],\"f06d\",\"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z\"],\"bed-pulse\":[640,512,[\"procedures\"],\"f487\",\"M483.2 9.6L524 64h92c13.3 0 24 10.7 24 24s-10.7 24-24 24H512c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112H216c-13.3 0-24-10.7-24-24s10.7-24 24-24H352c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160h12.7l20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160H544c53 0 96 43 96 96V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V352H288V192c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\"shuttle-space\":[640,512,[\"space-shuttle\"],\"f197\",\"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96h2zM352 128L245.2 63.9C210.4 43 170.6 32 130 32h-2v96l224 0zM96 128l0-96H80C53.5 32 32 53.5 32 80v48h8c-22.1 0-40 17.9-40 40v16V328v16c0 22.1 17.9 40 40 40H32v48c0 26.5 21.5 48 48 48H96l0-96h8c26.2 0 49.4-12.6 64-32H456c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160H168c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6v24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4V212.4c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"],\"face-laugh\":[512,512,[\"laugh\"],\"f599\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"folder-open\":[576,512,[128194,128449,61717],\"f07c\",\"M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"],\"heart-circle-plus\":[576,512,[],\"e500\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\"code-fork\":[448,512,[],\"e13b\",\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],city:[640,512,[127961],\"f64f\",\"M480 48c0-26.5-21.5-48-48-48H336c-26.5 0-48 21.5-48 48V96H224V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V96H112V24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144v96V464c0 26.5 21.5 48 48 48H304h32 96H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H480V48zm96 320v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM240 416H208c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM560 256c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32zM256 176v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32zM256 304c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32zM112 320H80c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16zm304-48v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16h32zm16 112v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"],\"microphone-lines\":[384,512,[127897,\"microphone-alt\"],\"f3c9\",\"M96 96V256c0 53 43 96 96 96s96-43 96-96H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V192H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80V128H208c-8.8 0-16-7.2-16-16s7.2-16 16-16h80c0-53-43-96-96-96S96 43 96 96zM320 240v16c0 70.7-57.3 128-128 128s-128-57.3-128-128V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v24z\"],\"pepper-hot\":[512,512,[127798],\"f816\",\"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3H360c-13.3 0-24-10.7-24-24V152c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0v80c0 26.5 21.5 48 48 48h76.2l23.9 47.8C372.3 443.9 244.3 512 103.2 512H44.4C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"],unlock:[448,512,[128275],\"f09c\",\"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H144V144z\"],\"colon-sign\":[384,512,[],\"e140\",\"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"],headset:[512,512,[],\"f590\",\"M256 48C141.1 48 48 141.1 48 256v40c0 13.3-10.7 24-24 24s-24-10.7-24-24V256C0 114.6 114.6 0 256 0S512 114.6 512 256V400.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24H240c-26.5 0-48-21.5-48-48s21.5-48 48-48h32c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40V256c0-114.9-93.1-208-208-208zM144 208h16c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H144c-35.3 0-64-28.7-64-64V272c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64v48c0 35.3-28.7 64-64 64H352c-17.7 0-32-14.3-32-32V240c0-17.7 14.3-32 32-32h16z\"],\"store-slash\":[640,512,[],\"e071\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68V384 252.6c-4 1-8 1.8-12.3 2.3l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V350.9L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0H141.6c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zM514.9 501.7L365.5 384H160V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H480c12.9 0 24.8-3.8 34.9-10.3zM155.3 218.4L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6z\"],\"road-circle-xmark\":[640,512,[],\"e566\",\"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"],\"user-minus\":[640,512,[],\"f503\",\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM472 200H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H472c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\"mars-stroke-up\":[320,512,[9896,\"mars-stroke-v\"],\"f22a\",\"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9H184v24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H184v24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8V168H104c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V96H96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z\"],\"champagne-glasses\":[640,512,[129346,\"glass-cheers\"],\"f79f\",\"M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z\"],clipboard:[384,512,[128203],\"f328\",\"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"house-circle-exclamation\":[640,512,[],\"e50a\",\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\"file-arrow-up\":[384,512,[\"file-upload\"],\"f574\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24V305.9l-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31V408z\"],wifi:[640,512,[\"wifi-3\",\"wifi-strong\"],\"f1eb\",\"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],bath:[512,512,[128705,\"bathtub\"],\"f2cd\",\"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3V256c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H96V77.3zM32 352v16c0 28.4 12.4 54 32 71.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V464H384v16c0 17.7 14.3 32 32 32s32-14.3 32-32V439.6c19.6-17.6 32-43.1 32-71.6V352H32z\"],underline:[448,512,[],\"f0cd\",\"M16 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H128V224c0 53 43 96 96 96s96-43 96-96V96H304c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V224c0 88.4-71.6 160-160 160s-160-71.6-160-160V96H48C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32z\"],\"user-pen\":[640,512,[\"user-edit\"],\"f4ff\",\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H322.8c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1H178.3zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"],signature:[640,512,[],\"f5b7\",\"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32v7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92v71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3V128c0-53-43-96-96-96s-96 43-96 96v32c0 17.7 14.3 32 32 32s32-14.3 32-32V128zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5V335.6c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24H64.3c-.2-2.8-.3-5.6-.3-8.5V368H24zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24H305.9c-6.7 16.3-14.2 32.3-22.3 48H616z\"],stroopwafel:[512,512,[],\"f551\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z\"],bold:[384,512,[],\"f032\",\"M0 64C0 46.3 14.3 32 32 32H80 96 224c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128H96 80 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48V256 96H32C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64H112V224H224zM112 288V416H256c35.3 0 64-28.7 64-64s-28.7-64-64-64H224 112z\"],\"anchor-lock\":[640,512,[],\"e4ad\",\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3V446.7c-5.2 .9-10.5 1.3-16 1.3H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\"building-ngo\":[384,512,[],\"e4d7\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM168 64h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H184v64h16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v24c0 13.3-10.7 24-24 24H176c-13.3 0-24-10.7-24-24V80c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16s16-7.2 16-16V112c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48v32c0 26.5-21.5 48-48 48s-48-21.5-48-48V112zM61.3 71.1l34.7 52V80c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V80c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"],\"manat-sign\":[384,512,[],\"e1d5\",\"M192 32c-17.7 0-32 14.3-32 32V98.7C69.2 113.9 0 192.9 0 288V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-59.6 40.8-109.8 96-124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V164c55.2 14.2 96 64.3 96 124V448c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-95.1-69.2-174.1-160-189.3V64c0-17.7-14.3-32-32-32z\"],\"not-equal\":[448,512,[],\"f53e\",\"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H294.5l-64 96H400c17.7 0 32 14.3 32 32s-14.3 32-32 32H187.8l-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H153.5l64-96H48c-17.7 0-32-14.3-32-32s14.3-32 32-32H260.2l65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"],\"border-top-left\":[448,512,[\"border-style\"],\"f853\",\"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"map-location-dot\":[576,512,[\"map-marked-alt\"],\"f5a0\",\"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152V422.8c0 9.8-6 18.6-15.1 22.3L416 503V200.4zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6V451.8L32.9 502.7C17.1 509 0 497.4 0 480.4V209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77V504.3L192 449.4V255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],jedi:[576,512,[],\"f669\",\"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9h26c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9H526c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9H64.5c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6h26c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"],\"square-poll-vertical\":[448,512,[\"poll\"],\"f681\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 192c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V160zM320 288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32z\"],\"mug-hot\":[512,512,[9749],\"f7b6\",\"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32V416c0 53 43 96 96 96H288c53 0 96-43 96-96h16c61.9 0 112-50.1 112-112s-50.1-112-112-112H352 32zm352 64h16c26.5 0 48 21.5 48 48s-21.5 48-48 48H384V256zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"],\"car-battery\":[512,512,[\"battery-car\"],\"f5df\",\"M80 96c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32h16c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16v32H320c-8.8 0-16 7.2-16 16s7.2 16 16 16h32v32c0 8.8 7.2 16 16 16s16-7.2 16-16V256h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H384V192zM80 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16z\"],gift:[512,512,[127873],\"f06b\",\"M190.5 68.8L225.3 128H224 152c-22.1 0-40-17.9-40-40s17.9-40 40-40h2.2c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H438.4c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88h-2.2c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0H152C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40H288h-1.3l34.8-59.2C329.1 55.9 342.9 48 357.8 48H360c22.1 0 40 17.9 40 40zM32 288V464c0 26.5 21.5 48 48 48H224V288H32zM288 512H432c26.5 0 48-21.5 48-48V288H288V512z\"],\"dice-two\":[448,512,[9857],\"f528\",\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"chess-queen\":[512,512,[9819],\"f445\",\"M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400H384 343.6 168.4 128 112.3L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224l0 0 0 0h0zM112 432H400l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H86.6C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z\"],glasses:[576,512,[],\"f530\",\"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1 .1 0 0 0 0 0s0 0-6.3 12.7h0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7h40.6c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7h0c-6.3-12.7-6.3-12.7-6.3-12.7l0 0 0 0 .1 0 .2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7v6.7V352v16c0 61.9-50.1 112-112 112H419.7c-59.4 0-108.5-46.4-111.8-105.8L306.6 352H269.4l-1.2 22.2C264.9 433.6 215.8 480 156.3 480H112C50.1 480 0 429.9 0 368V352 310.7 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4V368c0 26.5 21.5 48 48 48h44.3c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368V325.4c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3H464c26.5 0 48-21.5 48-48z\"],\"chess-board\":[448,512,[],\"f43c\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm64 64v64h64V96h64v64h64V96h64v64H320v64h64v64H320v64h64v64H320V352H256v64H192V352H128v64H64V352h64V288H64V224h64V160H64V96h64zm64 128h64V160H192v64zm0 64V224H128v64h64zm64 0H192v64h64V288zm0 0h64V224H256v64z\"],\"building-circle-check\":[640,512,[],\"e4d2\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"person-chalkboard\":[640,512,[],\"e53d\",\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V192h56 64 16c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64H576V256H384V224H320v48c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48v80H243.1 177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\"mars-stroke-right\":[640,512,[9897,\"mars-stroke-h\"],\"f22b\",\"M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152H416V176c0-13.3 10.7-24 24-24s24 10.7 24 24v56h32V176c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V280H464v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H382.4z\"],\"hand-back-fist\":[448,512,[\"hand-rock\"],\"f255\",\"M144 0C117.5 0 96 21.5 96 48V96v28.5V176c0 8.8-7.2 16-16 16s-16-7.2-16-16V149.3l-9 7.5C40.4 169 32 187 32 206V244c0 38 16.9 74 46.1 98.3L128 384v96c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V374.7c46.9-19 80-65 80-118.7V176 160 144c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"],\"square-caret-up\":[448,512,[\"caret-square-up\"],\"f151\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4H120c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\"cloud-showers-water\":[576,512,[],\"e4e4\",\"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64H448c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"chart-bar\":[512,512,[\"bar-chart\"],\"f080\",\"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"hands-bubbles\":[576,512,[\"hands-wash\"],\"e05e\",\"M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7v-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8 0 0 0 0-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4H352h13.3l0 0H397l23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352v8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H364c-6.6 0-12-5.4-12-12s5.4-12 12-12H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H352l0 0 0 0H258.8L305 219.1c15-9.4 19.5-29.1 10.2-44.1z\"],\"less-than-equal\":[448,512,[],\"f537\",\"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],train:[448,512,[128646],\"f238\",\"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 96c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"eye-low-vision\":[640,512,[\"low-vision\"],\"f2a8\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm-139.9 12c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8L83.1 161.5zm-50 86.3c-1.8 6.8-1.3 14 1.4 20.5c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8z\"],crow:[640,512,[],\"f520\",\"M456 0c-48.6 0-88 39.4-88 88v29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384H259.2l46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384H352c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192V128v-8l80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32H523.9C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],sailboat:[576,512,[],\"e445\",\"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6H272c-8.8 0-16-7.2-16-16V16zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5V336c0 8.8-7.2 16-16 16H80c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384H554.9c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512H133C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"],\"window-restore\":[512,512,[],\"f2d2\",\"M432 64H208c-8.8 0-16 7.2-16 16V96H128V80c0-44.2 35.8-80 80-80H432c44.2 0 80 35.8 80 80V304c0 44.2-35.8 80-80 80H416V320h16c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64H320c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192zm64 32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H96c-17.7 0-32 14.3-32 32z\"],\"square-plus\":[448,512,[61846,\"plus-square\"],\"f0fe\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM200 344V280H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\"torii-gate\":[512,512,[9961],\"f6a1\",\"M0 80c0 26.5 21.5 48 48 48H64v64h64V128h96v64h64V128h96v64h64V128h16c26.5 0 48-21.5 48-48V13.4C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32H126.8c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4V80zM64 288V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288H384V480c0 17.7 14.3 32 32 32s32-14.3 32-32V288h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64z\"],frog:[576,512,[],\"f52e\",\"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H480c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],bucket:[448,512,[],\"e4cf\",\"M96 152v8H48v-8C48 68.1 116.1 0 200 0h48c83.9 0 152 68.1 152 152v8H352v-8c0-57.4-46.6-104-104-104H200C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32h-5.1L388.5 469c-2.6 24.4-23.2 43-47.7 43H107.2c-24.6 0-45.2-18.5-47.7-43L37.1 256H32c-17.7 0-32-14.3-32-32z\"],image:[512,512,[],\"f03e\",\"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],microphone:[384,512,[],\"f130\",\"M192 0C139 0 96 43 96 96V256c0 53 43 96 96 96s96-43 96-96V96c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 89.1 66.2 162.7 152 174.4V464H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h72 72c13.3 0 24-10.7 24-24s-10.7-24-24-24H216V430.4c85.8-11.7 152-85.3 152-174.4V216c0-13.3-10.7-24-24-24s-24 10.7-24 24v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V216z\"],cow:[640,512,[128004],\"f6c8\",\"M96 224v32V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V327.8c9.9 6.6 20.6 12 32 16.1V368c0 8.8 7.2 16 16 16s16-7.2 16-16V351.1c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9V368c0 8.8 7.2 16 16 16s16-7.2 16-16V343.8c11.4-4 22.1-9.4 32-16.1V416c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V256l32 32v49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5V184c0-13.3-10.7-24-24-24s-24 10.7-24 24v14.4l-52.9-74.1C496 86.5 452.4 64 405.9 64H272 256 192 144C77.7 64 24 117.7 24 184v54C9.4 249.8 0 267.8 0 288v17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4V256 224 184c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160v64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6H361.4c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"],\"caret-up\":[320,512,[],\"f0d8\",\"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"],screwdriver:[512,512,[129691],\"f54a\",\"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19v54.1l-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192H408c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"],\"folder-closed\":[512,512,[],\"e185\",\"M448 480H64c-35.3 0-64-28.7-64-64V192H512V416c0 35.3-28.7 64-64 64zm64-320H0V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64z\"],\"house-tsunami\":[576,512,[],\"e515\",\"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1l0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6V265c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448z\"],\"square-nfi\":[448,512,[],\"e576\",\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm75.7 64.6C68.8 162.5 64 168.8 64 176V336c0 8.8 7.2 16 16 16s16-7.2 16-16V233.8l66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4V176c0-8.8-7.2-16-16-16s-16 7.2-16 16V278.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176v64 96c0 8.8 7.2 16 16 16s16-7.2 16-16V256h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H256V192h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V336c0 8.8 7.2 16 16 16s16-7.2 16-16V176z\"],\"arrow-up-from-ground-water\":[576,512,[],\"e4b5\",\"M288 352c17.7 0 32-14.3 32-32V109.3l25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192H48c-26.5 0-48 21.5-48 48V425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3V192zm384 48c0-26.5-21.5-48-48-48H384V416.5h0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9V240z\"],\"martini-glass\":[512,512,[127864,\"glass-martini-alt\"],\"f57b\",\"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM173.3 128l-64-64H402.7l-64 64H173.3z\"],\"rotate-left\":[512,512,[\"rotate-back\",\"rotate-backward\",\"undo-alt\"],\"f2ea\",\"M48.5 224H40c-13.3 0-24-10.7-24-24V72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8H48.5z\"],\"table-columns\":[512,512,[\"columns\"],\"f0db\",\"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 64V416H224V160H64zm384 0H288V416H448V160z\"],lemon:[448,512,[127819],\"f094\",\"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"],\"head-side-mask\":[576,512,[],\"e063\",\"M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31V512H128c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2H336c-21.7 0-41.3 8.6-55.7 22.6zM336 304H534l0 0h10l-19.7 64H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H514.5l-9.8 32H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H494.8l-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2H288V352c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],handshake:[640,512,[],\"f2b5\",\"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V128H16zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V144c0-8.8-7.2-16-16-16H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],gem:[512,512,[128142],\"f3a5\",\"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8H376c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"],dolly:[576,512,[\"dolly-box\"],\"f472\",\"M0 32C0 14.3 14.3 0 32 0h72.9c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64H32C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z\"],smoking:[640,512,[128684],\"f48d\",\"M448 32V43c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2v11c0 17.7-14.3 32-32 32s-32-14.3-32-32V245c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43V32c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256V245c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2V32c0-17.7 14.3-32 32-32s32 14.3 32 32V43c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1v11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64H416c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H64c-35.3 0-64-28.7-64-64V416zm224 0v32H384V416H224zm288-64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384c0-17.7 14.3-32 32-32z\"],minimize:[512,512,[\"compress-arrows-alt\"],\"f78c\",\"M456 224H312c-13.3 0-24-10.7-24-24V56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2V312c0-13.3 10.7-24 24-24H456zm-256 0c13.3 0 24 10.7 24 24V456c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8H200zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2V200c0 13.3-10.7 24-24 24H56z\"],monument:[384,512,[],\"f5a6\",\"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322H55.9L96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24H152zM32 448H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],snowplow:[640,512,[],\"f7d2\",\"M298.9 64l68.6 160H256l-64-64V64H298.9zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0H176c-26.5 0-48 21.5-48 48V160H96c-17.7 0-32 14.3-32 32V298.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112H368c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48H512v50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7V320 235.2L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40V288H448V256.7c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48H112c-26.5 0-48-21.5-48-48s21.5-48 48-48H368zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"angles-right\":[512,512,[187,\"angle-double-right\"],\"f101\",\"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],cannabis:[512,512,[],\"f55f\",\"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V417.2l-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"],\"circle-play\":[512,512,[61469,\"play-circle\"],\"f144\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9V344c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"],tablets:[640,512,[],\"f490\",\"M614.3 247c16.3-25 25.7-54.9 25.7-87C640 71.6 568.4 0 480 0c-32.1 0-61.9 9.4-87 25.7c-7.9 5.2-8.5 16.2-1.8 22.9L591.4 248.8c6.7 6.7 17.8 6.2 22.9-1.8zM567 294.3c7.9-5.2 8.5-16.2 1.8-22.9L368.6 71.2c-6.7-6.7-17.8-6.2-22.9 1.8c-16.3 25-25.7 54.9-25.7 87c0 88.4 71.6 160 160 160c32.1 0 61.9-9.4 87-25.7zM301.5 368H18.5c-9.5 0-16.9 8.2-15 17.5C18.9 457.8 83.1 512 160 512s141.1-54.2 156.5-126.5c2-9.3-5.5-17.5-15-17.5zm0-32c9.5 0 16.9-8.2 15-17.5C301.1 246.2 236.9 192 160 192S18.9 246.2 3.5 318.5c-2 9.3 5.5 17.5 15 17.5H301.5z\"],ethernet:[512,512,[],\"f796\",\"M0 224V416c0 17.7 14.3 32 32 32H96V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64V336c0-8.8 7.2-16 16-16s16 7.2 16 16V448h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H448V160c0-17.7-14.3-32-32-32H384V96c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32v32H96c-17.7 0-32 14.3-32 32v32H32c-17.7 0-32 14.3-32 32z\"],\"euro-sign\":[320,512,[8364,\"eur\",\"euro\"],\"f153\",\"M48.1 240c-.1 2.7-.1 5.3-.1 8v16c0 2.7 0 5.3 .1 8H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H60.3C89.9 419.9 170 480 264 480h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264c-57.9 0-108.2-32.4-133.9-80H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112.2c-.1-2.6-.2-5.3-.2-8V248c0-2.7 .1-5.4 .2-8H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H130.1c25.7-47.6 76-80 133.9-80h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H264C170 32 89.9 92.1 60.3 176H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48.1z\"],chair:[448,512,[129681],\"f6c0\",\"M248 48V256h48V58.7c23.9 13.8 40 39.7 40 69.3V256h48V128C384 57.3 326.7 0 256 0H192C121.3 0 64 57.3 64 128V256h48V128c0-29.6 16.1-55.5 40-69.3V256h48V48h48zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32V384H352v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288H48z\"],\"circle-check\":[512,512,[61533,\"check-circle\"],\"f058\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"circle-stop\":[512,512,[62094,\"stop-circle\"],\"f28d\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160H320c17.7 0 32 14.3 32 32V320c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"],\"compass-drafting\":[512,512,[\"drafting-compass\"],\"f568\",\"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192h0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496V440.6c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1V496c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"plate-wheat\":[512,512,[],\"e55a\",\"M176 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zM56 64h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48zM400 32c44.2 0 80 35.8 80 80v16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80V48c0-8.8 7.2-16 16-16zm80 160v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80zm-96 16v16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16V256c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320H484.2c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446v2c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32v-2c-48.2-9-86.3-48.2-92.5-98.4z\"],icicles:[512,512,[],\"f7ad\",\"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"],\"person-shelter\":[512,512,[],\"e54f\",\"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160V480c0 17.7 14.3 32 32 32s32-14.3 32-32V178.6L256 68.9 448 178.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280V400h16v88c0 13.3 10.7 24 24 24s24-10.7 24-24V313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H246.2c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5V488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"],neuter:[384,512,[9906],\"f22c\",\"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1V480c0 17.7 14.3 32 32 32s32-14.3 32-32V349.1z\"],\"id-badge\":[384,512,[],\"f2c1\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zm96 320h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],marker:[512,512,[],\"f5a1\",\"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"],\"face-laugh-beam\":[512,512,[128513,\"laugh-beam\"],\"f59a\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\"helicopter-symbol\":[512,512,[],\"e502\",\"M445.3 224H510C495.6 108.2 403.8 16.4 288 2V66.7C368.4 80.1 431.9 143.6 445.3 224zM510 288H445.3C431.9 368.4 368.4 431.9 288 445.4V510c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510V445.4C143.6 431.9 80.1 368.4 66.7 288H2zm0-64H66.7C80.1 143.6 143.6 80.1 224 66.7V2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 17.7 14.3 32 32 32s32-14.3 32-32V288h96v64c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H208V160z\"],\"universal-access\":[512,512,[],\"f29a\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\"circle-chevron-up\":[512,512,[\"chevron-circle-up\"],\"f139\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"],\"lari-sign\":[384,512,[],\"e1c8\",\"M144 32c17.7 0 32 14.3 32 32V96.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7V64c0-17.7 14.3-32 32-32s32 14.3 32 32v49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3V256c0 17.7-14.3 32-32 32s-32-14.3-32-32V161c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1v95c0 17.7-14.3 32-32 32s-32-14.3-32-32V188.1C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H192 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H48.9C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6V64c0-17.7 14.3-32 32-32z\"],volcano:[512,512,[127755],\"f770\",\"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1H235.1c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2h41.8c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2H52.2C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"],\"person-walking-dashed-line-arrow-right\":[640,512,[],\"e553\",\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24V72c0 13.3 10.7 24 24 24s24-10.7 24-24V24c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V152zM392 320c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24s24-10.7 24-24V344c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24v48c0 13.3 10.7 24 24 24s24-10.7 24-24V440z\"],\"sterling-sign\":[320,512,[163,\"gbp\",\"pound-sign\"],\"f154\",\"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1C104.1 390 112 361.5 112 332.5V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z\"],viruses:[640,512,[],\"e076\",\"M192 0c13.3 0 24 10.7 24 24V37.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168H360c13.3 0 24 10.7 24 24s-10.7 24-24 24H346.5c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5V360c0 13.3-10.7 24-24 24s-24-10.7-24-24V346.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H37.5c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5V24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"square-person-confined\":[448,512,[],\"e577\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56V350.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7V248z\"],\"user-tie\":[448,512,[],\"f508\",\"M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7H162.5c0 0 0 0 .1 0H168 280h5.5c0 0 0 0 .1 0H417.3c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2H224 204.3c-12.4 0-20.1 13.6-13.7 24.2z\"],\"arrow-down-long\":[384,512,[\"long-arrow-down\"],\"f175\",\"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"],\"tent-arrow-down-to-line\":[640,512,[],\"e57e\",\"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H159.6l.7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448h80L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9V448z\"],certificate:[512,512,[],\"f0a3\",\"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"],\"reply-all\":[576,512,[\"mail-reply-all\"],\"f122\",\"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2V288h32c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176H352V64z\"],suitcase:[512,512,[129523],\"f0f2\",\"M176 56V96H336V56c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zM128 96V56c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56V96v32V480H128V128 96zM64 96H96V480H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64zM448 480H416V96h32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64z\"],\"person-skating\":[448,512,[\"skating\"],\"f7c5\",\"M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32H319.4c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V349.3l-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17H160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h88.8c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"],\"filter-circle-dollar\":[576,512,[\"funnel-dollar\"],\"f662\",\"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7V288c0-8.8-7.2-16-16-16s-16 7.2-16 16v9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6l0 0 0 0c7 2.3 15.1 4.8 23.7 6.6v11.4c0 8.8 7.2 16 16 16s16-7.2 16-16V438.7c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5l0-.1c-.1-1.9 .3-2.9 .8-3.6z\"],\"camera-retro\":[512,512,[128247],\"f083\",\"M220.6 121.2L271.1 96 448 96v96H333.2c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24H64V128H192c9.9 0 19.7-2.3 28.6-6.8zM0 128V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H271.1c-9.9 0-19.7 2.3-28.6 6.8L192 64H160V48c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z\"],\"circle-arrow-down\":[512,512,[\"arrow-circle-down\"],\"f0ab\",\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 281c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 136c0-13.3 10.7-24 24-24s24 10.7 24 24l0 182.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 393c-9.4 9.4-24.6 9.4-33.9 0L127 281z\"],\"file-import\":[512,512,[\"arrow-right-to-file\"],\"f56f\",\"M128 64c0-35.3 28.7-64 64-64H352V128c0 17.7 14.3 32 32 32H512V448c0 35.3-28.7 64-64 64H192c-35.3 0-64-28.7-64-64V336H302.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H128V64zm0 224v48H24c-13.3 0-24-10.7-24-24s10.7-24 24-24H128zM512 128H384V0L512 128z\"],\"square-arrow-up-right\":[448,512,[\"external-link-square\"],\"f14c\",\"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24h94.1L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135V328c0 13.3 10.7 24 24 24s24-10.7 24-24V168c0-13.3-10.7-24-24-24H160z\"],\"box-open\":[640,512,[],\"f49e\",\"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6v167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5v-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128h2.2z\"],scroll:[576,512,[128220],\"f70e\",\"M0 80v48c0 17.7 14.3 32 32 32H48 96V80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48V384c0 35.3 28.7 64 64 64s64-28.7 64-64v-5.3c0-32.4 26.3-58.7 58.7-58.7H480V128c0-53-43-96-96-96H112zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16H314.7c-14.7 0-26.7 11.9-26.7 26.7V384c0 53-43 96-96 96H368h96z\"],spa:[576,512,[],\"f5bb\",\"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192h9.9c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480H288 267.9C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192H30c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"],\"location-pin-lock\":[512,512,[],\"e51f\",\"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3V352c0-23.7 12.9-44.4 32-55.4V272c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32v48H368V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],pause:[320,512,[9208],\"f04c\",\"M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z\"],\"hill-avalanche\":[576,512,[],\"e507\",\"M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87z\"],\"temperature-empty\":[320,512,[\"temperature-0\",\"thermometer-0\",\"thermometer-empty\"],\"f2cb\",\"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM160 0C98.1 0 48 50.2 48 112V276.5c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],bomb:[512,512,[128163],\"f1e2\",\"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104v8c0 8.8-7.2 16-16 16s-16-7.2-16-16v-8c0-75.1 60.9-136 136-136h8c8.8 0 16 7.2 16 16s-7.2 16-16 16h-8z\"],registered:[512,512,[174],\"f25d\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24h88c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288H208v72c0 13.3-10.7 24-24 24s-24-10.7-24-24V264 152zm48 88h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H208v64z\"],\"address-card\":[576,512,[62140,\"contact-card\",\"vcard\"],\"f2bb\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm80 256h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"scale-unbalanced-flip\":[640,512,[\"balance-scale-right\"],\"f516\",\"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2V480c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288H200.4zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416H583.3L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"],subscript:[512,512,[],\"f12c\",\"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V320z\"],\"diamond-turn-right\":[512,512,[\"directions\"],\"f5eb\",\"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8v56H224c-35.3 0-64 28.7-64 64v48c0 13.3 10.7 24 24 24s24-10.7 24-24V280c0-8.8 7.2-16 16-16h64v56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"],burst:[512,512,[],\"e4dc\",\"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"],\"house-laptop\":[640,512,[\"laptop-house\"],\"e066\",\"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5H336c-19.1 0-36.3 8.4-48 21.7V208c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64V416H112c-26.5 0-48-21.5-48-48V256H32c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304V448H544V304H352zm-48-16c0-17.7 14.3-32 32-32H560c17.7 0 32 14.3 32 32V448h32c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48H544 352 304c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16h32V288z\"],\"face-tired\":[512,512,[128555,\"tired\"],\"f5c8\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3h-3.2c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\"money-bills\":[640,512,[],\"e1f3\",\"M96 96V320c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64H160V256zM224 96c0 35.3-28.7 64-64 64V96h64zM576 256v64H512c0-35.3 28.7-64 64-64zM512 96h64v64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V360c0 66.3 53.7 120 120 120H520c13.3 0 24-10.7 24-24s-10.7-24-24-24H120c-39.8 0-72-32.2-72-72V120z\"],smog:[640,512,[],\"f75f\",\"M32 144c0 79.5 64.5 144 144 144H299.3c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32H496c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368H280c-13.3 0-24 10.7-24 24s10.7 24 24 24H616c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96H440c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H360c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H200c13.3 0 24-10.7 24-24z\"],crutch:[512,512,[],\"f7f7\",\"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"],\"font-awesome\":[448,512,[62501,62694,\"font-awesome-flag\",\"font-awesome-logo-full\"],\"f2b4\",\"M448 48V384c-63.1 22.5-82.3 32-119.5 32c-62.8 0-86.6-32-149.3-32c-20.6 0-36.6 3.6-51.2 8.2v-64c14.6-4.6 30.6-8.2 51.2-8.2c62.7 0 86.5 32 149.3 32c20.4 0 35.6-3 55.5-9.3v-208c-19.9 6.3-35.1 9.3-55.5 9.3c-62.8 0-86.6-32-149.3-32c-50.8 0-74.9 20.6-115.2 28.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32s32 14.3 32 32V76.7c40.3-8 64.4-28.7 115.2-28.7c62.7 0 86.5 32 149.3 32c37.1 0 56.4-9.5 119.5-32z\"],\"cloud-arrow-up\":[640,512,[62338,\"cloud-upload\",\"cloud-upload-alt\"],\"f0ee\",\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V392c0 13.3 10.7 24 24 24s24-10.7 24-24V257.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"],palette:[512,512,[127912],\"f53f\",\"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"arrows-turn-right\":[448,512,[],\"e4c0\",\"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160H128c-35.3 0-64 28.7-64 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V224C0 153.3 57.3 96 128 96H338.7L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416H96c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96H242.7l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"],vest:[448,512,[],\"e085\",\"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V270.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6V128 54.3 48c0-26.5-21.5-48-48-48h-4.5c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0H112C85.5 0 64 21.5 64 48v6.3V128v17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5V464c0 26.5 21.5 48 48 48H176c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464V295.8c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"],ferry:[576,512,[],\"e4ea\",\"M224 0H352c17.7 0 32 14.3 32 32h75.1c20.6 0 31.6 24.3 18.1 39.8L456 96H120L98.8 71.8C85.3 56.3 96.3 32 116.9 32H192c0-17.7 14.3-32 32-32zM96 128H480c17.7 0 32 14.3 32 32V283.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9H375.6c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9H183.9c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5V160c0-17.7 14.3-32 32-32zm32 64v96H448V192H128zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"arrows-down-to-people\":[640,512,[],\"e4b9\",\"M144 0c-13.3 0-24 10.7-24 24V142.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5V400c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V345.5l26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3H486.2c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3H310.2c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6H134.2c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5V480c0 17.7 14.3 32 32 32h48c17.7 0 32-14.3 32-32V441.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V142.1l-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"],seedling:[512,512,[127793,\"sprout\"],\"f4d8\",\"M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0h32c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64H64c123.7 0 224 100.3 224 224v32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320C100.3 320 0 219.7 0 96z\"],\"left-right\":[512,512,[8596,\"arrows-alt-h\"],\"f337\",\"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"],\"boxes-packing\":[640,512,[],\"e4c7\",\"M256 48c0-26.5 21.5-48 48-48H592c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H381.3c1.8-5 2.7-10.4 2.7-16V253.3c18.6-6.6 32-24.4 32-45.3V176c0-26.5-21.5-48-48-48H256V48zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6V432c0 8.8 7.2 16 16 16s16-7.2 16-16V310.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H16c-8.8 0-16-7.2-16-16V176zm352 80V480c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V256H352zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H144z\"],\"circle-arrow-left\":[512,512,[\"arrow-circle-left\"],\"f0a8\",\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM231 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L376 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-182.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L119 273c-9.4-9.4-9.4-24.6 0-33.9L231 127z\"],\"group-arrows-rotate\":[512,512,[],\"e4f6\",\"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4V163.2c0-5.7-4.7-10.4-10.4-10.4H169.9c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4v60.5c0 5.7 4.7 10.4 10.4 10.4h60.5c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"],\"bowl-food\":[512,512,[],\"e4c6\",\"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32H8.6C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"],\"candy-cane\":[512,512,[],\"f786\",\"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23v5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8V151C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"],\"arrow-down-wide-short\":[576,512,[\"sort-amount-asc\",\"sort-amount-down\"],\"f160\",\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320z\"],\"cloud-bolt\":[512,512,[127785,\"thunderstorm\"],\"f76c\",\"M0 224c0 53 43 96 96 96h47.2L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320H352h64c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7h70.1L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7H281.9l52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"],\"text-slash\":[640,512,[\"remove-format\"],\"f87d\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96H503L497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32H376.1h-.3H204.5c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96H333.7L301.3 210.8l-94.5-74.1zM327.3 353.9L272.9 311 243.3 416H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H309.8l17.6-62.1z\"],\"face-smile-wink\":[512,512,[128521,\"smile-wink\"],\"f4da\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"],\"file-word\":[384,512,[],\"f1c2\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"],\"file-powerpoint\":[384,512,[],\"f1c4\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM136 240h68c42 0 76 34 76 76s-34 76-76 76H160v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V368 264c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28H160v56h44z\"],\"arrows-left-right\":[512,512,[\"arrows-h\"],\"f07e\",\"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\"house-lock\":[640,512,[],\"e510\",\"M384 480c0 11.7 3.1 22.6 8.6 32H392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272v24.6c-19.1 11.1-32 31.7-32 55.4V480zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\"cloud-arrow-down\":[640,512,[62337,\"cloud-download\",\"cloud-download-alt\"],\"f0ed\",\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128H144zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V318.1l-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"],children:[640,512,[],\"e4e1\",\"M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480V400H70.2c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1H232v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V400H152v80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V300.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9h12.3c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H472z\"],chalkboard:[576,512,[\"blackboard\"],\"f51b\",\"M96 32C60.7 32 32 60.7 32 96V384H96V96l384 0V384h64V96c0-35.3-28.7-64-64-64H96zM224 384v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H416V384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32z\"],\"user-large-slash\":[640,512,[\"user-alt-slash\"],\"f4fa\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512H528L284.3 320h-59C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7H545.3l.3 0z\"],\"envelope-open\":[512,512,[62135],\"f2b6\",\"M64 208.1L256 65.9 448 208.1v47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5V208.1zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V208.1c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"],\"handshake-simple-slash\":[640,512,[\"handshake-alt-slash\"],\"e05f\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM413.6 421.9L41.2 128.5C17.9 131.8 0 151.8 0 176V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6z\"],\"mattress-pillow\":[640,512,[],\"e525\",\"M256 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H256V64zm32 384H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H288V448zM64 160c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V160z\"],\"guarani-sign\":[384,512,[],\"e19a\",\"M192 0c-17.7 0-32 14.3-32 32V66.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32H224V132c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7V32c0-17.7-14.3-32-32-32zM160 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380V288h92c-11.6 45-47 80.4-92 92z\"],\"arrows-rotate\":[512,512,[128472,\"refresh\",\"sync\"],\"f021\",\"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160H352c-17.7 0-32 14.3-32 32s14.3 32 32 32H463.5c0 0 0 0 0 0h.4c17.7 0 32-14.3 32-32V80c0-17.7-14.3-32-32-32s-32 14.3-32 32v35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1V432c0 17.7 14.3 32 32 32s32-14.3 32-32V396.9l17.6 17.5 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352H160c17.7 0 32-14.3 32-32s-14.3-32-32-32H48.4c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"],\"fire-extinguisher\":[512,512,[129519],\"f134\",\"M500.3 7.3C507.7 13.3 512 22.4 512 32v96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104H224v34.8c37.8 18 64 56.5 64 101.2V384H64V240c0-44.7 26.2-83.2 64-101.2V110c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4V32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V56h65c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416v32c0 35.3-28.7 64-64 64H128c-35.3 0-64-28.7-64-64V416H288zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"cruzeiro-sign\":[448,512,[],\"e152\",\"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416V320v-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32v55.3V320v82.7C135.5 378 96 321.6 96 256z\"],\"greater-than-equal\":[448,512,[],\"f532\",\"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416z\"],\"shield-halved\":[512,512,[\"shield-alt\"],\"f3ed\",\"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z\"],\"book-atlas\":[448,512,[\"atlas\"],\"f558\",\"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9h63c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9h31.1c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9H303.5c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208h31.1c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32H145.3c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9h-63c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"],virus:[512,512,[],\"e074\",\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H43.5c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H468.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5V32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"envelope-circle-check\":[640,512,[],\"e4e8\",\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176V384c0 35.3 28.7 64 64 64H360.2C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"layer-group\":[576,512,[],\"f5fd\",\"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"],\"arrows-to-dot\":[512,512,[],\"e4be\",\"M256 0c17.7 0 32 14.3 32 32V64h32c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8h32V32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H288v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H192c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224H64V192c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6v32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H448v32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],archway:[512,512,[],\"f557\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32H96h64V352c0-53 43-96 96-96s96 43 96 96V480h64 64c17.7 0 32-14.3 32-32s-14.3-32-32-32V128H32V416z\"],\"heart-circle-check\":[576,512,[],\"e4fd\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"house-chimney-crack\":[576,512,[\"house-damage\"],\"f6f1\",\"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H326.4L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24z\"],\"file-zipper\":[384,512,[\"file-archive\"],\"f1c6\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM96 48c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8h14.8c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"],square:[448,512,[9632,9723,9724,61590],\"f0c8\",\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"],\"martini-glass-empty\":[512,512,[\"glass-martini\"],\"f000\",\"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3V448H160c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H288V269.3L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0H32zM256 210.7L109.3 64H402.7L256 210.7z\"],couch:[640,512,[],\"f4b8\",\"M64 160C64 89.3 121.3 32 192 32H448c70.7 0 128 57.3 128 128v33.6c-36.5 7.4-64 39.7-64 78.4v48H128V272c0-38.7-27.5-71-64-78.4V160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48V448c0 17.7-14.3 32-32 32H576c-17.7 0-32-14.3-32-32H96c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3v48 32h32H512h32V320 272z\"],\"cedi-sign\":[384,512,[],\"e0df\",\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V66.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V445.3c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6V132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8V32zM192 132V380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"],italic:[384,512,[],\"f033\",\"M128 64c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H293.3L160 416h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H90.7L224 96H160c-17.7 0-32-14.3-32-32z\"],church:[640,512,[9962],\"f51d\",\"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V48H264c-13.3 0-24 10.7-24 24s10.7 24 24 24h32v46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V251.2c0-16.9-8.8-32.5-23.3-41.2L344 142.4V96h32c13.3 0 24-10.7 24-24s-10.7-24-24-24H344V24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"],\"comments-dollar\":[640,512,[],\"f653\",\"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9l0 0 0 0 .2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2 0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20V86c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V280c0 11 9 20 20 20s20-9 20-20V266.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V72z\"],democrat:[640,512,[],\"f747\",\"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8H480l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17V320H192l-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3h-2C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352h96v64 64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V416H288v64c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V416 352h96H448zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"],z:[384,512,[122],\"5a\",\"M0 64C0 46.3 14.3 32 32 32H352c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96H32C14.3 96 0 81.7 0 64z\"],\"person-skiing\":[512,512,[9975,\"skiing\"],\"f7c9\",\"M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"],\"road-lock\":[640,512,[],\"e567\",\"M288 32H213.2c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480H288V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64h32V352c0-23.7 12.9-44.4 32-55.4V272c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32H352V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],a:[384,512,[97],\"41\",\"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384H290.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320H120l72-172.8L264 320z\"],\"temperature-arrow-down\":[576,512,[\"temperature-down\"],\"e03f\",\"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V272c0-8.8-7.2-16-16-16s-16 7.2-16 16v50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64H480V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352H384c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"],\"feather-pointed\":[512,512,[\"feather-alt\"],\"f56b\",\"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"],p:[320,512,[112],\"50\",\"M0 96C0 60.7 28.7 32 64 32h96c88.4 0 160 71.6 160 160s-71.6 160-160 160H64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V320 96zM64 288h96c53 0 96-43 96-96s-43-96-96-96H64V288z\"],snowflake:[448,512,[10052,10054],\"f2dc\",\"M224 0c17.7 0 32 14.3 32 32V62.1l15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49v70.3l61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7v70.3l49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V449.9l-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49V311.7l-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3V129.9L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15V32c0-17.7 14.3-32 32-32z\"],newspaper:[512,512,[128240],\"f1ea\",\"M96 96c0-35.3 28.7-64 64-64H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H80c-44.2 0-80-35.8-80-80V128c0-17.7 14.3-32 32-32s32 14.3 32 32V400c0 8.8 7.2 16 16 16s16-7.2 16-16V96zm64 24v80c0 13.3 10.7 24 24 24H296c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24H184c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H384c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16s-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"],\"rectangle-ad\":[576,512,[\"ad\"],\"f641\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328H162.8l-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280h42.3L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9V184c0-13.3 10.7-24 24-24s24 10.7 24 24v96 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"],\"circle-arrow-right\":[512,512,[\"arrow-circle-right\"],\"f0a9\",\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM281 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L136 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l182.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L393 239c9.4 9.4 9.4 24.6 0 33.9L281 385z\"],\"filter-circle-xmark\":[576,512,[],\"e17b\",\"M3.9 22.9C10.5 8.9 24.5 0 40 0H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6V288.9L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"],locust:[576,512,[],\"e520\",\"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24h16c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4H431.8l-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400h74.5l-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400h80.4l38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400H496c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3V280C576 143 465 32 328 32H312zm50.5 168l17.1 40H333l29.5-40zm-87.7 38.1l-1.4 1.9H225.1l32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240H88.8zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],sort:[320,512,[\"unsorted\"],\"f0dc\",\"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8H288c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"],\"list-ol\":[512,512,[\"list-1-2\",\"list-numeric\"],\"f0cb\",\"M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"person-dress-burst\":[640,512,[],\"e544\",\"M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384H408v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h16v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h17.8c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3H474.2c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"],\"money-check-dollar\":[576,512,[\"money-check-alt\"],\"f53d\",\"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zM272 192H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H272c-8.8 0-16-7.2-16-16zM164 152v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V360c0 11-9 20-20 20s-20-9-20-20V345.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V152c0-11 9-20 20-20s20 9 20 20z\"],\"vector-square\":[448,512,[],\"f5cb\",\"M368 80h32v32H368V80zM352 32c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32V160c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H352zM96 160c17.7 0 32-14.3 32-32H320c0 17.7 14.3 32 32 32V352c-17.7 0-32 14.3-32 32H128c0-17.7-14.3-32-32-32V160zM48 400H80v32H48V400zm320 32V400h32v32H368zM48 112V80H80v32H48z\"],\"bread-slice\":[512,512,[],\"f7ec\",\"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"],language:[640,512,[],\"f1ab\",\"M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z\"],\"face-kiss-wink-heart\":[512,512,[128536,\"kiss-wink-heart\"],\"f598\",\"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9l0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1 0 0 0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7l0 0 0 0 0 0 0 0 0 0 .2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1 0 0 0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"],filter:[512,512,[],\"f0b0\",\"M3.9 54.9C10.5 40.9 24.5 32 40 32H472c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9V448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6V320.9L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"],question:[320,512,[10067,10068,61736],\"3f\",\"M80 160c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64v3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74V320c0 17.7 14.3 32 32 32s32-14.3 32-32v-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7V160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\"file-signature\":[576,512,[],\"f573\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V428.7c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8h8.9c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"],\"up-down-left-right\":[512,512,[\"arrows-alt\"],\"f0b2\",\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32v96H128V192c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V288h96v96H192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H288V288h96v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H288V128h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"],\"house-chimney-user\":[576,512,[],\"e065\",\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H192c-8.8 0-16-7.2-16-16z\"],\"hand-holding-heart\":[576,512,[],\"f4be\",\"M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"],\"puzzle-piece\":[512,512,[129513],\"f12e\",\"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2z\"],\"money-check\":[576,512,[],\"f53c\",\"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm48 160H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16zM376 160h80c13.3 0 24 10.7 24 24v48c0 13.3-10.7 24-24 24H376c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24z\"],\"star-half-stroke\":[576,512,[\"star-half-alt\"],\"f5c0\",\"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3V376.4zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"],code:[640,512,[],\"f121\",\"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"],\"whiskey-glass\":[512,512,[129347,\"glass-whiskey\"],\"f7a0\",\"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5h253c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32H32zM87.7 224L69 96H443L424.3 224H87.7z\"],\"building-circle-exclamation\":[640,512,[],\"e4d3\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\"magnifying-glass-chart\":[512,512,[],\"e522\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8v64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96V280c0 13.3 10.7 24 24 24s24-10.7 24-24V120c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64v96c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\"arrow-up-right-from-square\":[512,512,[\"external-link\"],\"f08e\",\"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h82.7L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3V192c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"],\"cubes-stacked\":[448,512,[],\"e4e6\",\"M192 64v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H224c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32H288zm64 160c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H352zM160 384v64c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32H32z\"],\"won-sign\":[512,512,[8361,\"krw\",\"won\"],\"f159\",\"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H72.9l56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288h46L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H460.4l50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224H329L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224h-64L62.4 53.9zm78 234.1H167l-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1H249zm96 64h26.6l-15.2 45.6L345 288z\"],\"virus-covid\":[512,512,[],\"e4a8\",\"M192 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24s-10.7 24-24 24H280V81.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3H464V216c0-13.3 10.7-24 24-24s24 10.7 24 24v80c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H430.4c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1V464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V430.4c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280H48v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V216c0-13.3 10.7-24 24-24s24 10.7 24 24v16H81.6c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1V48H216c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"austral-sign\":[448,512,[],\"e0a9\",\"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96L82.7 320H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H56L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384H322.7l31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384h24c17.7 0 32-14.3 32-32s-14.3-32-32-32H365.3L352 288h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H325.3L253.5 51.7zM256 224H192l32-76.8L256 224zm-90.7 64H282.7L296 320H152l13.3-32z\"],f:[320,512,[102],\"46\",\"M64 32C28.7 32 0 60.7 0 96V256 448c0 17.7 14.3 32 32 32s32-14.3 32-32V288H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H64z\"],leaf:[512,512,[],\"f06c\",\"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"],road:[576,512,[128739],\"f018\",\"M256 32H181.2c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480H256V416c0-17.7 14.3-32 32-32s32 14.3 32 32v64H521.4c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32H320V96c0 17.7-14.3 32-32 32s-32-14.3-32-32V32zm64 192v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],taxi:[512,512,[128662,\"cab\"],\"f1ba\",\"M192 0c-17.7 0-32 14.3-32 32V64c0 .1 0 .1 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288V432v48c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V432H416v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V432 288c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1c0-.1 0-.1 0-.2V32c0-17.7-14.3-32-32-32H192zM165.4 128H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 224H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"person-circle-plus\":[576,512,[],\"e541\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"],\"chart-pie\":[576,512,[\"pie-chart\"],\"f200\",\"M304 240V16.6c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16H304zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4V288L412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288H558.4z\"],\"bolt-lightning\":[384,512,[],\"e0b7\",\"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"],\"sack-xmark\":[512,512,[],\"e56a\",\"M192 96H320l47.4-71.1C374.5 14.2 366.9 0 354.1 0H157.9c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32H192c-3.8 2.5-8.1 5.3-13 8.4l0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96H416c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"],\"file-excel\":[384,512,[],\"f1c3\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"],\"file-contract\":[384,512,[],\"f56c\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h8.2c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8H304c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"],\"fish-fins\":[576,512,[],\"e4f2\",\"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"building-flag\":[640,512,[],\"e4d5\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32V512h64V192H624c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H480c0-17.7-14.3-32-32-32z\"],\"face-grin-beam\":[512,512,[128516,\"grin-beam\"],\"f582\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84l0 0 0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0zm160 0l0 0-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2 0 0 0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8l0 0 0 0 0 0z\"],\"object-ungroup\":[640,512,[],\"f248\",\"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H328.6C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V232.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4V232.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4H119.4zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V352h64v40.6c9.7 5.6 17.8 13.7 23.4 23.4H520.6c5.6-9.7 13.7-17.8 23.4-23.4V279.4c-9.7-5.6-17.8-13.7-23.4-23.4h-46c-5.4-15.4-14.6-28.9-26.5-39.6V192h72.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H311.4z\"],poop:[512,512,[],\"f619\",\"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32H352c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48H408c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72H72c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72h13.7C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64h16.2c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"],\"location-pin\":[384,512,[\"map-marker\"],\"f041\",\"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"],kaaba:[576,512,[128331],\"f66b\",\"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112v16 0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2V128 112C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8v46.5l-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8V400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400V262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2V182.8l273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"],\"toilet-paper\":[640,512,[129531],\"f71e\",\"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1H48c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0H444.2zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\"helmet-safety\":[576,512,[\"hard-hat\",\"hat-hard\"],\"f807\",\"M256 32c-17.7 0-32 14.3-32 32v2.3 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288v64H544l0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1V66.3 64c0-17.7-14.3-32-32-32H256zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6H16.6z\"],eject:[448,512,[9167],\"f052\",\"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320H48c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48s-21.5 48-48 48H48c-26.5 0-48-21.5-48-48z\"],\"circle-right\":[512,512,[61838,\"arrow-alt-circle-right\"],\"f35a\",\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 135.1l99.9 107.1c3.5 3.8 5.5 8.7 5.5 13.8s-2 10.1-5.5 13.8L294.6 376.9c-4.2 4.5-10.1 7.1-16.3 7.1C266 384 256 374 256 361.7l0-57.7-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-57.7c0-12.3 10-22.3 22.3-22.3c6.2 0 12.1 2.6 16.3 7.1z\"],\"plane-circle-check\":[640,512,[],\"e555\",\"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"face-rolling-eyes\":[512,512,[128580,\"meh-rolling-eyes\"],\"f5a5\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368H320c8.8 0 16 7.2 16 16s-7.2 16-16 16H192c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"],\"object-group\":[576,512,[],\"f247\",\"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32H456.6C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4V392.6c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V119.4zM456.6 96H119.4c-5.6 9.7-13.7 17.8-23.4 23.4V392.6c9.7 5.6 17.8 13.7 23.4 23.4H456.6c5.6-9.7 13.7-17.8 23.4-23.4V119.4c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160zM256 320h32c35.3 0 64-28.7 64-64V224h64c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V320z\"],\"chart-line\":[512,512,[\"line-chart\"],\"f201\",\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"],\"mask-ventilator\":[640,512,[],\"e524\",\"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H159.1zm26-48H56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6V393.3c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8v76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H454.5C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48H584c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320V512h64V320c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\"arrow-right\":[448,512,[8594],\"f061\",\"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"],\"signs-post\":[512,512,[\"map-signs\"],\"f277\",\"M224 32H64C46.3 32 32 46.3 32 64v64c0 17.7 14.3 32 32 32H441.4c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7H288c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32H288V192H224v32H70.6c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7H448c17.7 0 32-14.3 32-32V256zM288 480V384H224v96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\"cash-register\":[512,512,[],\"f788\",\"M64 0C46.3 0 32 14.3 32 32V96c0 17.7 14.3 32 32 32h80v32H87c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V378.4c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160H208V128h80c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H64zM96 48H256c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"],\"person-circle-question\":[576,512,[],\"e542\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6V328c0 8.8 7.2 16 16 16s16-7.2 16-16v-6.4c0-5.3 4.3-9.6 9.6-9.6h40.5c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2V384c0 8.8 7.2 16 16 16s16-7.2 16-16v-5.1l23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9H409.6c-23 0-41.6 18.6-41.6 41.6z\"],h:[384,512,[104],\"48\",\"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"],tarp:[576,512,[],\"e57b\",\"M576 128c0-35.3-28.7-64-64-64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32H576V128zM448 448L576 320H448l0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"screwdriver-wrench\":[512,512,[\"tools\"],\"f7d9\",\"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4h54.1l109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109V104c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7H352c-8.8 0-16-7.2-16-16V102.6c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"arrows-to-eye\":[640,512,[],\"e4bf\",\"M15 15C24.4 5.7 39.6 5.7 49 15l63 63V40c0-13.3 10.7-24 24-24s24 10.7 24 24v96c0 13.3-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H78.1L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63H600c13.3 0 24 10.7 24 24s-10.7 24-24 24H504c-13.3 0-24-10.7-24-24V40c0-13.3 10.7-24 24-24s24 10.7 24 24V78.1l63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63H40c-13.3 0-24-10.7-24-24s10.7-24 24-24h96c13.3 0 24 10.7 24 24v96c0 13.3-10.7 24-24 24s-24-10.7-24-24V433.9L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63V472c0 13.3-10.7 24-24 24s-24-10.7-24-24V376c0-13.3 10.7-24 24-24h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H561.9l63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"],\"plug-circle-bolt\":[576,512,[],\"e55b\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"],heart:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],\"f004\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"],\"mars-and-venus\":[512,512,[9893],\"f224\",\"M337.8 14.8C341.5 5.8 350.3 0 360 0H472c13.3 0 24 10.7 24 24V136c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2V408h24c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v32c0 13.3-10.7 24-24 24s-24-10.7-24-24V456H208c-13.3 0-24-10.7-24-24s10.7-24 24-24h24V382.2C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48l0 0h0v0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"],\"house-user\":[576,512,[\"home-user\"],\"e1b0\",\"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16H384c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80H256z\"],\"dumpster-fire\":[640,512,[],\"f794\",\"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160h94L140.5 32H49.7zM272 160V32H173.1L147.5 160H272zm32 0h58c15.1-18.1 32.1-35.7 50.5-52.1c1.5-1.4 3.2-2.6 4.8-3.8L402.9 32H304V160zm209.9-23.7c17.4-15.8 43.9-16.2 61.7-1.2c-.1-.7-.3-1.4-.5-2.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32H435.5l12.8 64.2c9.6 1 19 4.9 26.6 11.8c11.7 10.6 23 21.6 33.9 33.1c1.7-1.6 3.3-3.2 5-4.8zM325.2 210.7c3.8-6.2 7.9-12.5 12.3-18.7H32l4 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H44L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32H337.6c-31-34.7-49.6-80.6-49.6-129.9c0-35.2 16.3-73.6 37.2-107.4zM480 480c88.4 0 160-71.6 160-160c0-31.8-15.5-84-74.4-142.4c-11.8-11.7-30.6-10.7-42.3 1L512 189.9l-46-46c-6-6.1-14.1-9.3-22-9.2c-5.9 .1-11.8 1.9-16.8 5.8C382.5 175.3 320 243.3 320 320c0 88.4 71.6 160 160 160zm64-111.8c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-36.5 37-73 54.8-88.4c5.4-4.7 13.1-4.7 18.5 0C507 295.1 544 331.6 544 368.2z\"],\"house-crack\":[576,512,[],\"e3b1\",\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H230.4l-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32z\"],\"martini-glass-citrus\":[576,512,[\"cocktail\"],\"f561\",\"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48H296.2C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128H392c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177V464h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H208 120c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V345.9L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"],\"face-surprise\":[512,512,[128558,\"surprise\"],\"f5c2\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\"bottle-water\":[320,512,[],\"e4c5\",\"M120 0h80c13.3 0 24 10.7 24 24V64H96V24c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96h75.8c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c8.8 0 16-7.2 16-16s-7.2-16-16-16H112z\"],\"circle-pause\":[512,512,[62092,\"pause-circle\"],\"f28b\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\"toilet-paper-slash\":[640,512,[],\"e072\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192H160c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512H285.9c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"],\"apple-whole\":[448,512,[127822,127823,\"apple-alt\"],\"f5d1\",\"M224 112c-8.8 0-16-7.2-16-16V80c0-44.2 35.8-80 80-80h16c8.8 0 16 7.2 16 16V32c0 44.2-35.8 80-80 80H224zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"],\"kitchen-set\":[576,512,[],\"e51a\",\"M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112h71.8c8.8-9.8 21.6-16 35.8-16H496c26.5 0 48 21.5 48 48s-21.5 48-48 48H392c-14.2 0-27-6.2-35.8-16H284.4zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24v8h96c13.3 0 24 10.7 24 24s-10.7 24-24 24H280c-13.3 0-24-10.7-24-24s10.7-24 24-24h96v-8c0-13.3 10.7-24 24-24zM288 464V352H512V464c0 26.5-21.5 48-48 48H336c-26.5 0-48-21.5-48-48zM48 320h80 16 32c26.5 0 48 21.5 48 48s-21.5 48-48 48H160c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V336c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160v32h16zM24 464H200c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],r:[320,512,[114],\"52\",\"M64 32C28.7 32 0 60.7 0 96V288 448c0 17.7 14.3 32 32 32s32-14.3 32-32V320h95.3L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144H64zM176 256H64V96H176c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\"temperature-quarter\":[320,512,[\"temperature-1\",\"thermometer-1\",\"thermometer-quarter\"],\"f2ca\",\"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"],cube:[512,512,[],\"f1b2\",\"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6V377.4c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4V134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1v-188L288 246.6v188z\"],\"bitcoin-sign\":[320,512,[],\"e0b4\",\"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32V64h32V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H112v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H41.7C18.7 448 0 429.3 0 406.3V288 265.7 224 101.6C0 80.8 16.8 64 37.6 64H48V32zM64 224H176c26.5 0 48-21.5 48-48s-21.5-48-48-48H64v96zm112 64H64v96H208c26.5 0 48-21.5 48-48s-21.5-48-48-48H176z\"],\"shield-dog\":[512,512,[],\"e573\",\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64V160h44.2c12.1 0 23.2 6.8 28.6 17.7L320 192h64c8.8 0 16 7.2 16 16v32c0 44.2-35.8 80-80 80H272v50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160h40 8v32 32c0 17.7-14.3 32-32 32s-32-14.3-32-32V176c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\"solar-panel\":[640,512,[],\"f5ba\",\"M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384H288v64H224c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V384H569c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0H122.2zM260.9 64H379.1l10.4 104h-139L260.9 64zM202.3 168H101.4L122.2 64h90.4L202.3 168zM91.8 216H197.5L187.1 320H71L91.8 216zm153.9 0H394.3l10.4 104-169.4 0 10.4-104zm196.8 0H548.2L569 320h-116L442.5 216zm96-48H437.7L427.3 64h90.4l31.4-6.3L517.8 64l20.8 104z\"],\"lock-open\":[576,512,[],\"f3c1\",\"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z\"],elevator:[512,512,[],\"e16d\",\"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H208c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H64zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H112c-17.7 0-32-14.3-32-32V400zm192 0c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v16c0 17.7-14.3 32-32 32H304c-17.7 0-32-14.3-32-32V400zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0H304c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"],\"money-bill-transfer\":[640,512,[],\"e528\",\"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64H337.9c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5V384c0 35.3-28.7 64-64 64H302.1c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5V128c0-35.3 28.7-64 64-64zm64 64H96v64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64h64V320zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\"money-bill-trend-up\":[512,512,[],\"e529\",\"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2l0 .1v0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64H352c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\"house-flood-water-circle-arrow-right\":[640,512,[],\"e50f\",\"M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160H80c-8.8 0-16-7.2-16-16s7.2-16 16-16h89.4L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4H576c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7l0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"],\"square-poll-horizontal\":[448,512,[\"poll-h\"],\"f682\",\"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"],circle:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],\"f111\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z\"],\"backward-fast\":[512,512,[9198,\"fast-backward\"],\"f049\",\"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7V416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64s32 14.3 32 32V214.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96V214.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96V416c0 12.4-7.2 23.7-18.4 29z\"],recycle:[512,512,[9842,9850,9851],\"f1b8\",\"M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448v32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2v32l96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"],\"user-astronaut\":[448,512,[],\"f4fb\",\"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128v64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9V128c0-16.8-12.9-30.5-29.3-31.9zM336 144v16c0 53-43 96-96 96H208c-53 0-96-43-96-96V144c0-26.5 21.5-48 48-48H288c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512H128V448c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64l98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16v48h32V464c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"plane-slash\":[640,512,[],\"e069\",\"M440.6 320h73.8c34.2 0 93.7-28 93.7-64c0-35-59.5-64-93.7-64l-116.6 0L297.2 16.1C291.5 6.2 280.9 0 269.4 0H213.2c-10.6 0-18.3 10.2-15.4 20.4l40.3 140.9L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320zm-78.1 61.6L41.5 128.7C36 130.6 32 135.9 32 142c0 1.3 .2 2.6 .5 3.9L64 256 32.5 366.1c-.4 1.3-.5 2.6-.5 3.9c0 7.8 6.3 14 14 14H88c5 0 9.8-2.4 12.8-6.4L144 320H246.9l-49 171.6c-2.9 10.2 4.8 20.4 15.4 20.4l56.2 0c11.5 0 22.1-6.2 27.8-16.1l65.3-114.3z\"],trademark:[640,512,[8482],\"f25c\",\"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128V384c0 17.7 14.3 32 32 32s32-14.3 32-32V224l86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224V384c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32H96V384c0 17.7 14.3 32 32 32s32-14.3 32-32V160h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32C14.3 96 0 110.3 0 128z\"],basketball:[512,512,[127936,\"basketball-ball\"],\"f434\",\"M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z\"],\"satellite-dish\":[512,512,[128225],\"f7c0\",\"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"circle-up\":[512,512,[61467,\"arrow-alt-circle-up\"],\"f35b\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM135.1 217.4l107.1-99.9c3.8-3.5 8.7-5.5 13.8-5.5s10.1 2 13.8 5.5l107.1 99.9c4.5 4.2 7.1 10.1 7.1 16.3c0 12.3-10 22.3-22.3 22.3H304v96c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V256H150.3C138 256 128 246 128 233.7c0-6.2 2.6-12.1 7.1-16.3z\"],\"mobile-screen-button\":[384,512,[\"mobile-alt\"],\"f3cd\",\"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64H80V384H304V64z\"],\"volume-high\":[640,512,[128266,\"volume-up\"],\"f028\",\"M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"],\"users-rays\":[640,512,[],\"e593\",\"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],wallet:[512,512,[],\"f555\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H80c-8.8 0-16-7.2-16-16s7.2-16 16-16H448c17.7 0 32-14.3 32-32s-14.3-32-32-32H64zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"clipboard-check\":[384,512,[],\"f46c\",\"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\"file-audio\":[384,512,[],\"f1c7\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8V400c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376H80c-8.8 0-16-7.2-16-16V312c0-8.8 7.2-16 16-16h33.4l35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"],burger:[512,512,[\"hamburger\"],\"f805\",\"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1H61.1zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48H448c26.5 0 48 21.5 48 48s-21.5 48-48 48H64c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16H464c8.8 0 16 7.2 16 16v16c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V400z\"],wrench:[512,512,[128295],\"f0ad\",\"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7H336c-8.8 0-16-7.2-16-16V118.6c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],bugs:[576,512,[],\"e4d0\",\"M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6h-17l-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184H64v23.3l-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3V184h32c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136h-17c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"],\"rupee-sign\":[448,512,[8360,\"rupee\"],\"f156\",\"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9l0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1l0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"],\"file-image\":[384,512,[128443],\"f1c5\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6H216 176 128 80c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"],\"circle-question\":[512,512,[62108,\"question-circle\"],\"f059\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"plane-departure\":[640,512,[128747],\"f5b0\",\"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2H248.4c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48H542.8c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"],\"handshake-slash\":[640,512,[],\"e060\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.3-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8V128h-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM413.6 421.9L128 196.8V352h28.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM96 171.6L40.6 128H16c-8.8 0-16 7.2-16 16V352c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V171.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128V352c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V144c0-8.8-7.2-16-16-16H544zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],\"book-bookmark\":[448,512,[],\"e0bb\",\"M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z\"],\"code-branch\":[448,512,[],\"f126\",\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3v87.8c18.8-10.9 40.7-17.1 64-17.1h96c35.3 0 64-28.7 64-64v-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V160c0 70.7-57.3 128-128 128H176c-35.3 0-64 28.7-64 64v6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V352 153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"hat-cowboy\":[640,512,[],\"f8c0\",\"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"],bridge:[576,512,[],\"e4c8\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H72v64H0V288c53 0 96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96s96 43 96 96v64c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V384c0-53 43-96 96-96V160H504V96h40c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM456 96v64H376V96h80zM328 96v64H248V96h80zM200 96v64H120V96h80z\"],\"phone-flip\":[512,512,[128381,\"phone-alt\"],\"f879\",\"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"],\"truck-front\":[512,512,[],\"e2b7\",\"M0 80C0 35.8 35.8 0 80 0H432c44.2 0 80 35.8 80 80V368c0 26.2-12.6 49.4-32 64v48c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32V432C12.6 417.4 0 394.2 0 368V80zm129.9 72.2L112 224H400l-17.9-71.8C378.5 138 365.7 128 351 128H161c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],cat:[576,512,[128008],\"f6be\",\"M320 192h17.1c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4v4 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V339.2L280 448h56c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-53 0-96-43-96-96V192.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3v85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5v0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32h0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128v0V32 12 10.7C352 4.8 356.7 .1 362.6 0h.2c3.3 0 6.4 1.6 8.4 4.2l0 .1L384 21.3l27.2 36.3L416 64h64l4.8-6.4L512 21.3 524.8 4.3l0-.1c2-2.6 5.1-4.2 8.4-4.2h.2C539.3 .1 544 4.8 544 10.7V12 32v96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"anchor-circle-exclamation\":[640,512,[],\"e4ab\",\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\"truck-field\":[640,512,[],\"e58d\",\"M32 96c0-35.3 28.7-64 64-64H320c23.7 0 44.4 12.9 55.4 32h51.8c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2H544c35.3 0 64 28.7 64 64v32c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V288c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32V96zM384 224h85.9l-42.7-96H384v96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],route:[512,512,[],\"f4d7\",\"M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c53 0 96 43 96 96s-43 96-96 96H139.6c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-53 0-96-43-96-96s43-96 96-96h39.8c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"clipboard-question\":[384,512,[],\"e4e3\",\"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V314.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H158.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],panorama:[640,512,[],\"e209\",\"M45.6 32C20.4 32 0 52.4 0 77.6V434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6V77.6C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"],\"comment-medical\":[512,512,[],\"f7f5\",\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V272H176c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"],\"teeth-open\":[576,512,[],\"f62f\",\"M96 32C43 32 0 75 0 128v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-53-43-96-96-96H96zM224 96c26.5 0 48 21.5 48 48v56c0 13.3-10.7 24-24 24H200c-13.3 0-24-10.7-24-24V144c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48v56c0 13.3-10.7 24-24 24H328c-13.3 0-24-10.7-24-24V144zM96 128c26.5 0 48 21.5 48 48v24c0 13.3-10.7 24-24 24H72c-13.3 0-24-10.7-24-24V176c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48v24c0 13.3-10.7 24-24 24H456c-13.3 0-24-10.7-24-24V176zM96 480H480c53 0 96-43 96-96V352c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48zm80-48V344c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24v24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"],\"file-circle-minus\":[576,512,[],\"e4ed\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16s7.2 16 16 16H496c8.8 0 16-7.2 16-16z\"],tags:[512,512,[],\"f02c\",\"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"wine-glass\":[320,512,[127863],\"f4e3\",\"M32.1 29.3C33.5 12.8 47.4 0 64 0H256c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6V448h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H160 80c-17.7 0-32-14.3-32-32s14.3-32 32-32h48V348.4C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7H231.9l-5.3-64H93.4l-5.3 64z\"],\"forward-fast\":[512,512,[9197,\"fast-forward\"],\"f050\",\"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7V416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7V416c0 17.7 14.3 32 32 32s32-14.3 32-32V96c0-17.7-14.3-32-32-32s-32 14.3-32 32V214.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96V214.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96V416c0 12.4 7.2 23.7 18.4 29z\"],\"face-meh-blank\":[512,512,[128566,\"meh-blank\"],\"f5a4\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"square-parking\":[448,512,[127359,\"parking\"],\"f540\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM192 256h48c17.7 0 32-14.3 32-32s-14.3-32-32-32H192v64zm48 64H192v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 168c0-22.1 17.9-40 40-40h72c53 0 96 43 96 96s-43 96-96 96z\"],\"house-signal\":[576,512,[],\"e012\",\"M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6H464c26.5 0 48-21.5 48-48V256h32c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V208zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z\"],\"bars-progress\":[512,512,[\"tasks-alt\"],\"f828\",\"M448 160H320V128H448v32zM48 64C21.5 64 0 85.5 0 112v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zM448 352v32H192V352H448zM48 288c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V336c0-26.5-21.5-48-48-48H48z\"],\"faucet-drip\":[512,512,[128688],\"e006\",\"M224 0c17.7 0 32 14.3 32 32V44l96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12V32c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32h96l22.6-22.6c6-6 14.1-9.4 22.6-9.4H192V116.2l32-4 32 4V160h18.7c8.5 0 16.6 3.4 22.6 9.4L320 192h32c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32s-14.3-32-32-32H315.9c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48H32c-17.7 0-32-14.3-32-32V224zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1V480c0 17.7-14.3 32-32 32s-32-14.3-32-32v-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"],\"cart-flatbed\":[640,512,[\"dolly-flatbed\"],\"f474\",\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64H48c8.8 0 16 7.2 16 16V368c0 44.2 35.8 80 80 80h18.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H450.7c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H144c-8.8 0-16-7.2-16-16V80C128 35.8 92.2 0 48 0H32zM192 80V272c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H464V176c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1V32H240c-26.5 0-48 21.5-48 48z\"],\"ban-smoking\":[512,512,[128685,\"smoking-ban\"],\"f54d\",\"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32H384v32H333.3zm32 32H400c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H269.3L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48h32c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48H304c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96H112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H229.5z\"],terminal:[576,512,[],\"f120\",\"M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"mobile-button\":[384,512,[],\"f10b\",\"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"house-medical-flag\":[640,512,[],\"e514\",\"M480 0c17.7 0 32 14.3 32 32H624c8.8 0 16 7.2 16 16V176c0 8.8-7.2 16-16 16H512V512H448V192 32c0-17.7 14.3-32 32-32zM276.8 39.7L416 159V512h1l-.2 0H96c-17.7 0-32-14.3-32-32V288H32c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208v48H176c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H288V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16z\"],\"basket-shopping\":[576,512,[\"shopping-basket\"],\"f291\",\"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512H430c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32H458.4L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192H171.7L253.3 35.1zM192 304v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16zm128 16v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],tape:[576,512,[],\"f4db\",\"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H380.8zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\"bus-simple\":[448,512,[\"bus-alt\"],\"f55e\",\"M224 0C348.8 0 448 35.2 448 80V96 416c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32H64c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32V96 80C0 35.2 99.2 0 224 0zM64 128V256c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],eye:[576,512,[128065],\"f06e\",\"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"],\"face-sad-cry\":[512,512,[128557,\"sad-cry\"],\"f5b3\",\"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V477.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8V288c0-8.8-7.2-16-16-16s-16 7.2-16 16V493.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336v32c0 26.5 21.5 48 48 48s48-21.5 48-48V336c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\"audio-description\":[576,512,[],\"f29e\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9H150.9l-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2h42.2zM304 184c0-13.3 10.7-24 24-24h56c53 0 96 43 96 96s-43 96-96 96H328c-13.3 0-24-10.7-24-24V184zm48 24v96h32c26.5 0 48-21.5 48-48s-21.5-48-48-48H352z\"],\"person-military-to-person\":[512,512,[],\"e54c\",\"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9H184.1c8.8-.1 15.9-7.2 15.9-16V16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1H66.5C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256v32c0 17.7 14.3 32 32 32H192c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5V256c0-35.3-28.7-64-64-64H96c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32H448c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H352zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376v32l-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0v32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"],\"file-shield\":[576,512,[],\"e4f0\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v47l-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"],\"user-slash\":[640,512,[],\"f506\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7H514.3c3.9 0 7.6-.7 11-2.1l-261-205.6z\"],pen:[512,512,[128394],\"f304\",\"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"],\"tower-observation\":[512,512,[],\"e586\",\"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144v80c0 17.7-14.3 32-32 32h-4.9l32 192H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H384.5c-.4 0-.8 0-1.1 0H128.6c-.4 0-.8 0-1.1 0H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l32-192H128c-17.7 0-32-14.3-32-32V144c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448h117zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256H197.8zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16H336c8.8 0 16-7.2 16-16s-7.2-16-16-16H176z\"],\"file-code\":[384,512,[],\"f1c9\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],signal:[640,512,[128246,\"signal-5\",\"signal-perfect\"],\"f012\",\"M576 0c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM352 224V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V320c0-17.7 14.3-32 32-32zM96 416v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],bus:[576,512,[128653],\"f207\",\"M288 0C422.4 0 512 35.2 512 80V96l0 32c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H192v32c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h0V96h0V80C64 35.2 153.6 0 288 0zM128 160v96c0 17.7 14.3 32 32 32H272V128H160c-17.7 0-32 14.3-32 32zM304 288H416c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H304V288zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16H208c-8.8 0-16 7.2-16 16s7.2 16 16 16H368c8.8 0 16-7.2 16-16z\"],\"heart-circle-xmark\":[576,512,[],\"e501\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\"house-chimney\":[576,512,[63499,\"home-lg\"],\"e3af\",\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185V64c0-17.7-14.3-32-32-32H448c-17.7 0-32 14.3-32 32v36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v64 24c0 22.1 17.9 40 40 40h24 32.5c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1h16c22.1 0 40-17.9 40-40V455.8c.3-2.6 .5-5.3 .5-8.1l-.7-160.2h32z\"],\"window-maximize\":[512,512,[128470],\"f2d0\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM96 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"face-frown\":[512,512,[9785,\"frown\"],\"f119\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],prescription:[448,512,[],\"f5b1\",\"M32 0C14.3 0 0 14.3 0 32V192v96c0 17.7 14.3 32 32 32s32-14.3 32-32V224h50.7l128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0H32zM176 160H64V64H176c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],shop:[640,512,[\"store-alt\"],\"f54f\",\"M36.8 192H603.2c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0H121.7c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224V384v80c0 26.5 21.5 48 48 48H336c26.5 0 48-21.5 48-48V384 224H320V384H128V224H64zm448 0V480c0 17.7 14.3 32 32 32s32-14.3 32-32V224H512z\"],\"floppy-disk\":[448,512,[128190,128426,\"save\"],\"f0c7\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V173.3c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32H64zm0 96c0-17.7 14.3-32 32-32H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],vihara:[640,512,[],\"f6a7\",\"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9H480v56.1l6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4H544v65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24H576v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H352v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H24c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7V288H56.6c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1V176 128h-7.5c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128H320 224v64h72 48 72V128zM160 288v64H296h24 24H480V288H344 320h0H296 160z\"],\"scale-unbalanced\":[640,512,[\"balance-scale-left\"],\"f515\",\"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2V480c0 17.7 14.3 32 32 32H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V153.3c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288H439.6zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416H56.7l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"],\"sort-up\":[320,512,[\"sort-asc\"],\"f0de\",\"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H288c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"],\"comment-dots\":[512,512,[128172,62075,\"commenting\"],\"f4ad\",\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\"plant-wilt\":[512,512,[],\"e5aa\",\"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56v13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V120C464 53.7 410.3 0 344 0S224 53.7 224 120v21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120v13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1V248c0-30.9 25.1-56 56-56s56 25.1 56 56v32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V280 248 120z\"],diamond:[512,512,[9830],\"f219\",\"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"],\"face-grin-squint\":[512,512,[128518,\"grin-squint\"],\"f585\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"],\"hand-holding-dollar\":[576,512,[\"hand-holding-usd\"],\"f4c0\",\"M312 24V34.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8V232c0 13.3-10.7 24-24 24s-24-10.7-24-24V220.6c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2V24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"],bacterium:[512,512,[],\"e05a\",\"M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7l0 0-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3l0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"hand-pointer\":[448,512,[],\"f25a\",\"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40V188.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48v48 16 48c0 70.7-57.3 128-128 128l-16 0H240l-.1 0h-5.2c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16V304z\"],\"drum-steelpan\":[576,512,[],\"f56a\",\"M288 32c159.1 0 288 48 288 128V352c0 80-128.9 128-288 128S0 432 0 352V160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"],\"hand-scissors\":[512,512,[],\"f257\",\"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9l0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"],\"hands-praying\":[640,512,[\"praying-hands\"],\"f684\",\"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4v73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384v96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7V224c0-17.7 14.3-32 32-32s32 14.3 32 32v80c0 8.8 7.2 16 16 16s16-7.2 16-16V219.1c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8V304c0 8.8 7.2 16 16 16s16-7.2 16-16V224c0-17.7 14.3-32 32-32s32 14.3 32 32V342.3c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480V384c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2V238.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"],\"arrow-rotate-right\":[512,512,[8635,\"arrow-right-rotate\",\"arrow-rotate-forward\",\"redo\"],\"f01e\",\"M386.3 160H336c-17.7 0-32 14.3-32 32s14.3 32 32 32H464c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32s-32 14.3-32 32v51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"],biohazard:[576,512,[9763],\"f780\",\"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"],\"location-crosshairs\":[512,512,[\"location\"],\"f601\",\"M256 0c17.7 0 32 14.3 32 32V66.7C368.4 80.1 431.9 143.6 445.3 224H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H445.3C431.9 368.4 368.4 431.9 288 445.3V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C143.6 431.9 80.1 368.4 66.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H66.7C80.1 143.6 143.6 80.1 224 66.7V32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\"mars-double\":[640,512,[9891],\"f227\",\"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H312zm88 48h0v0l0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2V56c0-13.3-10.7-24-24-24H504c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2v.2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7V168c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"],\"child-dress\":[320,512,[],\"e59c\",\"M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h16v80c0 17.7 14.3 32 32 32s32-14.3 32-32V400h17.8c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400H88z\"],\"users-between-lines\":[640,512,[],\"e591\",\"M0 24C0 10.7 10.7 0 24 0H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24H616c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64h96c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6H64c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6h96c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32H493.6zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32h-224c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1h96c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\"lungs-virus\":[640,512,[],\"e067\",\"M320 0c17.7 0 32 14.3 32 32V156.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2V32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\"face-grin-tears\":[640,512,[128514,\"grin-tears\"],\"f588\",\"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0zm160 0l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0z\"],phone:[512,512,[128222,128379],\"f095\",\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"],\"calendar-xmark\":[448,512,[\"calendar-times\"],\"f273\",\"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"],\"child-reaching\":[384,512,[],\"e59d\",\"M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384h32v96c0 17.7 14.3 32 32 32s32-14.3 32-32V221.6c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"],\"head-side-virus\":[512,512,[],\"e064\",\"M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v64c0 35.3-28.7 64-64 64H320v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],\"user-gear\":[640,512,[\"user-cog\"],\"f4fe\",\"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7v.9c0 9.2 2.7 18.5 7.9 26.3H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8v17.7c0 7.8 4.8 14.8 11.6 18.7c6.8 3.9 15.1 4.5 21.8 .6l13.8-7.9c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-14.4 8.3c-6.5 3.7-10 10.9-10 18.4s3.5 14.7 10 18.4l14.4 8.3c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-13.8-7.9c-6.7-3.9-15.1-3.3-21.8 .6c-6.8 3.9-11.6 10.9-11.6 18.7v17.7c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8V467.8c0-7.9-4.9-14.9-11.7-18.9c-6.8-3.9-15.2-4.5-22-.6l-13.5 7.8c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l14-8.1c6.5-3.8 10.1-11.1 10.1-18.6s-3.5-14.8-10.1-18.6l-14-8.1c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l13.6 7.8c6.8 3.9 15.2 3.3 22-.6c6.9-3.9 11.7-11 11.7-18.9V218.2zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z\"],\"arrow-up-1-9\":[576,512,[\"sort-numeric-up\"],\"f163\",\"M450.7 38c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V108.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"],\"door-closed\":[576,512,[128682],\"f52a\",\"M96 64c0-35.3 28.7-64 64-64H416c35.3 0 64 28.7 64 64V448h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 144 32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96V64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"shield-virus\":[512,512,[],\"e06c\",\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\"dice-six\":[448,512,[9861],\"f526\",\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"mosquito-net\":[640,512,[],\"e52c\",\"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4V242.2L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5V137.9c0-14.9 10.1-27.3 23.8-31V63.7c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2V107c13.7 3.6 23.8 16.1 23.8 31v22.6l45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35v23.1l32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6v50c0 17.7-14.3 32-32 32s-32-14.3-32-32v-50l-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v48h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H608v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H528v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H448v16c0 8.8-7.2 16-16 16s-16-7.2-16-16V480H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V400H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V320H400c-8.8 0-16-7.2-16-16s7.2-16 16-16h16V272c0-8.8 7.2-16 16-16s16 7.2 16 16v16h48V272c0-8.8 7.2-16 16-16zm16 112h48V320H528v48zm0 80h48V400H528v48zM448 320v48h48V320H448zm0 80v48h48V400H448z\"],\"bridge-water\":[576,512,[],\"e4ce\",\"M0 96C0 78.3 14.3 64 32 64H544c17.7 0 32 14.3 32 32v35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6V352.5c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3h0l0-.5V256c0-53-43-96-96-96s-96 43-96 96V384l0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7V227.6C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6V96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"person-booth\":[576,512,[],\"f756\",\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64V32zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM224 512c17.7 0 32-14.3 32-32V320H192V480c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H320zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3V269.3l4.7 4.7c9 9 21.2 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H157.3l-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6v55.7l0 .9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V384l32 42.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V421.3c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"],\"text-width\":[448,512,[],\"f035\",\"M64 128V96H192l0 128H176c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H256l0-128H384v32c0 17.7 14.3 32 32 32s32-14.3 32-32V80c0-26.5-21.5-48-48-48H224 48C21.5 32 0 53.5 0 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V416H320v32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6v32H128V320c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"],\"hat-wizard\":[512,512,[],\"f6e8\",\"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6v1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416H240.9l11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416H64zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"pen-fancy\":[512,512,[128395,10002],\"f5ac\",\"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.4 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"],\"person-digging\":[576,512,[\"digging\"],\"f85e\",\"M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2H288c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7h32l22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V405.1l-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"],trash:[448,512,[],\"f1f8\",\"M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z\"],\"gauge-simple\":[512,512,[\"gauge-simple-med\",\"tachometer-average\"],\"f629\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3V88c0-13.3-10.7-24-24-24s-24 10.7-24 24V292.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\"book-medical\":[448,512,[],\"f7e6\",\"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM208 112v48H160c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h48c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H272V112c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16z\"],poo:[512,512,[128169],\"f2fe\",\"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80H160c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48H104c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72H440c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72H394.3c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64h-5.5c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3H339.7c6.8 0 12.3 5.5 12.3 12.3z\"],\"quote-right\":[448,512,[8221,\"quote-right-alt\"],\"f10e\",\"M448 296c0 66.3-53.7 120-120 120h-8c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H320c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72zm-256 0c0 66.3-53.7 120-120 120H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h8c30.9 0 56-25.1 56-56v-8H64c-35.3 0-64-28.7-64-64V160c0-35.3 28.7-64 64-64h64c35.3 0 64 28.7 64 64v32 32 72z\"],shirt:[640,512,[128085,\"t-shirt\",\"tshirt\"],\"f553\",\"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0h12.6c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7V448c0 35.3-28.7 64-64 64H224c-35.3 0-64-28.7-64-64V197.7l-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0h12.6z\"],cubes:[576,512,[],\"f1b3\",\"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5V204.7c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7V413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3V294.7c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3V92.5c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2V152.6L392 121v89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4V354.8L256 323.2v95.9l-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1V354.8L528 323.2v90.7c0 3.2-1.9 6-4.8 7.3z\"],divide:[448,512,[10135,247],\"f529\",\"M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H400z\"],\"tenge-sign\":[384,512,[8376,\"tenge\"],\"f7d7\",\"M0 64C0 46.3 14.3 32 32 32H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32H192 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V224H32c-17.7 0-32-14.3-32-32z\"],headphones:[512,512,[127911],\"f025\",\"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48V432c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80V384 336 288C0 146.6 114.6 32 256 32s256 114.6 256 256v48 48 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48V304c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"],\"hands-holding\":[640,512,[],\"f4c2\",\"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104v56 64V325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7H240c26.5 0 48-21.5 48-48V385.1c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3V224 144 104zm480 0v40 80 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2 0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2V464c0 26.5 21.5 48 48 48h66.7c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9V224 160 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"],\"hands-clapping\":[512,512,[],\"e1a8\",\"M336 16V80c0 8.8-7.2 16-16 16s-16-7.2-16-16V16c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16V192c0-17.7 14.3-32 32-32s32 14.3 32 32V345.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"],republican:[640,512,[],\"f75e\",\"M0 192C0 103.6 71.6 32 160 32H384c88.4 0 160 71.6 160 160v64H0V192zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160H320h96 32 64 32v32 80c0 8.8 7.2 16 16 16s16-7.2 16-16V352c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80s-80-35.8-80-80V352H448v32 64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V384H128v64c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V384 288H128z\"],\"arrow-left\":[448,512,[8592],\"f060\",\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\"person-circle-xmark\":[576,512,[],\"e543\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"],ruler:[512,512,[128207],\"f545\",\"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"],\"align-left\":[448,512,[],\"f036\",\"M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\"dice-d6\":[448,512,[],\"f6d1\",\"M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14V496c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381V184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8V381c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8V280c0-5.9 3.2-11.2 8.3-14l176-96z\"],restroom:[640,512,[],\"f7bd\",\"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V325.2c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128h8c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H120zM320 0c13.3 0 24 10.7 24 24V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V24c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480V384H422.2c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1H584v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H504v96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],j:[320,512,[106],\"4a\",\"M288 32c17.7 0 32 14.3 32 32V320c0 88.4-71.6 160-160 160S0 408.4 0 320V288c0-17.7 14.3-32 32-32s32 14.3 32 32v32c0 53 43 96 96 96s96-43 96-96V64c0-17.7 14.3-32 32-32z\"],\"users-viewfinder\":[640,512,[],\"e595\",\"M48 48h88c13.3 0 24-10.7 24-24s-10.7-24-24-24H32C14.3 0 0 14.3 0 32V136c0 13.3 10.7 24 24 24s24-10.7 24-24V48zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7h56.1c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4H149.3zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3H421.3c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6h56.1zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1H280c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24H408c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48h88v88c0 13.3 10.7 24 24 24s24-10.7 24-24V32c0-17.7-14.3-32-32-32H504c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464V376c0-13.3-10.7-24-24-24s-24 10.7-24 24V480c0 17.7 14.3 32 32 32H136c13.3 0 24-10.7 24-24s-10.7-24-24-24H48zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24H608c17.7 0 32-14.3 32-32V376c0-13.3-10.7-24-24-24s-24 10.7-24 24v88H504z\"],\"file-video\":[384,512,[],\"f1c8\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM64 288c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V288zM300.9 397.9L256 368V304l44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3V387.7c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"],\"up-right-from-square\":[512,512,[\"external-link-alt\"],\"f35d\",\"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"],\"table-cells\":[512,512,[\"th\"],\"f00a\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z\"],\"file-pdf\":[512,512,[],\"f1c1\",\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"],\"book-bible\":[448,512,[\"bible\"],\"f647\",\"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272V304c0 8.8-7.2 16-16 16H224c-8.8 0-16-7.2-16-16V192H160c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h48V80z\"],o:[448,512,[111],\"4f\",\"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z\"],\"suitcase-medical\":[512,512,[\"medkit\"],\"f0fa\",\"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96v32V480H384V128 96 56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM96 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H96V96zM416 480h32c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H416V480zM224 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"],\"user-secret\":[448,512,[128373],\"f21b\",\"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48H45.4C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4H342.7c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208H267.6c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2H168c-22.1 0-40-17.9-40-40V169.6c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4V184c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"],otter:[640,512,[129446],\"f700\",\"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6V144c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3V168c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6v.6c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384V336 320c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6V240c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16v32 16 48c0 8.8 7.2 16 16 16s16-7.2 16-16V204.3c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1h0c0 123.7-100.3 224-224 224h-1.1H256h-.6C132 480 32 380 32 256.6V256 216.8c-10.1-14.6-16-32.3-16-51.4V144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24h2.8C44.8 58.2 83.3 32 128 32h64c44.7 0 83.2 26.2 101.2 64H296c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4v21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-13.3 0-24 10.7-24 24v8h56.4c-15.2 17-24.4 39.4-24.4 64H320c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],\"person-dress\":[320,512,[\"female\"],\"f182\",\"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384H70.2c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3h11.6c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1H232v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H152v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"],\"comment-dollar\":[512,512,[],\"f651\",\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312v13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9V344c0 11-9 20-20 20s-20-9-20-20V329.4c-10.3-2.2-20-5.5-28.2-8.4l0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5V136c0-11 9-20 20-20s20 9 20 20z\"],\"business-time\":[640,512,[\"briefcase-clock\"],\"f64a\",\"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 352h8.2c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM320 352H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H360.2C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16v48h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H496c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16z\"],\"table-cells-large\":[512,512,[\"th-large\"],\"f009\",\"M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],\"book-tanakh\":[448,512,[\"tanakh\"],\"f827\",\"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24H124.9l13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24h55.4l27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48H305c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24H249.6L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48H111c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48h55.4l27.7 48-27.7 48H180.3l-27.7-48zm0-48l-13.9 24-13.9-24h27.7zm41.6-24L208 88l13.9 24H194.1zm69.3 24h27.7l-13.9 24-13.9-24zm13.9 72l13.9 24H263.4l13.9-24zm-55.4 48L208 280l-13.9-24h27.7z\"],\"phone-volume\":[512,512,[\"volume-control-phone\"],\"f2a0\",\"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"],\"hat-cowboy-side\":[640,512,[],\"f8c1\",\"M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1h10.7c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32h-2.7c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64H544L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9H162.9c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2V384z\"],\"clipboard-user\":[384,512,[],\"f7f3\",\"M192 0c-41.8 0-77.4 26.7-90.5 64H64C28.7 64 0 92.7 0 128V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H282.5C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80h64c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"],child:[320,512,[],\"f1ae\",\"M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V287.8L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V384H144z\"],\"lira-sign\":[320,512,[8356],\"f195\",\"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4V192H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H46c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H88.5l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H224c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V160.4z\"],satellite:[512,512,[128752],\"f7bf\",\"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"],\"plane-lock\":[640,512,[],\"e558\",\"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7v84.6l101.8 58.2C418 247.6 416 259.6 416 272v24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1V400l57.6 43.2c4 3 6.4 7.8 6.4 12.8v24 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8V297.3c0-5.7 3.1-11 8.1-13.9L192 178.3V93.7zM528 240c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],tag:[448,512,[127991],\"f02b\",\"M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],comment:[512,512,[128489,61669],\"f075\",\"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4l0 0 0 0 0 0 0 0 .3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"],\"cake-candles\":[448,512,[127874,\"birthday-cake\",\"cake\"],\"f1fd\",\"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6V72c0 22.1 17.9 40 40 40s40-17.9 40-40V69.2c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c-35.3 0-64 28.7-64 64v71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1 0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4l0 0 0 0 .1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8l0 0 0 0 0 0 .1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9V288c0-35.3-28.7-64-64-64V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H256V176c0-17.7-14.3-32-32-32s-32 14.3-32 32v48H128V176zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4V480c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32V394.6z\"],envelope:[512,512,[128386,9993,61443],\"f0e0\",\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"],\"angles-up\":[448,512,[\"angle-double-up\"],\"f102\",\"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"],paperclip:[448,512,[128206],\"f0c6\",\"M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"],\"arrow-right-to-city\":[640,512,[],\"e4b3\",\"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H146.7l-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"],ribbon:[448,512,[127895],\"f4d6\",\"M333.2 322.8l0 0-133.9-146 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65V149.1c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0h-76c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8V164c0 23.2 8.4 45.6 23.6 63.1l56 64.2 0 0 83.3 95.6 0 0 91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z\"],lungs:[640,512,[129729],\"f604\",\"M320 0c17.7 0 32 14.3 32 32V164.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2V165.3C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4v7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398V325l90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1v-.4l-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58V398c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89v-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3v45.5l9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5V32c0-17.7 14.3-32 32-32z\"],\"arrow-up-9-1\":[576,512,[\"sort-numeric-up-alt\"],\"f887\",\"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V146.3L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26v96h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H432 384c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V364.4l-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"],\"litecoin-sign\":[384,512,[],\"e1d3\",\"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64V213.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1V448c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V261.9l136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3V64z\"],\"border-none\":[448,512,[],\"f850\",\"M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"],\"circle-nodes\":[512,512,[],\"e4e2\",\"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"],\"parachute-box\":[512,512,[],\"f4cd\",\"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16H240V320H208c-7 0-13.7 1.5-19.7 4.2L68.2 192H96.5c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192h6L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7v96c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V368c0-7.8-1.9-15.2-5.2-21.7L487.1 192h6c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16h28.3L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2H272V192H383.5z\"],indent:[448,512,[],\"f03c\",\"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3V176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"],\"truck-field-un\":[640,512,[],\"e58e\",\"M96 32C60.7 32 32 60.7 32 96v32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32v32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288c0-35.3-28.7-64-64-64h-4.2c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38H375.4C364.4 44.9 343.7 32 320 32H96zm288 96h43.2l42.7 96H384V128zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52V144c0-8.8 7.2-16 16-16s16 7.2 16 16v96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V144c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144v64c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16v64c0 26.5-21.5 48-48 48s-48-21.5-48-48V144c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],hourglass:[384,512,[9203,62032,\"hourglass-empty\"],\"f254\",\"M0 32C0 14.3 14.3 0 32 0H64 320h32c17.7 0 32 14.3 32 32s-14.3 32-32 32V75c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1v11c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V437c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75V64C14.3 64 0 49.7 0 32zM96 64V75c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9V64H96zm0 384H288V437c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9v11z\"],mountain:[512,512,[127956],\"f6fc\",\"M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9H55.9C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8h49z\"],\"user-doctor\":[448,512,[\"user-md\"],\"f0f0\",\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1V362c27.6 7.1 48 32.2 48 62v40c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16s7.2-16 16-16V424c0-17.7-14.3-32-32-32s-32 14.3-32 32v24c8.8 0 16 7.2 16 16s-7.2 16-16 16H256c-8.8 0-16-7.2-16-16V424c0-29.8 20.4-54.9 48-62V304.9c-6-.6-12.1-.9-18.3-.9H178.3c-6.2 0-12.3 .3-18.3 .9v65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7V311.2zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"circle-info\":[512,512,[\"info-circle\"],\"f05a\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"cloud-meatball\":[512,512,[],\"f73b\",\"M0 224c0 53 43 96 96 96h44.7c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40H416c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],camera:[512,512,[62258,\"camera-alt\"],\"f030\",\"M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\"square-virus\":[448,512,[],\"e578\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],meteor:[512,512,[9732],\"f753\",\"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"car-on\":[512,512,[],\"e4dd\",\"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24v80c0 13.3 10.7 24 24 24s24-10.7 24-24V24zM185.8 224H326.2c6.8 0 12.8 4.3 15.1 10.6L360.3 288H151.7l19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344v40 64 32c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V448H384v32c0 17.7 14.3 32 32 32h16c17.7 0 32-14.3 32-32V448 384 344c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160H185.8c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"],sleigh:[640,512,[],\"f7cc\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96V256c0 53 43 96 96 96v32h64V352H384v32h64V352c53 0 96-43 96-96V160c17.7 0 32-14.3 32-32s-14.3-32-32-32H512 480c-17.7 0-32 14.3-32 32v41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7H55 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32v8c0 13.3-10.7 24-24 24H64c-17.7 0-32 14.3-32 32s14.3 32 32 32H552c48.6 0 88-39.4 88-88v-8z\"],\"arrow-down-1-9\":[576,512,[\"sort-numeric-asc\",\"sort-numeric-down\"],\"f162\",\"M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2V160H384c-17.7 0-32 14.3-32 32s14.3 32 32 32h48 48c17.7 0 32-14.3 32-32s-14.3-32-32-32H464V64c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V365.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"],\"hand-holding-droplet\":[576,512,[\"hand-holding-water\"],\"f4c1\",\"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3V160c0 53-43 96-96 96s-96-43-96-96v-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z\"],water:[576,512,[],\"f773\",\"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7l0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"calendar-check\":[448,512,[],\"f274\",\"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"],braille:[640,512,[],\"f2a1\",\"M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\"prescription-bottle-medical\":[384,512,[\"prescription-bottle-alt\"],\"f486\",\"M0 32C0 14.3 14.3 0 32 0H352c17.7 0 32 14.3 32 32V64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64V32zm32 96H352V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zM160 240v48H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V352h48c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16z\"],landmark:[512,512,[127963],\"f66f\",\"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8H32c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9V104l4.4-1.6L240.1 4.2zM64 224h64V416h40V224h64V416h48V224h64V416h40V224h64V420.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V224z\"],truck:[640,512,[128666,9951],\"f0d1\",\"M48 0C21.5 0 0 21.5 0 48V368c0 26.5 21.5 48 48 48H64c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H48zM416 160h50.7L544 237.3V256H416V160zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],crosshairs:[512,512,[],\"f05b\",\"M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"person-cane\":[448,512,[],\"e53c\",\"M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8V488c0 13.3 10.7 24 24 24s24-10.7 24-24V376c0-30.9-25.1-56-56-56s-56 25.1-56 56v8c0 13.3 10.7 24 24 24s24-10.7 24-24v-8z\"],tent:[576,512,[],\"e57d\",\"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7H464 435.8c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9V480c0 17.7-14.3 32-32 32H240 32c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"],\"vest-patches\":[448,512,[],\"e086\",\"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3V464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512H48c-26.5 0-48-21.5-48-48V270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6V128 54.3 48C64 21.5 85.5 0 112 0h4.5c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0H336c26.5 0 48 21.5 48 48v6.3V128v17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6V464c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V295.8c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280v8 32c0 8.8 7.2 16 16 16h32 8c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\"check-double\":[448,512,[],\"f560\",\"M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"],\"arrow-down-a-z\":[576,512,[\"sort-alpha-asc\",\"sort-alpha-down\"],\"f15d\",\"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z\"],\"money-bill-wheat\":[512,512,[],\"e52a\",\"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88H136c13.3 0 24 10.7 24 24s-10.7 24-24 24H24c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24h48c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48H464c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V304zM48 416v48H96c0-26.5-21.5-48-48-48zM96 304H48v48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48h48V416zM416 304c0 26.5 21.5 48 48 48V304H416zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],cookie:[512,512,[127850],\"f563\",\"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"arrow-rotate-left\":[512,512,[8634,\"arrow-left-rotate\",\"arrow-rotate-back\",\"arrow-rotate-backward\",\"undo\"],\"f0e2\",\"M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"],\"hard-drive\":[512,512,[128436,\"hdd\"],\"f0a0\",\"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"face-grin-squint-tears\":[512,512,[129315,\"grin-squint-tears\"],\"f586\",\"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-5.6 .9-10.3-3.9-9.5-9.5c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c5.6-.9 10.3 3.9 9.5 9.5c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.4 202.3c-4.8-11.9-20.9-10.9-26.9 .4c-19.4 36.7-46.3 73.2-79.8 106.7s-70 60.3-106.7 79.8c-11.3 6-12.3 22.1-.4 26.9c59.4 24.1 129.9 12.2 177.9-35.8s59.9-118.5 35.8-177.9zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"],dumbbell:[640,512,[],\"f44b\",\"M96 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V224v64V448c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V384H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H96V64zm448 0v64h32c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32v64c0 17.7-14.3 32-32 32H544v64c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32V288 224 64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32zM416 224v64H224V224H416z\"],\"rectangle-list\":[576,512,[\"list-alt\"],\"f022\",\"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24H448c13.3 0 24-10.7 24-24s-10.7-24-24-24H224z\"],\"tarp-droplet\":[576,512,[],\"e57c\",\"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128H197.5c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64H512c35.3 0 64 28.7 64 64V352H448c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zM448 512l0-128H576L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"house-medical-circle-check\":[640,512,[],\"e511\",\"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\"person-skiing-nordic\":[576,512,[\"skiing-nordic\"],\"f7ca\",\"M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464H202.8l41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464H99.7l54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H159.3c.4 0 .9 0 1.3 0H319.3c.5 0 1 0 1.4 0H504c39.8 0 72-32.2 72-72v-8c0-13.3-10.7-24-24-24s-24 10.7-24 24v8c0 13.3-10.7 24-24 24H434.6l27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32H426.7c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464H357.8l21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288h2.7z\"],\"calendar-plus\":[448,512,[],\"f271\",\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192zM224 248c13.3 0 24 10.7 24 24v56h56c13.3 0 24 10.7 24 24s-10.7 24-24 24H248v56c0 13.3-10.7 24-24 24s-24-10.7-24-24V376H144c-13.3 0-24-10.7-24-24s10.7-24 24-24h56V272c0-13.3 10.7-24 24-24z\"],\"plane-arrival\":[640,512,[128748],\"f5af\",\"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0h40.1c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"circle-left\":[512,512,[61840,\"arrow-alt-circle-left\"],\"f359\",\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM217.4 376.9L117.5 269.8c-3.5-3.8-5.5-8.7-5.5-13.8s2-10.1 5.5-13.8l99.9-107.1c4.2-4.5 10.1-7.1 16.3-7.1c12.3 0 22.3 10 22.3 22.3l0 57.7 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 57.7c0 12.3-10 22.3-22.3 22.3c-6.2 0-12.1-2.6-16.3-7.1z\"],\"train-subway\":[448,512,[\"subway\"],\"f239\",\"M96 0C43 0 0 43 0 96V352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512H82.7c8.5 0 16.6-3.4 22.6-9.4L160 448H288l54.6 54.6c6 6 14.1 9.4 22.6 9.4H405c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9V96c0-53-43-96-96-96H96zM64 128c0-17.7 14.3-32 32-32h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V128zM272 96h80c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H272c-17.7 0-32-14.3-32-32V128c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"chart-gantt\":[512,512,[],\"e0e4\",\"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32zm96 64H352c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"indian-rupee-sign\":[320,512,[\"indian-rupee\",\"inr\"],\"e1bc\",\"M0 64C0 46.3 14.3 32 32 32H96h16H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H231.8c9.6 14.4 16.7 30.6 20.7 48H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H252.4c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256h80c32.8 0 61-19.7 73.3-48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H185.3C173 115.7 144.8 96 112 96H96 32C14.3 96 0 81.7 0 64z\"],\"crop-simple\":[512,512,[\"crop-alt\"],\"f565\",\"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32V64H32C14.3 64 0 78.3 0 96s14.3 32 32 32H64V384c0 35.3 28.7 64 64 64H352V384H128V32zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H448l0-256c0-35.3-28.7-64-64-64L160 64v64l224 0 0 352z\"],\"money-bill-1\":[576,512,[\"money-bill-alt\"],\"f3d1\",\"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm64 320H64V320c35.3 0 64 28.7 64 64zM64 192V128h64c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"],\"left-long\":[512,512,[\"long-arrow-alt-left\"],\"f30a\",\"M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z\"],dna:[448,512,[129516],\"f471\",\"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9l0 0 0 0 0 0-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5H283.3c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32H64c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32H384c0-17.7 14.3-32 32-32zM338.6 384H109.4c-10.1 10.6-18.6 21.3-25.5 32H364.1c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128H338.6c10.1-10.7 18.6-21.3 25.5-32H83.9c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5H164.7z\"],\"virus-slash\":[640,512,[],\"e075\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H532.5c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V43.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h11.5c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6V480c0 17.7 14.3 32 32 32s32-14.3 32-32V468.5c0-31.2 23.6-52.7 50-55.7z\"],minus:[448,512,[8211,8722,10134,\"subtract\"],\"f068\",\"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"],chess:[512,512,[],\"f439\",\"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16V32H96c-8.8 0-16 7.2-16 16s7.2 16 16 16h16V96H60.2C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208H72c-13.3 0-24 10.7-24 24s10.7 24 24 24h4L60 384H196L180 256h4c13.3 0 24-10.7 24-24s-10.7-24-24-24h-1.8l32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2H144V64h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H144V16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24H232c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416H48zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24H488c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416H336zM304 208v51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384H462.5l-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7V208c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16v16H424V208c0-8.8-7.2-16-16-16H392c-8.8 0-16 7.2-16 16v16H352V208c0-8.8-7.2-16-16-16H320c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16v32H384V304z\"],\"arrow-left-long\":[512,512,[\"long-arrow-left\"],\"f177\",\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"],\"plug-circle-check\":[576,512,[],\"e55c\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"street-view\":[512,512,[],\"f21d\",\"M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64v48c0 17.7 14.3 32 32 32h1.8l11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5h38.7c16.3 0 30-12.3 31.8-28.5L318.2 304H320c17.7 0 32-14.3 32-32V224c0-35.3-28.7-64-64-64H224zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"],\"franc-sign\":[320,512,[],\"e18f\",\"M80 32C62.3 32 48 46.3 48 64V224v96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H48v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V256H256c17.7 0 32-14.3 32-32s-14.3-32-32-32H112V96H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z\"],\"volume-off\":[320,512,[],\"f026\",\"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160H64c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64h67.8L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448V64z\"],\"hands-asl-interpreting\":[640,512,[\"american-sign-language-interpreting\",\"asl-interpreting\",\"hands-american-sign-language-interpreting\"],\"f2a3\",\"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7V256c0 70.7 57.3 128 128 128h72 8v-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2V256c0-70.7-57.3-128-128-128H440h-8v.3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"],gear:[512,512,[9881,\"cog\"],\"f013\",\"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\"droplet-slash\":[640,512,[\"tint-slash\"],\"f5c7\",\"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.1 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0h-1.8c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],mosque:[640,512,[128332],\"f678\",\"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5l0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4H221.8c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6l0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H192c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32H608c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H560V440c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H448V454c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454v58H288zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126v2H0v-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160H160V296.6c-19.1 11.1-32 31.7-32 55.4V480c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2H48c-26.5 0-48-21.5-48-48V176 160z\"],mosquito:[640,512,[],\"e52b\",\"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"],\"star-of-david\":[512,512,[10017],\"f69a\",\"M404.2 309.5L383.1 344h42.3l-21.1-34.5zM371.4 256l-54-88H194.6l-54 88 54 88H317.4l54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4H348.7l-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400H53.4C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112H163.3l56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112H458.6c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168H383.1zM283 112L256 68l-27 44h54zM128.9 168H86.6l21.1 34.5L128.9 168zM107.8 309.5L86.6 344h42.3l-21.1-34.5zM229 400l27 44 27-44H229z\"],\"person-military-rifle\":[512,512,[],\"e54b\",\"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4V48c0 8.8-7.2 16-16 16H185c-13.8 0-25-11.2-25-25zm17.6 57H334.4c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7V480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9h50.4c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512H192c-17.7 0-32-14.3-32-32V369.7l-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"cart-shopping\":[576,512,[128722,\"shopping-cart\"],\"f07a\",\"M0 24C0 10.7 10.7 0 24 0H69.5c22 0 41.5 12.8 50.6 32h411c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3H170.7l5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5H488c13.3 0 24 10.7 24 24s-10.7 24-24 24H199.7c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5H24C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],vials:[512,512,[],\"f493\",\"M0 64C0 46.3 14.3 32 32 32H88h48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96C14.3 96 0 81.7 0 64zM136 96H88V256h48V96zM288 64c0-17.7 14.3-32 32-32h56 48 56c17.7 0 32 14.3 32 32s-14.3 32-32 32V400c0 44.2-35.8 80-80 80s-80-35.8-80-80V96c-17.7 0-32-14.3-32-32zM424 96H376V256h48V96z\"],\"plug-circle-plus\":[576,512,[],\"e55f\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208v48h48c8.8 0 16 7.2 16 16s-7.2 16-16 16H448v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V384H368c-8.8 0-16-7.2-16-16s7.2-16 16-16h48V304c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\"place-of-worship\":[640,512,[],\"f67f\",\"M224 109.3V217.6L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2V512h96V416c0-35.3 28.7-64 64-64s64 28.7 64 64v96h96V283.2c0-16.9-8.8-32.5-23.3-41.2L416 217.6V109.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4V464c0 26.5 21.5 48 48 48h80V273.6L24.9 330.3zM592 512c26.5 0 48-21.5 48-48V372.4c0-17.5-9.5-33.6-24.9-42.1L512 273.6V512h80z\"],\"grip-vertical\":[320,512,[],\"f58e\",\"M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z\"],\"arrow-turn-up\":[384,512,[\"level-up\"],\"f148\",\"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"],u:[384,512,[117],\"55\",\"M32 32c17.7 0 32 14.3 32 32V288c0 70.7 57.3 128 128 128s128-57.3 128-128V64c0-17.7 14.3-32 32-32s32 14.3 32 32V288c0 106-86 192-192 192S0 394 0 288V64C0 46.3 14.3 32 32 32z\"],\"square-root-variable\":[576,512,[\"square-root-alt\"],\"f698\",\"M282.6 78.1c8-27.3 33-46.1 61.4-46.1H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H344L238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H77.6c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"],clock:[512,512,[128339,\"clock-four\"],\"f017\",\"M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\"backward-step\":[320,512,[\"step-backward\"],\"f048\",\"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29V96c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241V96c0-17.7-14.3-32-32-32S0 78.3 0 96V416c0 17.7 14.3 32 32 32s32-14.3 32-32V271l11.5 9.6 192 160z\"],pallet:[640,512,[],\"f482\",\"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v64H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H96 320 544h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H576V384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H544 320 96 32zm96 64H288v64H128V384zm224 0H512v64H352V384z\"],faucet:[512,512,[],\"e005\",\"M192 96v12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12V96c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H132.1c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48H352c17.7 0 32 14.3 32 32s14.3 32 32 32h64c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160H320l-22.6-22.6c-6-6-14.1-9.4-22.6-9.4H256V180.2l-32-4-32 4V224H173.3c-8.5 0-16.6 3.4-22.6 9.4L128 256H32z\"],\"baseball-bat-ball\":[512,512,[],\"f432\",\"M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z\"],s:[320,512,[115],\"53\",\"M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"],timeline:[640,512,[],\"e29c\",\"M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H288v54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V288H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V169.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3V224H160V169.3zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],keyboard:[576,512,[9e3],\"f11c\",\"M64 64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64H64zm16 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V144zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V336zM272 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM368 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V240zM464 128h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V240zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H464c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16z\"],\"caret-down\":[320,512,[],\"f0d7\",\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"],\"house-chimney-medical\":[576,512,[\"clinic-medical\"],\"f7f2\",\"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h48c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H320V208c0-8.8-7.2-16-16-16H272z\"],\"temperature-three-quarters\":[320,512,[\"temperature-3\",\"thermometer-3\",\"thermometer-three-quarters\"],\"f2c8\",\"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V144c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"],\"mobile-screen\":[384,512,[\"mobile-android-alt\"],\"f3cf\",\"M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z\"],\"plane-up\":[512,512,[],\"e22d\",\"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6v56.7c0 10.9-10.7 18.6-21.1 15.2L320 320v80l57.6 43.2c4 3 6.4 7.8 6.4 12.8v42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14V456c0-5 2.4-9.8 6.4-12.8L192 400V320L21.1 377C10.7 380.4 0 372.7 0 361.8V305.1c0-10.7 5.3-20.7 14.2-26.6L192 160V93.7z\"],\"piggy-bank\":[576,512,[],\"f4d3\",\"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7H256c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96h11.5c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9H544c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H512c-9.1 12.1-19.9 22.9-32 32v64c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32V448H256v32c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V416c-34.9-26.2-58.7-66.3-63.2-112H68c-37.6 0-68-30.4-68-68s30.4-68 68-68h4c13.3 0 24 10.7 24 24s-10.7 24-24 24H68c-11 0-20 9-20 20s9 20 20 20H99.2c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2H384zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\"battery-half\":[576,512,[\"battery-3\"],\"f242\",\"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z\"],\"mountain-city\":[640,512,[],\"e52e\",\"M336 0c-26.5 0-48 21.5-48 48v92.1l71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16h-3.5l73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3H592c26.5 0 48-21.5 48-48V240c0-26.5-21.5-48-48-48H568V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v72H480V48c0-26.5-21.5-48-48-48H336zm32 64h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V80c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16V176zm160 96c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V272zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H528c-8.8 0-16-7.2-16-16V368c0-8.8 7.2-16 16-16zM224 188.9L283.8 288H223l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512H413.5c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"],coins:[512,512,[],\"f51e\",\"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2l0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5V176c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336V300.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4V304v5.7V336zm32 0V304 278.1c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5V272c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5V432c0 44.2-86 80-192 80S0 476.2 0 432V396.6c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"],khanda:[512,512,[9772],\"f66d\",\"M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9l0 0 0 0 0 0 0 0-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1 0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5v19.8l35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3l0 0 0 0 .1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1 0 0 0 0s0 0-10.2-12.3l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4v28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7V424.1l-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3l0 0 0 0-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0 0 0 0 0s0 0 7.2 14.3l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6V343.5l-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9l0 0 0 0 0 0 .1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1 0 0 0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z\"],sliders:[512,512,[\"sliders-h\"],\"f1de\",\"M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z\"],\"folder-tree\":[576,512,[],\"f802\",\"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32v96V384c0 35.3 28.7 64 64 64H256V384H64V160H256V96H64V32zM288 192c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V192zm0 288c0 17.7 14.3 32 32 32H544c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H445.3c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4H320c-17.7 0-32 14.3-32 32V480z\"],\"network-wired\":[640,512,[],\"f6ff\",\"M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z\"],\"map-pin\":[320,512,[128205],\"f276\",\"M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480V317.1c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],hamsa:[512,512,[],\"f665\",\"M34.6 288H80c8.8 0 16-7.2 16-16V72c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V40c0-22.1 17.9-40 40-40s40 17.9 40 40V204c0 11 9 20 20 20s20-9 20-20V72c0-22.1 17.9-40 40-40s40 17.9 40 40V272c0 8.8 7.2 16 16 16h45.4c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"cent-sign\":[384,512,[],\"e3f5\",\"M224 0c17.7 0 32 14.3 32 32V66.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.3C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3V32c0-17.7 14.3-32 32-32z\"],flask:[448,512,[],\"f0c3\",\"M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z\"],\"person-pregnant\":[384,512,[],\"e31e\",\"M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31V296.9l-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1h1.1 12.5H192c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3v32c0 17.7-14.3 32-32 32H304 264v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384h-8-8v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V383z\"],\"wand-sparkles\":[512,512,[],\"f72b\",\"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7V176c0 8.8-7.2 16-16 16H384.2c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9V272c0-8.8 7.2-16 16-16h34.6c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"],\"ellipsis-vertical\":[128,512,[\"ellipsis-v\"],\"f142\",\"M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z\"],ticket:[576,512,[127903],\"f145\",\"M64 64C28.7 64 0 92.7 0 128v64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320v64c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V320c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6V128c0-35.3-28.7-64-64-64H64zm64 112l0 160c0 8.8 7.2 16 16 16H432c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H128c-17.7 0-32-14.3-32-32V160z\"],\"power-off\":[512,512,[9211],\"f011\",\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V256c0 17.7 14.3 32 32 32s32-14.3 32-32V32zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"],\"right-long\":[512,512,[\"long-arrow-alt-right\"],\"f30b\",\"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z\"],\"flag-usa\":[448,512,[],\"f74d\",\"M32 0C49.7 0 64 14.3 64 32V48l69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1v36.1l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9v32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3v62l-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1v32.7l70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3v33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400v80c0 17.7-14.3 32-32 32s-32-14.3-32-32V416 345.5 312.8 249.5 216.8 153.5 120.8 64 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"laptop-file\":[640,512,[],\"e51d\",\"M128 0C92.7 0 64 28.7 64 64V288H19.2C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384H320V288H128V64H448V96h64V64c0-35.3-28.7-64-64-64H128zM512 128H400c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H592c26.5 0 48-21.5 48-48V256H544c-17.7 0-32-14.3-32-32V128zm32 0v96h96l-96-96z\"],tty:[512,512,[\"teletype\"],\"f1e4\",\"M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4V144c-49.6-18.1-104-18.1-153.6 0v54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V336zm0 96c0-8.8 7.2-16 16-16H80c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H48c-8.8 0-16-7.2-16-16V432zM144 320h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V336zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H336c-8.8 0-16-7.2-16-16V336c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V336zm16 80h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V432c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H144c-8.8 0-16-7.2-16-16V432z\"],\"diagram-next\":[512,512,[],\"e476\",\"M512 160c0 35.3-28.7 64-64 64H280v64h46.1c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41H232V224H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64v64zM448 416V352H365.3l.4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4H64v64H210.7l5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7H448z\"],\"person-rifle\":[576,512,[],\"e54e\",\"M265.2 192c25.4 0 49.8 7.1 70.8 19.9V512H144V337.7L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8h50.4zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16V132.3c9.6 5.5 16 15.9 16 27.7V269.3l16-5.3V208c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v84.5c0 6.9-4.4 13-10.9 15.2L480 325.3V352h48c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16H484l23 92.1c2.5 10.1-5.1 19.9-15.5 19.9H432c-8.8 0-16-7.2-16-16V400H400c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32V160c0-11.8 6.4-22.2 16-27.7V32c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 16z\"],\"house-medical-circle-exclamation\":[640,512,[],\"e512\",\"M320 368c0 59.5 29.5 112.1 74.8 144H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64H320V208c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16v48H208c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\"closed-captioning\":[576,512,[],\"f20a\",\"M0 96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"],\"person-hiking\":[384,512,[\"hiking\"],\"f6ec\",\"M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3l-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208H336V184c0-13.3 10.7-24 24-24s24 10.7 24 24v55.8c0 .1 0 .2 0 .2s0 .2 0 .2V488c0 13.3-10.7 24-24 24s-24-10.7-24-24V272H296.6c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59h4.2c15.6 0 27.1 14.7 23.3 29.8z\"],\"venus-double\":[640,512,[9890],\"f226\",\"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H224v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H128c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1V384h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H480v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h32V349.1c-26.6-4.9-51.1-15.7-72-31.1z\"],images:[576,512,[],\"f302\",\"M160 32c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H328 280 200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120V344c0 75.1 60.9 136 136 136H456c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z\"],calculator:[384,512,[128425],\"f1ec\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM96 64H288c17.7 0 32 14.3 32 32v32c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"],\"people-pulling\":[576,512,[],\"e535\",\"M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64V320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352h15.7l30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128H64zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"],n:[384,512,[110],\"4e\",\"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V448c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 50.5 8.4 38.5 21.1 33.9z\"],\"cable-car\":[512,512,[128673,57551,\"tram\"],\"f7da\",\"M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64H232V157.5l-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5V224H416c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V288zm64 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H96zm112 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H224c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16H352z\"],\"cloud-rain\":[512,512,[127783,9926],\"f73d\",\"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96H96zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3v3c0 26.5-21.5 48-48 48s-48-21.5-48-48v-3c0-8.5 2.1-16.9 6.2-24.3z\"],\"building-circle-xmark\":[640,512,[],\"e4d4\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],ship:[576,512,[128674],\"f21a\",\"M192 32c0-17.7 14.3-32 32-32H352c17.7 0 32 14.3 32 32V64h48c26.5 0 48 21.5 48 48V240l44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240V112c0-26.5 21.5-48 48-48h48V32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7V128H160v90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"arrows-down-to-line\":[576,512,[],\"e4b8\",\"M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"],download:[512,512,[],\"f019\",\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"face-grin\":[512,512,[128512,\"grin\"],\"f580\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"delete-left\":[576,512,[9003,\"backspace\"],\"f55a\",\"M576 128c0-35.3-28.7-64-64-64H205.3c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7H512c35.3 0 64-28.7 64-64V128zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\"eye-dropper\":[512,512,[\"eye-dropper-empty\",\"eyedropper\"],\"f1fb\",\"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6v42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480h42.4c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7H96V379.9c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"],\"file-circle-check\":[576,512,[],\"e5a0\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],forward:[512,512,[9193],\"f04e\",\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416V96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3V256v41.7L52.5 440.6zM256 352V256 128 96c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29V352z\"],mobile:[384,512,[128241,\"mobile-android\",\"mobile-phone\"],\"f3ce\",\"M80 0C44.7 0 16 28.7 16 64V448c0 35.3 28.7 64 64 64H304c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H80zm80 432h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"face-meh\":[512,512,[128528,\"meh\"],\"f11a\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336H352c8.8 0 16 7.2 16 16s-7.2 16-16 16H160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"align-center\":[448,512,[],\"f037\",\"M352 64c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32H320c17.7 0 32-14.3 32-32z\"],\"book-skull\":[448,512,[\"book-dead\"],\"f6b7\",\"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2V176c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V163.2c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"],\"id-card\":[576,512,[62147,\"drivers-license\"],\"f2c2\",\"M0 96l576 0c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm0 32V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V128H0zM64 405.3c0-29.5 23.9-53.3 53.3-53.3H234.7c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7H74.7c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16H496c8.8 0 16 7.2 16 16s-7.2 16-16 16H368c-8.8 0-16-7.2-16-16z\"],outdent:[448,512,[\"dedent\"],\"f03b\",\"M0 64C0 46.3 14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32zm32 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6V335.3c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z\"],\"heart-circle-exclamation\":[576,512,[],\"e4fe\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],house:[576,512,[127968,63498,63500,\"home\",\"home-alt\",\"home-lg-alt\"],\"f015\",\"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"],\"calendar-week\":[448,512,[],\"f784\",\"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16H368c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"],\"laptop-medical\":[640,512,[],\"f812\",\"M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H352v48c0 8.8-7.2 16-16 16H304c-8.8 0-16-7.2-16-16V272H240c-8.8 0-16-7.2-16-16V224c0-8.8 7.2-16 16-16h48V160z\"],b:[320,512,[98],\"42\",\"M64 32C28.7 32 0 60.7 0 96V256 416c0 35.3 28.7 64 64 64H192c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128H64zm96 192H64V96h96c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288h96 32c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V288z\"],\"file-medical\":[384,512,[],\"f477\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM160 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H224v48c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V352H112c-8.8 0-16-7.2-16-16V304c0-8.8 7.2-16 16-16h48V240z\"],\"dice-one\":[448,512,[9856],\"f525\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"kiwi-bird\":[576,512,[],\"f535\",\"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4H448c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3V224c0-70.7-57.3-128-128-128H392.3c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3V456c0 13.3 10.7 24 24 24s24-10.7 24-24V410c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7V456c0 13.3 10.7 24 24 24s24-10.7 24-24V405.1c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"arrow-right-arrow-left\":[448,512,[8644,\"exchange\"],\"f0ec\",\"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"],\"rotate-right\":[512,512,[\"redo-alt\",\"rotate-forward\"],\"f2f9\",\"M463.5 224H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5z\"],utensils:[448,512,[127860,61685,\"cutlery\"],\"f2e7\",\"M416 0C400 0 288 32 288 176V288c0 35.3 28.7 64 64 64h32V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352 240 32c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7V480c0 17.7 14.3 32 32 32s32-14.3 32-32V255.6c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16V150.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8V16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"],\"arrow-up-wide-short\":[576,512,[\"sort-amount-up\"],\"f161\",\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\"mill-sign\":[384,512,[],\"e1ed\",\"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128v80V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-26.5 21.5-48 48-48s48 21.5 48 48v42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32V261.5l35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48V416c0 17.7 14.3 32 32 32s32-14.3 32-32V208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"],\"bowl-rice\":[512,512,[],\"e2eb\",\"M176 56c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24zm24 48h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H200c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176H72c13.3 0 24 10.7 24 24s-10.7 24-24 24H56c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256H484.6c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28H140.2c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H152c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H104c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H344c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H440c-13.3 0-24-10.7-24-24zm-24-96h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H392c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H296c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],skull:[512,512,[128128],\"f54c\",\"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1v64c0 26.5 21.5 48 48 48h48V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h64V464c0-8.8 7.2-16 16-16s16 7.2 16 16v48h48c26.5 0 48-21.5 48-48V400c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\"tower-broadcast\":[576,512,[\"broadcast-tower\"],\"f519\",\"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V183.4c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"],\"truck-pickup\":[640,512,[128763],\"f63c\",\"M368.6 96l76.8 96H288V96h80.6zM224 80V192H64c-17.7 0-32 14.3-32 32v64c-17.7 0-32 14.3-32 32s14.3 32 32 32H65.1c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16h66.3c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16H608c17.7 0 32-14.3 32-32s-14.3-32-32-32V224c0-17.7-14.3-32-32-32H527.4L418.6 56c-12.1-15.2-30.5-24-50-24H272c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z\"],\"up-long\":[320,512,[\"long-arrow-alt-up\"],\"f30c\",\"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192H96l0 288c0 17.7 14.3 32 32 32h64c17.7 0 32-14.3 32-32l0-288h72c9.6 0 18.2-5.7 22-14.5z\"],stop:[384,512,[9209],\"f04d\",\"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"],\"code-merge\":[448,512,[],\"f387\",\"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3V358.7C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3V272c26.7 20.1 60 32 96 32h86.7c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48H208c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],upload:[512,512,[],\"f093\",\"M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],hurricane:[384,512,[],\"f751\",\"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9V81.2c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2V430.2c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],mound:[576,512,[],\"e52d\",\"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"],\"toilet-portable\":[320,512,[],\"e583\",\"M0 32V64H320V32c0-17.7-14.3-32-32-32H32C14.3 0 0 14.3 0 32zM24 96H0v24V488c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H272v8c0 13.3 10.7 24 24 24s24-10.7 24-24V120 96H296 24zM256 240v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V240c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\"compact-disc\":[512,512,[128191,128192,128440],\"f51f\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"],\"file-arrow-down\":[384,512,[\"file-download\"],\"f56d\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],caravan:[640,512,[],\"f8ff\",\"M0 112C0 67.8 35.8 32 80 32H416c88.4 0 160 71.6 160 160V352h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0H288c0 53-43 96-96 96s-96-43-96-96H80c-44.2 0-80-35.8-80-80V112zM320 352H448V256H416c-8.8 0-16-7.2-16-16s7.2-16 16-16h32V160c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32V352zM96 128c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H96zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\"shield-cat\":[512,512,[],\"e572\",\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4h.2c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4h48c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3h.2c5.8 0 10.4 4.7 10.4 10.4V272c0 53-43 96-96 96s-96-43-96-96V154.4zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],bolt:[448,512,[9889,\"zap\"],\"f0e7\",\"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z\"],\"glass-water\":[384,512,[],\"e4f4\",\"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM73 156.5L66.4 64H317.6L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"],\"oil-well\":[576,512,[],\"e532\",\"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6V184c0-13.3-10.7-24-24-24s-24 10.7-24 24V448H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H406.7L340 257.5l-62.2 16.1L305.3 352H238.7L265 277l-74.6 19.3L137.3 448H96V288.8l337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32H327.7l11.2 32H205.1z\"],vault:[576,512,[],\"e2c5\",\"M64 0C28.7 0 0 28.7 0 64V416c0 35.3 28.7 64 64 64H80l16 32h64l16-32H400l16 32h64l16-32h16c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3V336c0 8.8-7.2 16-16 16s-16-7.2-16-16V221.3c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"],mars:[448,512,[9794],\"f222\",\"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8H424c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80l0 0h0v0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],toilet:[448,512,[128701],\"f7d8\",\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48h8V196.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3H352c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4V48h8c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8l0 .1 0 .3zM328.2 384l-.2 .5 0-.5h.2zM112 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"plane-circle-xmark\":[640,512,[],\"e557\",\"M256 0c-35 0-64 59.5-64 93.7v84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9v65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8v42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3V93.7C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\"yen-sign\":[320,512,[165,\"cny\",\"jpy\",\"rmb\",\"yen\"],\"f157\",\"M58.6 46.2C48.8 31.5 29 27.6 14.3 37.4S-4.4 67 5.4 81.7L100.2 224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v32H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h80v64c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V288h80c17.7 0 32-14.3 32-32s-14.3-32-32-32H219.8L314.6 81.7c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.2z\"],\"ruble-sign\":[384,512,[8381,\"rouble\",\"rub\",\"ruble\"],\"f158\",\"M96 32C78.3 32 64 46.3 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64v32c0 17.7 14.3 32 32 32s32-14.3 32-32V416H288c17.7 0 32-14.3 32-32s-14.3-32-32-32H128V320H240c79.5 0 144-64.5 144-144s-64.5-144-144-144H96zM240 256H128V96H240c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],sun:[512,512,[9728],\"f185\",\"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"],guitar:[512,512,[],\"f7a6\",\"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"face-laugh-wink\":[512,512,[\"laugh-wink\"],\"f59c\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1H393.6c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"],\"horse-head\":[640,512,[],\"f7ab\",\"M64 464V316.9c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1h-3.4c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8H112c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\"bore-hole\":[512,512,[],\"e4c3\",\"M256 0c-17.7 0-32 14.3-32 32V296.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4V32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48V464c0 26.5 21.5 48 48 48H464c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H384c-17.7 0-32 14.3-32 32V352c0 53-43 96-96 96s-96-43-96-96V160c0-17.7-14.3-32-32-32H48z\"],industry:[576,512,[],\"f275\",\"M64 32C46.3 32 32 46.3 32 64V304v48 80c0 26.5 21.5 48 48 48H496c26.5 0 48-21.5 48-48V304 152.2c0-18.2-19.4-29.7-35.4-21.1L352 215.4V152.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4V64c0-17.7-14.3-32-32-32H64z\"],\"circle-down\":[512,512,[61466,\"arrow-alt-circle-down\"],\"f358\",\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM376.9 294.6L269.8 394.5c-3.8 3.5-8.7 5.5-13.8 5.5s-10.1-2-13.8-5.5L135.1 294.6c-4.5-4.2-7.1-10.1-7.1-16.3c0-12.3 10-22.3 22.3-22.3l57.7 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 57.7 0c12.3 0 22.3 10 22.3 22.3c0 6.2-2.6 12.1-7.1 16.3z\"],\"arrows-turn-to-dots\":[512,512,[],\"e4c1\",\"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V448c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z\"],\"florin-sign\":[384,512,[],\"e184\",\"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224H64c-17.7 0-32 14.3-32 32s14.3 32 32 32h80L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H69.3c38.8 0 73.7-23.3 88.6-59.1L213.3 288H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H240l45.1-108.3c5-11.9 16.6-19.7 29.5-19.7H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H314.7z\"],\"arrow-down-short-wide\":[576,512,[\"sort-amount-desc\",\"sort-amount-down-alt\"],\"f884\",\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H320c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"less-than\":[384,512,[62774],\"3c\",\"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"],\"angle-down\":[448,512,[8964],\"f107\",\"M201.4 342.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 274.7 86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\"car-tunnel\":[512,512,[],\"e4de\",\"M256 0C114.6 0 0 114.6 0 256V448c0 35.3 28.7 64 64 64h42.8c-6.6-5.9-10.8-14.4-10.8-24V376c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7H313.6c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6V488c0 9.6-4.2 18.1-10.8 24H448c35.3 0 64-28.7 64-64V256C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24V448H160v40c0 9.6-4.2 18.1-10.8 24H362.8zM190.8 277.5L177 320H335l-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5H198.4c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\"head-side-cough\":[640,512,[],\"e061\",\"M0 224.2C0 100.6 100.2 0 224 0h24c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8H448v0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416v16c0 26.5-21.5 48-48 48H320v8c0 13.3-10.7 24-24 24H256v0H96c-17.7 0-32-14.3-32-32V407.3c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"grip-lines\":[448,512,[],\"f7a4\",\"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"],\"thumbs-down\":[512,512,[128078,61576],\"f165\",\"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384H96c17.7 0 32-14.3 32-32V128c0-17.7-14.3-32-32-32H32C14.3 96 0 110.3 0 128V352c0 17.7 14.3 32 32 32z\"],\"user-lock\":[640,512,[],\"f502\",\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H392.6c-5.4-9.4-8.6-20.3-8.6-32V352c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7H178.3zM528 240c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\"arrow-right-long\":[512,512,[\"long-arrow-right\"],\"f178\",\"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\"anchor-circle-xmark\":[640,512,[],\"e4ac\",\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2H320V368 240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],ellipsis:[448,512,[\"ellipsis-h\"],\"f141\",\"M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\"chess-pawn\":[320,512,[9823],\"f443\",\"M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88H96c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400H240L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32h-8.5zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512H281.4c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432H64L22.6 473.4z\"],\"kit-medical\":[576,512,[\"first-aid\"],\"f479\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H96V32H64zm64 0V480H448V32H128zM512 480c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H480V480h32zM256 176c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V288H208c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16h48V176z\"],\"person-through-window\":[640,512,[],\"e5a9\",\"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0H64V64zm288 0l224 0V384H508.3l-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320H379.2l42.7 64H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48V400c0 26.5 21.5 48 48 48H308.2l33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0H192s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],toolbox:[512,512,[129520],\"f552\",\"M176 88v40H336V88c0-4.4-3.6-8-8-8H184c-4.4 0-8 3.6-8 8zm-48 40V88c0-30.9 25.1-56 56-56H328c30.9 0 56 25.1 56 56v40h28.1c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9V304H384V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H192V288c0-17.7-14.3-32-32-32s-32 14.3-32 32v16H0V227.9c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1H128zM0 416V336H128v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H320v16c0 17.7 14.3 32 32 32s32-14.3 32-32V336H512v80c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64z\"],\"hands-holding-circle\":[640,512,[],\"e4fb\",\"M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40v40 80 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2 0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2V464c0 26.5-21.5 48-48 48H173.3c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5V224 160 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40v56 64V325.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7H400c-26.5 0-48-21.5-48-48V385.1c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0 15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3V224 144 104c0-22.1 17.9-40 40-40z\"],bug:[512,512,[],\"f188\",\"M256 0c53 0 96 43 96 96v3.6c0 15.7-12.7 28.4-28.4 28.4H188.4c-15.7 0-28.4-12.7-28.4-28.4V96c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4H312c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6V240c0-8.8-7.2-16-16-16s-16 7.2-16 16V479.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96.3c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"],\"credit-card\":[576,512,[128179,62083,\"credit-card-alt\"],\"f09d\",\"M64 32C28.7 32 0 60.7 0 96v32H576V96c0-35.3-28.7-64-64-64H64zM576 224H0V416c0 35.3 28.7 64 64 64H512c35.3 0 64-28.7 64-64V224zM112 352h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16H368c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"],car:[512,512,[128664,\"automobile\"],\"f1b9\",\"M135.2 117.4L109.1 192H402.9l-26.1-74.6C372.3 104.6 360.2 96 346.6 96H165.4c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32H346.6c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2V400v48c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V400H96v48c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V400 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"hand-holding-hand\":[576,512,[],\"e4f7\",\"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32H384 544c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H507.2l-44.9 36c-22.7 18.2-50.9 28-80 28H304 288 224c-17.7 0-32-14.3-32-32s14.3-32 32-32h64 16c8.8 0 16-7.2 16-16s-7.2-16-16-16H183.4L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160l0 0 .9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352l0 0-.9 0c.3 0 .6 0 .9 0z\"],\"book-open-reader\":[512,512,[\"book-reader\"],\"f5da\",\"M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152V512l-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427V224c0-17.7 14.3-32 32-32H62.3c63.6 0 125.6 19.6 177.7 56zm32 264V248c52.1-36.4 114.1-56 177.7-56H480c17.7 0 32 14.3 32 32V427c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"],\"mountain-sun\":[640,512,[],\"e52f\",\"M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512H381.1h75H578.9c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"],\"arrows-left-right-to-line\":[640,512,[],\"e4ba\",\"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96V416c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\"dice-d20\":[512,512,[],\"f6cf\",\"M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7V295.3c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4V171.7zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9v52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8V452.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9H183.1c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176H337.6c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2h-3.2c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"],\"truck-droplet\":[640,512,[],\"e58c\",\"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"],\"file-circle-xmark\":[576,512,[],\"e5a1\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"],\"temperature-arrow-up\":[576,512,[\"temperature-up\"],\"e040\",\"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48V276.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5V112zM176 0C114.1 0 64 50.1 64 112V276.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6V112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3V112c0-8.8-7.2-16-16-16s-16 7.2-16 16V322.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8h32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V160z\"],medal:[512,512,[127941],\"f5a2\",\"M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0H133.9c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0H487.4C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"],bed:[640,512,[128716],\"f236\",\"M32 32c17.7 0 32 14.3 32 32V320H288V160c0-17.7 14.3-32 32-32H544c53 0 96 43 96 96V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H352 320 64v32c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\"square-h\":[448,512,[\"h-square\"],\"f0fd\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM336 152V256 360c0 13.3-10.7 24-24 24s-24-10.7-24-24V280H160l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24v80H288V152c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],podcast:[448,512,[],\"f2ce\",\"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\"temperature-full\":[320,512,[\"temperature-4\",\"thermometer-4\",\"thermometer-full\"],\"f2c7\",\"M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V112c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z\"],bell:[448,512,[128276,61602],\"f0f3\",\"M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"],superscript:[512,512,[],\"f12b\",\"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80v80c-17.7 0-32 14.3-32 32s14.3 32 32 32h32 32c17.7 0 32-14.3 32-32s-14.3-32-32-32V32zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32H47.3l89.6 128L47.3 384H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H304.7L215.1 256l89.6-128H320c17.7 0 32-14.3 32-32s-14.3-32-32-32H288c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64H32z\"],\"plug-circle-xmark\":[576,512,[],\"e560\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\"star-of-life\":[512,512,[],\"f621\",\"M208 32c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V172.9l122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.5 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1V480c0 17.7-14.3 32-32 32H240c-17.7 0-32-14.3-32-32V339.1L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4V32z\"],\"phone-slash\":[640,512,[],\"f3dd\",\"M601.2 5.1c10.4-8.2 25.5-6.3 33.7 4.1s6.3 25.5-4.1 33.7l-592 464c-10.4 8.2-25.5 6.3-33.7-4.1s-6.3-25.5 4.1-33.7l155.6-122C101.8 270 64 171.4 64 64c0-18 12.1-33.8 29.5-38.6l88-24c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L208 207.3c12 25.5 27.2 49.2 45 70.7L601.2 5.1zM234.3 415.6l91.3-72c13.7 9.1 28 17.3 43 24.3L409 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C545.8 499.9 530 512 512 512c-104.9 0-201.3-36-277.7-96.4z\"],\"paint-roller\":[512,512,[],\"f5aa\",\"M0 64C0 28.7 28.7 0 64 0H352c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM160 352c0-17.7 14.3-32 32-32V304c0-44.2 35.8-80 80-80H416c17.7 0 32-14.3 32-32V160 69.5c37.3 13.2 64 48.7 64 90.5v32c0 53-43 96-96 96H272c-8.8 0-16 7.2-16 16v16c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V352z\"],\"handshake-angle\":[640,512,[\"hands-helping\"],\"f4c4\",\"M544 248v3.3l69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5H296c-37.1 0-67.6 28-71.6 64H224V248c0 22.1 17.9 40 40 40s40-17.9 40-40V176c0 0 0-.1 0-.1V160l16 0 136 0c0 0 0 0 .1 0H464c44.2 0 80 35.8 80 80v8zM336 192v56c0 39.8-32.2 72-72 72s-72-32.2-72-72V129.4c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1H384c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16H432c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8v-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z\"],\"location-dot\":[384,512,[\"map-marker-alt\"],\"f3c5\",\"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],file:[384,512,[128196,128459,61462],\"f15b\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z\"],\"greater-than\":[384,512,[62769],\"3e\",\"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"],\"person-swimming\":[576,512,[127946,\"swimmer\"],\"f5c4\",\"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"arrow-down\":[384,512,[8595],\"f063\",\"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],droplet:[384,512,[128167,\"tint\"],\"f043\",\"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0h1.8c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"],eraser:[576,512,[],\"f12d\",\"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7H288h9.4H512c17.7 0 32-14.3 32-32s-14.3-32-32-32H387.9L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416H288l-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"],\"earth-americas\":[512,512,[127758,\"earth\",\"earth-america\",\"globe-americas\"],\"f57d\",\"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"],\"person-burst\":[640,512,[],\"e53b\",\"M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H465.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"],dove:[512,512,[128330],\"f4ba\",\"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6V138.8C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144v30.6l0 0v1.3l0 0 0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448H320c88.4 0 160-71.6 160-160V128l29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3H400c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\"battery-empty\":[576,512,[\"battery-0\"],\"f244\",\"M80 160c-8.8 0-16 7.2-16 16V336c0 8.8 7.2 16 16 16H464c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H80zM0 176c0-44.2 35.8-80 80-80H464c44.2 0 80 35.8 80 80v16c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32v16c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V176z\"],socks:[512,512,[129510],\"f696\",\"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6V96H128V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64H288V48c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0H176c-26.5 0-48 21.5-48 48V64zM320 96V240c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304V96H320zM512 64V48c0-26.5-21.5-48-48-48H368c-26.5 0-48 21.5-48 48V64H512z\"],inbox:[512,512,[],\"f01c\",\"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V323.9c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32H121zm0 64H391l48 192H387.8c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7H195.8c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7H73L121 96z\"],section:[256,512,[],\"e447\",\"M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31l0 0 3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2l0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6l0 0 .2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5c-.2-.1-.4-.1-.6-.2l-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"],\"gauge-high\":[512,512,[62461,\"tachometer-alt\",\"tachometer-alt-fast\"],\"f625\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"envelope-open-text\":[512,512,[],\"f658\",\"M215.4 96H144 107.8 96v8.8V144v40.4 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3V96c0-26.5 21.5-48 48-48h76.6l49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48H416c26.5 0 48 21.5 48 48v44.3l22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4v-89V144 104.8 96H404.2 368 296.6 215.4zM0 448V242.1L217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1V448v0c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64v0zM176 160H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],hospital:[640,512,[127973,62589,\"hospital-alt\",\"hospital-wide\"],\"f0f8\",\"M192 48c0-26.5 21.5-48 48-48H400c26.5 0 48 21.5 48 48V512H368V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H192V48zM48 96H160V512H48c-26.5 0-48-21.5-48-48V320H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V224H80c8.8 0 16-7.2 16-16s-7.2-16-16-16H0V144c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v48H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H560c-8.8 0-16 7.2-16 16s7.2 16 16 16h80V464c0 26.5-21.5 48-48 48H480V96H592zM312 64c-8.8 0-16 7.2-16 16v24H272c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h24v24c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V152h24c8.8 0 16-7.2 16-16V120c0-8.8-7.2-16-16-16H344V80c0-8.8-7.2-16-16-16H312z\"],\"wine-bottle\":[512,512,[],\"f72f\",\"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"],\"chess-rook\":[448,512,[9820],\"f447\",\"M32 192V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V88c0 4.4 3.6 8 8 8h32c4.4 0 8-3.6 8-8V48c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16V192c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144H80L96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96h32c8.8 0 16-7.2 16-16V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432H384l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H38.6C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z\"],\"bars-staggered\":[512,512,[\"reorder\",\"stream\"],\"f550\",\"M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H96c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],dharmachakra:[512,512,[9784],\"f655\",\"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],hotdog:[512,512,[127789],\"f80f\",\"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9l0 0v0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4l0 0-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"],\"person-walking-with-cane\":[512,512,[\"blind\"],\"f29d\",\"M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6v43.2c0 17 6.7 33.3 18.7 45.3L224 397.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V390.6c0-12.7-5.1-24.9-14.1-33.9L224 306.7V213.3l70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128H167.6zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"],drum:[512,512,[129345],\"f569\",\"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208V368c0 31.3 27.4 58.8 72 78.7V344c0-13.3 10.7-24 24-24s24 10.7 24 24V463.4c33 8.9 71.1 14.5 112 16.1V376c0-13.3 10.7-24 24-24s24 10.7 24 24V479.5c40.9-1.6 79-7.2 112-16.1V344c0-13.3 10.7-24 24-24s24 10.7 24 24V446.7c44.6-19.9 72-47.4 72-78.7V208c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z\"],\"ice-cream\":[448,512,[127848],\"f810\",\"M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16H80c-26.5 0-48 21.5-48 48s21.5 48 48 48h53.5 181H368c26.5 0 48-21.5 48-48s-21.5-48-48-48h-.9zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288H96z\"],\"heart-circle-bolt\":[576,512,[],\"e4fc\",\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356H488c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380H376c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"],fax:[512,512,[128224,128439],\"f1ac\",\"M128 64v96h64V64H386.7L416 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0H192c-35.3 0-64 28.7-64 64zM0 160V480c0 17.7 14.3 32 32 32H64c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32H32c-17.7 0-32 14.3-32 32zm480 32H128V480c0 17.7 14.3 32 32 32H480c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],paragraph:[448,512,[182],\"f1dd\",\"M192 32h64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352H288V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H192c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"],\"check-to-slot\":[576,512,[\"vote-yea\"],\"f772\",\"M96 80c0-26.5 21.5-48 48-48H432c26.5 0 48 21.5 48 48V384H96V80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48H64V416H512V288h16c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336z\"],\"star-half\":[576,512,[61731],\"f089\",\"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8V0zM429.9 512c1.1 .1 2.1 .1 3.2 0h-3.2z\"],\"boxes-stacked\":[576,512,[62625,\"boxes\",\"boxes-alt\"],\"f468\",\"M248 0H208c-26.5 0-48 21.5-48 48V160c0 35.3 28.7 64 64 64H352c35.3 0 64-28.7 64-64V48c0-26.5-21.5-48-48-48H328V80c0 8.8-7.2 16-16 16H264c-8.8 0-16-7.2-16-16V0zM64 256c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H184v80c0 8.8-7.2 16-16 16H120c-8.8 0-16-7.2-16-16V256H64zM352 512H512c35.3 0 64-28.7 64-64V320c0-35.3-28.7-64-64-64H472v80c0 8.8-7.2 16-16 16H408c-8.8 0-16-7.2-16-16V256H352c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2V464c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"],link:[640,512,[128279,\"chain\"],\"f0c1\",\"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"],\"ear-listen\":[512,512,[\"assistive-listening-systems\"],\"f2a2\",\"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1-.1 0 0 0c0 0 0 0-14.3 28.6L398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78V400c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112v-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\"tree-city\":[640,512,[],\"e587\",\"M288 48c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48V192h40V120c0-13.3 10.7-24 24-24s24 10.7 24 24v72h24c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H432 336c-26.5 0-48-21.5-48-48V48zm64 32v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V176c0-8.8-7.2-16-16-16H368zM352 272v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H528zM512 368v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H528c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80H160V480c0 18-15 32-32 32c-18 0-32-14-32-32V320H80c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"],play:[384,512,[9654],\"f04b\",\"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"],font:[448,512,[],\"f031\",\"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-1.8l18-48H303.8l18 48H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H390.2L254 52.8zM279.8 304H168.2L224 155.1 279.8 304z\"],\"rupiah-sign\":[512,512,[],\"e23d\",\"M0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256zm256-96h80c61.9 0 112 50.1 112 112s-50.1 112-112 112H352v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V352 192c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48H352v96h48z\"],\"magnifying-glass\":[512,512,[128269,\"search\"],\"f002\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"],\"table-tennis-paddle-ball\":[640,512,[127955,\"ping-pong-paddle-ball\",\"table-tennis\"],\"f45d\",\"M480 288c-50.1 0-93.6 28.8-114.6 70.8L132.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C535.8 297.6 509 288 480 288zM113.3 151.9L354.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3H357c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L152.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32c-6.3-6.3-9.7-14.9-9.4-23.8s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8c-24-24-37.5-56.6-37.5-90.5v-2.7c0-22.8 6.1-44.9 17.3-64.3zM480 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\"person-dots-from-line\":[576,512,[\"diagnoses\"],\"f470\",\"M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1V432H400V322.7c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24H552c13.3 0 24-10.7 24-24s-10.7-24-24-24H24zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"trash-can-arrow-up\":[448,512,[\"trash-restore-alt\"],\"f82a\",\"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416V448c0 35.3-28.7 64-64 64H96c-35.3 0-64-28.7-64-64V128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"],\"naira-sign\":[448,512,[],\"e1f6\",\"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64V256H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H228.2l97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6V320h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H384V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V256H262.5L122.6 46.3zM305.1 320H320v22.3L305.1 320zM185.5 256H128V169.7L185.5 256z\"],\"cart-arrow-down\":[576,512,[],\"f218\",\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48H69.5c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5H488c13.3 0 24-10.7 24-24s-10.7-24-24-24H199.7c-11.5 0-21.4-8.2-23.6-19.5L170.7 288H459.2c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32H360V134.1l23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23V32H120.1C111 12.8 91.6 0 69.5 0H24zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\"walkie-talkie\":[384,512,[],\"f8ef\",\"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24V96H48C21.5 96 0 117.5 0 144V300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9V464c0 26.5 21.5 48 48 48H304c26.5 0 48-21.5 48-48V371.9c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9V144c0-26.5-21.5-48-48-48H320c0-17.7-14.3-32-32-32s-32 14.3-32 32H224c0-17.7-14.3-32-32-32s-32 14.3-32 32H112V24zm0 136H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"file-pen\":[576,512,[128221,\"file-edit\"],\"f31c\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V299.6l-94.7 94.7c-8.2 8.2-14 18.5-16.8 29.7l-15 60.1c-2.3 9.4-1.8 19 1.4 27.8H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"],receipt:[384,512,[129534],\"f543\",\"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8V488c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488V24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96zM80 352c0 8.8 7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16H288c8.8 0 16-7.2 16-16s-7.2-16-16-16H96z\"],\"square-pen\":[448,512,[\"pen-square\",\"pencil-square\"],\"f14b\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"],\"suitcase-rolling\":[384,512,[],\"f5c1\",\"M144 56c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v72H144V56zm176 72H288V56c0-30.9-25.1-56-56-56H152C121.1 0 96 25.1 96 56v72H64c-35.3 0-64 28.7-64 64V416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32H256c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64zM112 224H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"person-circle-exclamation\":[576,512,[],\"e53f\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],\"chevron-down\":[512,512,[],\"f078\",\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"],\"battery-full\":[576,512,[128267,\"battery\",\"battery-5\"],\"f240\",\"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm368 96H96V320H448V192z\"],\"skull-crossbones\":[448,512,[128369,9760],\"f714\",\"M368 128c0 44.4-25.4 83.5-64 106.4V256c0 17.7-14.3 32-32 32H176c-17.7 0-32-14.3-32-32V234.4c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z\"],\"code-compare\":[512,512,[],\"e13a\",\"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9v40h16c35.3 0 64-28.7 64-64V153.3C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V320c0 70.7-57.3 128-128 128H320v40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9V128H176c-35.3 0-64 28.7-64 64V358.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V192c0-70.7 57.3-128 128-128h16V24zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"],\"list-ul\":[512,512,[\"list-dots\"],\"f0ca\",\"M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\"school-lock\":[640,512,[],\"e56f\",\"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96H592c26.5 0 48 21.5 48 48V272c0-61.9-50.1-112-112-112s-112 50.1-112 112v24.6c-19.1 11.1-32 31.7-32 55.4H320.3l-.3 0c-35.3 0-64 28.7-64 64v96h64v0H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H166.3L302.2 5.4zM80 208v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm0 128v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120v16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H320c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32v48h64V272c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80v48c17.7 0 32 14.3 32 32V480c0 17.7-14.3 32-32 32H448c-17.7 0-32-14.3-32-32V352c0-17.7 14.3-32 32-32V272z\"],\"tower-cell\":[576,512,[],\"e585\",\"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448H398.3l20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384H206.8l14.5-32H354.7l14.5 32zM288 205.3L325.6 288H250.4L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"],\"down-long\":[320,512,[\"long-arrow-alt-down\"],\"f309\",\"M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z\"],\"ranking-star\":[640,512,[],\"e561\",\"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z\"],\"chess-king\":[448,512,[9818],\"f43f\",\"M224 0c17.7 0 32 14.3 32 32V48h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H256v48H408c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400H80L3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40H192V112H176c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V32c0-17.7 14.3-32 32-32zM38.6 473.4L80 432H368l41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6H54.6C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z\"],\"person-harassing\":[576,512,[],\"e549\",\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9V480c0 17.7 14.3 32 32 32s32-14.3 32-32V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V235.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7H145.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344v58.7l-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9V344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16h56c8.8 0 16-7.2 16-16s-7.2-16-16-16H304c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"],\"brazilian-real-sign\":[512,512,[],\"e46c\",\"M400 0c17.7 0 32 14.3 32 32V50.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5h-1.7c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4v3.4c0 51.2-33.6 94.6-80 109.2V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V460.6c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5v-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2V32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32h80c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320H64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V288 64zM64 256h48c44.2 0 80-35.8 80-80s-35.8-80-80-80H64V256z\"],\"landmark-dome\":[512,512,[\"landmark-alt\"],\"f752\",\"M248 0h16c13.3 0 24 10.7 24 24V34.7C368.4 48.1 431.9 111.6 445.3 192H448c17.7 0 32 14.3 32 32s-14.3 32-32 32H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h2.7C80.1 111.6 143.6 48.1 224 34.7V24c0-13.3 10.7-24 24-24zM64 288h64V416h40V288h64V416h48V288h64V416h40V288h64V420.3c.6 .3 1.2 .7 1.7 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512H32c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1V288z\"],\"arrow-up\":[384,512,[8593],\"f062\",\"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"],tv:[640,512,[63717,\"television\",\"tv-alt\"],\"f26c\",\"M64 64V352H576V64H64zM0 64C0 28.7 28.7 0 64 0H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM128 448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],shrimp:[512,512,[129424],\"e448\",\"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64h1c3.7 88.9 77 160 167 160h56V128H264 88.8 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H464c8.8 0 16-7.2 16-16s-7.2-16-16-16H64zM224 456c0 13.3 10.7 24 24 24h72V407.8l-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3v69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128H320V320h18.3c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\"list-check\":[512,512,[\"tasks\"],\"f0ae\",\"M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"jug-detergent\":[384,512,[],\"e519\",\"M96 24c0-13.3 10.7-24 24-24h80c13.3 0 24 10.7 24 24V48h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H88C74.7 96 64 85.3 64 72s10.7-24 24-24h8V24zM0 256c0-70.7 57.3-128 128-128H256c70.7 0 128 57.3 128 128V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256zm256 0v96c0 17.7 14.3 32 32 32s32-14.3 32-32V256c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\"circle-user\":[512,512,[62142,\"user-circle\"],\"f2bd\",\"M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"],\"user-shield\":[640,512,[],\"f505\",\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3H178.3zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7V273.8L591.4 312z\"],wind:[512,512,[],\"f72e\",\"M288 32c0 17.7 14.3 32 32 32h32c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c53 0 96-43 96-96s-43-96-96-96H320c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H384c-17.7 0-32 14.3-32 32zM128 512h32c53 0 96-43 96-96s-43-96-96-96H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H160c17.7 0 32 14.3 32 32s-14.3 32-32 32H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\"car-burst\":[640,512,[\"car-crash\"],\"f5e1\",\"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z\"],y:[384,512,[121],\"59\",\"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V298.3L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"],\"person-snowboarding\":[512,512,[127938,\"snowboarding\"],\"f7ce\",\"M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6H472c13.3 0 24 10.7 24 24s-10.7 24-24 24H443.8c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"truck-fast\":[640,512,[\"shipping-fast\"],\"f48b\",\"M112 0C85.5 0 64 21.5 64 48V96H16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 272c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 48c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 240c8.8 0 16 7.2 16 16s-7.2 16-16 16H64 16c-8.8 0-16 7.2-16 16s7.2 16 16 16H64 208c8.8 0 16 7.2 16 16s-7.2 16-16 16H64V416c0 53 43 96 96 96s96-43 96-96H384c0 53 43 96 96 96s96-43 96-96h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V288 256 237.3c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7H416V48c0-26.5-21.5-48-48-48H112zM544 237.3V256H416V160h50.7L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],fish:[576,512,[128031],\"f578\",\"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\"user-graduate\":[448,512,[],\"f501\",\"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z\"],\"circle-half-stroke\":[512,512,[9680,\"adjust\"],\"f042\",\"M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"],clapperboard:[512,512,[],\"e131\",\"M448 32H361.9l-1 1-127 127h92.1l1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128V96c0-15.1-5.3-29.1-14-40l-104 104H512zM294.1 32H201.9l-1 1L73.9 160h92.1l1-1 127-127zM64 32C28.7 32 0 60.7 0 96v64H6.1l1-1 127-127H64zM512 192H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192z\"],\"circle-radiation\":[512,512,[9762,\"radiation-alt\"],\"f7ba\",\"M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],baseball:[512,512,[129358,9918,\"baseball-ball\"],\"f433\",\"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"],\"jet-fighter-up\":[512,512,[],\"e518\",\"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2v77l-144 84V280c0-13.3-10.7-24-24-24s-24 10.7-24 24v56 32 24c0 13.3 10.7 24 24 24s24-10.7 24-24v-8H192v32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12v16c0 8.8 7.2 16 16 16h96V448c0-8.8 7.2-16 16-16s16 7.2 16 16v64h96c8.8 0 16-7.2 16-16V480c0-4.6-2-9-5.5-12L320 416.7V384H464v8c0 13.3 10.7 24 24 24s24-10.7 24-24V368 336 280c0-13.3-10.7-24-24-24s-24 10.7-24 24v18.8l-144-84v-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"],\"diagram-project\":[576,512,[\"project-diagram\"],\"f542\",\"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48V96H384V80c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H432c-26.5 0-48-21.5-48-48V160H192v16c0 1.7-.1 3.4-.3 5L272 288h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H272c-26.5 0-48-21.5-48-48V336c0-1.7 .1-3.4 .3-5L144 224H48c-26.5 0-48-21.5-48-48V80z\"],copy:[448,512,[],\"f0c5\",\"M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z\"],\"volume-xmark\":[576,512,[\"volume-mute\",\"volume-times\"],\"f6a9\",\"M301.1 34.8C312.6 40 320 51.4 320 64V448c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64h67.8L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\"hand-sparkles\":[640,512,[],\"e05d\",\"M320 0c17.7 0 32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V128c0-17.7 14.3-32 32-32s32 14.3 32 32V323.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512H348.8c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6V64c0-17.7 14.3-32 32-32s32 14.3 32 32V240c0 8.8 7.2 16 16 16s16-7.2 16-16V32c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"],grip:[448,512,[\"grip-horizontal\"],\"f58d\",\"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40H40c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40H88c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40H200c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328zm32-192v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V136c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40H360c-22.1 0-40 17.9-40 40v48c0 22.1 17.9 40 40 40h48c22.1 0 40-17.9 40-40V328z\"],\"share-from-square\":[576,512,[61509,\"share-square\"],\"f14d\",\"M352 224H305.5c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8h-2.5c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144h80V34.7C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2H384c-17.7 0-32-14.3-32-32V224zM80 96c-8.8 0-16 7.2-16 16V432c0 8.8 7.2 16 16 16H400c8.8 0 16-7.2 16-16V384c0-17.7 14.3-32 32-32s32 14.3 32 32v48c0 44.2-35.8 80-80 80H80c-44.2 0-80-35.8-80-80V112C0 67.8 35.8 32 80 32h48c17.7 0 32 14.3 32 32s-14.3 32-32 32H80z\"],\"child-combatant\":[576,512,[\"child-rifle\"],\"e4e0\",\"M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352V352h16V480c0 17.7 14.3 32 32 32s32-14.3 32-32V300.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9H169.8c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5V480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0H432 416c-8.8 0-16 7.2-16 16s7.2 16 16 16V132.3c-9.6 5.5-16 15.9-16 27.7v32c-17.7 0-32 14.3-32 32V368c0 17.7 14.3 32 32 32h16v96c0 8.8 7.2 16 16 16h59.5c10.4 0 18-9.8 15.5-19.9L484 400h44c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H480V325.3l53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2V208c0-8.8-7.2-16-16-16H512c-8.8 0-16 7.2-16 16v56l-16 5.3V160c0-11.8-6.4-22.2-16-27.7V16c0-8.8-7.2-16-16-16z\"],gun:[576,512,[],\"e19b\",\"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24v8H32C14.3 64 0 78.3 0 96V208c0 17.7 14.3 32 32 32H42c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480h96c14.7 0 27.5-10 31-24.2L217 352H321.4c23.7 0 44.8-14.9 52.7-37.2L400.9 240H432c8.5 0 16.6-3.4 22.6-9.4L477.3 208H544c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32H528V56zM321.4 304H229l16-64h105l-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128H464c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"square-phone\":[448,512,[\"phone-square\"],\"f098\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"],plus:[448,512,[10133,61543,\"add\"],\"2b\",\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z\"],expand:[448,512,[],\"f065\",\"M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z\"],computer:[640,512,[],\"e4e5\",\"M384 96V320H64L64 96H384zM64 32C28.7 32 0 60.7 0 96V320c0 35.3 28.7 64 64 64H181.3l-10.7 32H96c-17.7 0-32 14.3-32 32s14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H277.3l-10.7-32H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm464 0c-26.5 0-48 21.5-48 48V432c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H528zm16 64h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H544c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],xmark:[384,512,[128473,10005,10006,10060,215,\"close\",\"multiply\",\"remove\",\"times\"],\"f00d\",\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"],\"arrows-up-down-left-right\":[512,512,[\"arrows\"],\"f047\",\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4V224H109.3l9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4H224V402.7l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4V288H402.7l-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4H288V109.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"],\"chalkboard-user\":[640,512,[\"chalkboard-teacher\"],\"f51c\",\"M160 64c0-35.3 28.7-64 64-64H576c35.3 0 64 28.7 64 64V352c0 35.3-28.7 64-64 64H336.8c-11.8-25.5-29.9-47.5-52.4-64H384V320c0-17.7 14.3-32 32-32h64c17.7 0 32 14.3 32 32v32h64V64L224 64v49.1C205.2 102.2 183.3 96 160 96V64zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352h53.3C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7H26.7C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"],\"peso-sign\":[384,512,[],\"e222\",\"M64 32C46.3 32 32 46.3 32 64v64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V384h80c68.4 0 127.7-39 156.8-96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32h-.7c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16h.7c17.7 0 32-14.3 32-32s-14.3-32-32-32H332.8C303.7 71 244.4 32 176 32H64zm190.4 96H96V96h80c30.5 0 58.2 12.2 78.4 32zM96 192H286.9c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16H96V192zm158.4 96c-20.2 19.8-47.9 32-78.4 32H96V288H254.4z\"],\"building-shield\":[576,512,[],\"e4d8\",\"M0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V207l-42.4 17H304 272c-8.8 0-16 7.2-16 16v32 24.2V304c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9H240V432c0-26.5-21.5-48-48-48s-48 21.5-48 48v80H48c-26.5 0-48-21.5-48-48V48zM80 224c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16zM64 112v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H176zm80 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H272c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8V461.7c68.2-33 91.5-99 95.4-149.7z\"],baby:[448,512,[],\"f77c\",\"M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25V288H128V251.7c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"],\"users-line\":[640,512,[],\"e592\",\"M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32h85.6c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4H96c-35.3 0-64 28.7-64 64zm461.6 32H576c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64H448c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4h-96c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32h224c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\"quote-left\":[448,512,[8220,\"quote-left-alt\"],\"f10d\",\"M0 216C0 149.7 53.7 96 120 96h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320 288 216zm256 0c0-66.3 53.7-120 120-120h8c17.7 0 32 14.3 32 32s-14.3 32-32 32h-8c-30.9 0-56 25.1-56 56v8h64c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H320c-35.3 0-64-28.7-64-64V320 288 216z\"],tractor:[640,512,[128668],\"f722\",\"M96 64c0-35.3 28.7-64 64-64H266.3c26.2 0 49.7 15.9 59.4 40.2L373.7 160H480V126.2c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9V160h56c22.1 0 40 17.9 40 40v45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48H352c0 17.7-14.3 32-32 32h-8.2c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8V480c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32v-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1H32c-17.7 0-32-14.3-32-32V320c0-17.7 14.3-32 32-32h8.2c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6V192 160 64zm170.3 0H160v96h32H304.7L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"],\"trash-arrow-up\":[448,512,[\"trash-restore\"],\"f829\",\"M163.8 0H284.2c12.1 0 23.2 6.8 28.6 17.7L320 32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32h96l7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128H416L394.8 467c-1.6 25.3-22.6 45-47.9 45H101.1c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39V408c0 13.3 10.7 24 24 24s24-10.7 24-24V273.9l39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"],\"arrow-down-up-lock\":[640,512,[],\"e4b0\",\"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7V288H416V272c0-17.2 3.9-33.5 10.8-48H352V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3V224l-128 0H96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32H96V402.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V192h64zM288 320V448c0 17.7 14.3 32 32 32s32-14.3 32-32V320H288zm240-80c17.7 0 32 14.3 32 32v48H496V272c0-17.7 14.3-32 32-32zm-80 32v48c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32V272c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"],\"lines-leaning\":[384,512,[],\"e51e\",\"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32V448c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32z\"],\"ruler-combined\":[512,512,[],\"f546\",\"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"],copyright:[512,512,[169],\"f1f9\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"],equals:[448,512,[62764],\"3d\",\"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H48z\"],blender:[512,512,[],\"f517\",\"M0 64C0 28.7 28.7 0 64 0h64 32H470.1c21.1 0 36.4 20.1 30.9 40.4L494.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H485.8l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16H459.6l-17.5 64H336c-8.8 0-16 7.2-16 16s7.2 16 16 16h97.5L416 352H160l-8.7-96H64c-35.3 0-64-28.7-64-64V64zM145.5 192L133.8 64H64V192h81.5zM144 384H432c26.5 0 48 21.5 48 48v32c0 26.5-21.5 48-48 48H144c-26.5 0-48-21.5-48-48V432c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],teeth:[576,512,[],\"f62e\",\"M0 128C0 75 43 32 96 32H480c53 0 96 43 96 96V384c0 53-43 96-96 96H96c-53 0-96-43-96-96V128zm176 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176c0-26.5-21.5-48-48-48zM48 208v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H72c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48V312c0-13.3-10.7-24-24-24H200c-13.3 0-24 10.7-24 24v24zm176 48c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H328c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48zm80-176v24c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V208c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48V312c0-13.3-10.7-24-24-24H456c-13.3 0-24 10.7-24 24v24c0 26.5 21.5 48 48 48z\"],\"shekel-sign\":[448,512,[8362,\"ils\",\"shekel\",\"sheqel\",\"sheqel-sign\"],\"f20b\",\"M32 32C14.3 32 0 46.3 0 64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H192c35.3 0 64 28.7 64 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V160c0-70.7-57.3-128-128-128H32zM320 480c70.7 0 128-57.3 128-128V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V352c0 35.3-28.7 64-64 64H192V192c0-17.7-14.3-32-32-32s-32 14.3-32 32V448c0 17.7 14.3 32 32 32H320z\"],map:[576,512,[128506,62072],\"f279\",\"M384 476.1L192 421.2V35.9L384 90.8V476.1zm32-1.2V88.4L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3V394.6c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2V423.6L32.9 474.5C17.1 480.8 0 469.2 0 452.2V117.4c0-9.8 6-18.6 15.1-22.3z\"],rocket:[512,512,[],\"f135\",\"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2v82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9V380.8c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\"photo-film\":[640,512,[\"photo-video\"],\"f87c\",\"M256 0H576c35.3 0 64 28.7 64 64V288c0 35.3-28.7 64-64 64H256c-35.3 0-64-28.7-64-64V64c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h80 48H552c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128h96V384v32c0 17.7 14.3 32 32 32H320c17.7 0 32-14.3 32-32V384H512v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V312c0-8.8-7.2-16-16-16H72zm0 104c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16H88c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H72zm336 16v16c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16V416c0-8.8-7.2-16-16-16H424c-8.8 0-16 7.2-16 16z\"],\"folder-minus\":[512,512,[],\"f65d\",\"M448 480H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H192c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24H328c13.3 0 24-10.7 24-24s-10.7-24-24-24H184z\"],store:[576,512,[],\"f54e\",\"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0H109.6C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9l-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3V384H128V250.6c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3V384v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V384 252.6c-4 1-8 1.8-12.3 2.3z\"],\"arrow-trend-up\":[576,512,[],\"e098\",\"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32H544c17.7 0 32 14.3 32 32V288c0 17.7-14.3 32-32 32s-32-14.3-32-32V205.3L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160H384z\"],\"plug-circle-minus\":[576,512,[],\"e55e\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s7.2-16 16-16H496c8.8 0 16 7.2 16 16z\"],\"sign-hanging\":[512,512,[\"sign\"],\"f4d9\",\"M96 0c17.7 0 32 14.3 32 32V64l352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V128H32C14.3 128 0 113.7 0 96S14.3 64 32 64H64V32C64 14.3 78.3 0 96 0zm96 160H448c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V192c0-17.7 14.3-32 32-32z\"],\"bezier-curve\":[640,512,[],\"f55b\",\"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\"],\"bell-slash\":[640,512,[128277,61943],\"f1f6\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V51.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1v4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416H406.2zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3H320 256c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"],tablet:[448,512,[\"tablet-android\"],\"f3fb\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM176 432h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H176c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"school-flag\":[576,512,[],\"e56e\",\"M288 0H400c8.8 0 16 7.2 16 16V80c0 8.8-7.2 16-16 16H320.7l89.6 64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H336V400c0-26.5-21.5-48-48-48s-48 21.5-48 48V512H64c-35.3 0-64-28.7-64-64V224c0-35.3 28.7-64 64-64H165.7L256 95.5V32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H80zm368 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16H464c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H80zm384 0c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16H464z\"],fill:[512,512,[],\"f575\",\"M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288H67.5c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z\"],\"angle-up\":[448,512,[8963],\"f106\",\"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"],\"drumstick-bite\":[512,512,[],\"f6d7\",\"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4H336c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176v89.2z\"],\"holly-berry\":[512,512,[],\"f7aa\",\"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72v22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7v-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8v32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8v-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\"chevron-left\":[320,512,[9001],\"f053\",\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"],bacteria:[640,512,[],\"e059\",\"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1l-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1l.1 0 29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5l0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"],\"hand-lizard\":[512,512,[],\"f258\",\"M0 112C0 85.5 21.5 64 48 64H160h80 46.5c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8v12 16 48c0 17.7-14.3 32-32 32H384c-17.7 0-32-14.3-32-32V402.2L273.9 352H240 160 112c-26.5 0-48-21.5-48-48s21.5-48 48-48h48 80c26.5 0 48-21.5 48-48s-21.5-48-48-48H160 48c-26.5 0-48-21.5-48-48z\"],notdef:[384,512,[],\"e1fe\",\"M64 390.3L153.5 256 64 121.7V390.3zM102.5 448H281.5L192 313.7 102.5 448zm128-192L320 390.3V121.7L230.5 256zM281.5 64H102.5L192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0H336c26.5 0 48 21.5 48 48V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"],disease:[512,512,[],\"f7fa\",\"M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6h10c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"briefcase-medical\":[512,512,[],\"f469\",\"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H288v48c0 8.8-7.2 16-16 16H240c-8.8 0-16-7.2-16-16V320H176c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"],genderless:[384,512,[],\"f22d\",\"M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z\"],\"chevron-right\":[320,512,[9002],\"f054\",\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"],retweet:[576,512,[],\"f079\",\"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32H160c-17.7 0-32-14.3-32-32V192h32c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96H272zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128H416c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0V192c0-53-43-96-96-96L304 96z\"],\"car-rear\":[512,512,[\"car-alt\"],\"f5de\",\"M165.4 96H346.6c13.6 0 25.7 8.6 30.2 21.4L402.9 192H109.1l26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256v80c0 23.7 12.9 44.4 32 55.4V448c0 17.7 14.3 32 32 32H96c17.7 0 32-14.3 32-32V400H384v48c0 17.7 14.3 32 32 32h32c17.7 0 32-14.3 32-32V391.4c19.1-11.1 32-31.7 32-55.4V256c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32H165.4c-40.8 0-77.1 25.8-90.6 64.3zM208 272h96c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H208c-8.8 0-16-7.2-16-16V288c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H72c-13.3 0-24-10.7-24-24zm360-24h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H408c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\"pump-soap\":[448,512,[],\"e06b\",\"M128 32v96H256V96h60.1c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4H256c0-17.7-14.3-32-32-32H160c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512H285.2c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7H117.4zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"],\"video-slash\":[640,512,[],\"f4e2\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z\"],\"battery-quarter\":[576,512,[\"battery-2\"],\"f243\",\"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm112 96H96V320h96V192z\"],radio:[512,512,[128251],\"f8d7\",\"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192v4V304 448c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V192c0-35.3-28.7-64-64-64H218.5L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16H208c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16s-7.2 16-16 16H96c-8.8 0-16-7.2-16-16z\"],\"baby-carriage\":[512,512,[\"carriage-baby\"],\"f77d\",\"M256 192H.1C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64h32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0v64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0V160zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\"traffic-light\":[320,512,[128678],\"f637\",\"M64 0C28.7 0 0 28.7 0 64V352c0 88.4 71.6 160 160 160s160-71.6 160-160V64c0-35.3-28.7-64-64-64H64zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z\"],thermometer:[512,512,[],\"f491\",\"M96 382.1V293.3c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4H129.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"],\"vr-cardboard\":[640,512,[],\"f729\",\"M576 64H64C28.7 64 0 92.7 0 128V384c0 35.3 28.7 64 64 64H184.4c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4H576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\"hand-middle-finger\":[448,512,[128405],\"f806\",\"M232 0c-22.1 0-40 17.9-40 40V204.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48v7 73c0 8.8-7.2 16-16 16s-16-7.2-16-16V264.3c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334V372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1H304c70.7 0 128-57.3 128-128V320 288c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2V40c0-22.1-17.9-40-40-40z\"],percent:[384,512,[62101,62785,\"percentage\"],\"25\",\"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\"truck-moving\":[640,512,[],\"f4df\",\"M64 32C28.7 32 0 60.7 0 96V304v80 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16H416h33.6c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.7 0 32-14.3 32-32V288 272 261.7c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5H480V96c0-35.3-28.7-64-64-64H64zM585 256H480V192h48.8c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"glass-water-droplet\":[384,512,[],\"e4f5\",\"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3H275.3c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0H32zM83 297.5L66.4 64H317.6L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"],display:[576,512,[],\"e163\",\"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z\"],\"face-smile\":[512,512,[128578,\"smile\"],\"f118\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],thumbtack:[384,512,[128204,128392,\"thumb-tack\"],\"f08d\",\"M32 32C32 14.3 46.3 0 64 0H320c17.7 0 32 14.3 32 32s-14.3 32-32 32H290.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64C46.3 64 32 49.7 32 32zM160 384h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V384z\"],trophy:[576,512,[127942],\"f091\",\"M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z\"],\"person-praying\":[448,512,[128720,\"pray\"],\"f683\",\"M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432H72c-22.1 0-40 17.9-40 40s17.9 40 40 40H280c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"],hammer:[576,512,[128296],\"f6e3\",\"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6V105.5L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0h18.1c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"],\"hand-peace\":[512,512,[9996],\"f25b\",\"M224 0c17.7 0 32 14.3 32 32V240H192V32c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V192c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V224zM93.3 51.2L175.9 240H106.1L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5h69.9H216c22.1 0 40 17.9 40 40s-17.9 40-40 40H160c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V352c0 88.4-71.6 160-160 160H226.3c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363V336c0-32.7 24.6-59.7 56.3-63.5z\"],rotate:[512,512,[128260,\"sync-alt\"],\"f2f1\",\"M142.9 142.9c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8H463.5c0 0 0 0 0 0H472c13.3 0 24-10.7 24-24V72c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5c7.7-21.8 20.2-42.3 37.8-59.8zM16 312v7.6 .7V440c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l41.6-41.6c87.6 86.5 228.7 86.2 315.8-1c24.4-24.4 42.1-53.1 52.9-83.7c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.2 62.2-162.7 62.5-225.3 1L185 329c6.9-6.9 8.9-17.2 5.2-26.2s-12.5-14.8-22.2-14.8H48.4h-.7H40c-13.3 0-24 10.7-24 24z\"],spinner:[512,512,[],\"f110\",\"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z\"],robot:[640,512,[129302],\"f544\",\"M320 0c17.7 0 32 14.3 32 32V96H472c39.8 0 72 32.2 72 72V440c0 39.8-32.2 72-72 72H168c-39.8 0-72-32.2-72-72V168c0-39.8 32.2-72 72-72H288V32c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H208zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H304zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H400zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224H64V416H48c-26.5 0-48-21.5-48-48V272c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H576V224h16z\"],peace:[512,512,[9774],\"f67c\",\"M224 445.3V323.5l-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8V66.7C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5V445.3c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3V240.8L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"],gears:[640,512,[\"cogs\"],\"f085\",\"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],warehouse:[640,512,[],\"f494\",\"M0 488V171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4V488c0 13.3-10.7 24-24 24H568c-13.3 0-24-10.7-24-24V224c0-17.7-14.3-32-32-32H128c-17.7 0-32 14.3-32 32V488c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56c0 13.3-10.7 24-24 24zM128 400V336H512v64H128zm0-96V224H512l0 80H128z\"],\"arrow-up-right-dots\":[576,512,[],\"e4b7\",\"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h50.7L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3V160c0 17.7 14.3 32 32 32s32-14.3 32-32V32c0-17.7-14.3-32-32-32H160zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],splotch:[512,512,[],\"f5bc\",\"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"],\"face-grin-hearts\":[512,512,[128525,\"grin-hearts\"],\"f584\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"],\"dice-four\":[448,512,[9859],\"f524\",\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"sim-card\":[384,512,[],\"f7c4\",\"M64 0H242.7c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32v32h64V192H96zM64 352h80 96 80V288H240 144 64v64zM320 224c0-17.7-14.3-32-32-32H256v64h64V224zM160 192v64h64V192H160zM288 448c17.7 0 32-14.3 32-32V384H256v64h32zM160 384v64h64V384H160zM64 416c0 17.7 14.3 32 32 32h32V384H64v32z\"],transgender:[512,512,[9895,\"transgender-alt\"],\"f225\",\"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9h96c8.8 0 16 7.2 16 16v96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2V432h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v8c0 13.3-10.7 24-24 24s-24-10.7-24-24v-8H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h16V414.2C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112V16C0 7.2 7.2 0 16 0h96zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"],mercury:[384,512,[9791],\"f223\",\"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4V424h32c13.3 0 24 10.7 24 24s-10.7 24-24 24H216v16c0 13.3-10.7 24-24 24s-24-10.7-24-24V472H136c-13.3 0-24-10.7-24-24s10.7-24 24-24h32V398.4C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z\"],\"arrow-turn-down\":[384,512,[\"level-down\"],\"f149\",\"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"],\"person-falling-burst\":[640,512,[],\"e547\",\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2V352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320H224l80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"],award:[384,512,[],\"f559\",\"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"],\"ticket-simple\":[576,512,[\"ticket-alt\"],\"f3ff\",\"M0 128C0 92.7 28.7 64 64 64H512c35.3 0 64 28.7 64 64v64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V320c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192V128z\"],building:[384,512,[127970,61687],\"f1ad\",\"M48 0C21.5 0 0 21.5 0 48V464c0 26.5 21.5 48 48 48h96V432c0-26.5 21.5-48 48-48s48 21.5 48 48v80h96c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H48zM64 240c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V240zm112-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V240c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V240zM80 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V112zM272 96h32c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16z\"],\"angles-left\":[512,512,[171,\"angle-double-left\"],\"f100\",\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"],qrcode:[448,512,[],\"f029\",\"M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80zM64 96v64h64V96H64zM0 336c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336zm64 16v64h64V352H64zM304 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H304c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm80 64H320v64h64V96zM256 304c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16v96c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16v64c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V304zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z\"],\"clock-rotate-left\":[512,512,[\"history\"],\"f1da\",\"M75 75L41 41C25.9 25.9 0 36.6 0 57.9V168c0 13.3 10.7 24 24 24H134.1c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24V256c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65V152c0-13.3-10.7-24-24-24z\"],\"face-grin-beam-sweat\":[512,512,[128517,\"grin-beam-sweat\"],\"f583\",\"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM388.1 312.8c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5c5-11.8-7-22.5-19.3-18.7zm-170.5-84l0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0 0 0zm160 0l0 0 0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8l0 0 0 0 0 0 .2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2 0 0z\"],\"file-export\":[576,512,[\"arrow-right-from-file\"],\"f56e\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V288H216c-13.3 0-24 10.7-24 24s10.7 24 24 24H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM384 336V288H494.1l-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39H384zm0-208H256V0L384 128z\"],shield:[512,512,[128737,\"shield-blank\"],\"f132\",\"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"],\"arrow-up-short-wide\":[576,512,[\"sort-amount-up-alt\"],\"f885\",\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H320zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H320z\"],\"house-medical\":[576,512,[],\"e3b2\",\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32V448c0 35.3 28.7 64 64 64H448.5c35.5 0 64.2-28.8 64-64.3l-.7-160.2h32zM256 208c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v48h48c8.8 0 16 7.2 16 16v32c0 8.8-7.2 16-16 16H320v48c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V320H208c-8.8 0-16-7.2-16-16V272c0-8.8 7.2-16 16-16h48V208z\"],\"golf-ball-tee\":[384,512,[\"golf-ball\"],\"f450\",\"M384 192c0 66.8-34.1 125.6-85.8 160H85.8C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H240c-8.8 0-16 7.2-16 16v16c0 17.7-14.3 32-32 32s-32-14.3-32-32V464c0-8.8-7.2-16-16-16H128c-17.7 0-32-14.3-32-32z\"],\"circle-chevron-left\":[512,512,[\"chevron-circle-left\"],\"f137\",\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"],\"house-chimney-window\":[576,512,[],\"e00d\",\"M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c.2 35.5-28.5 64.3-64 64.3H128.1c-35.3 0-64-28.7-64-64V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7V64c0-17.7 14.3-32 32-32h32c17.7 0 32 14.3 32 32V185l52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V216c0-13.3-10.7-24-24-24H248z\"],\"pen-nib\":[512,512,[10001],\"f5ad\",\"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.8-9.2L288 94.6z\"],\"tent-arrow-turn-left\":[576,512,[],\"e580\",\"M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72v40c0 13.3 10.7 24 24 24s24-10.7 24-24V192c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H240h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H464h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],tents:[640,512,[],\"e582\",\"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5H608c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512H176h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H400h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],\"wand-magic\":[512,512,[\"magic\"],\"f0d0\",\"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"],dog:[576,512,[128021],\"f6d3\",\"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32h52.1c12.7 0 24.9 5.1 33.9 14.1L496 64h56c13.3 0 24 10.7 24 24v24c0 44.2-35.8 80-80 80H464 448 426.7l-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V364.8c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2V480c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V249.8c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192h30 16H303.8L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],carrot:[512,512,[129365],\"f787\",\"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"],moon:[384,512,[127769,9214],\"f186\",\"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"],\"wine-glass-empty\":[320,512,[\"wine-glass-alt\"],\"f5ce\",\"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6V448H80c-17.7 0-32 14.3-32 32s14.3 32 32 32h80 80c17.7 0 32-14.3 32-32s-14.3-32-32-32H192V348.4c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0H64zM81.9 203.1L93.4 64H226.6l11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"],cheese:[512,512,[],\"f7ef\",\"M512 240.2V256H0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V288H512z\"],\"yin-yang\":[512,512,[9775],\"f6ad\",\"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],music:[512,512,[127925],\"f001\",\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"],\"code-commit\":[640,512,[],\"f386\",\"M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H163.2C178 151 242.6 96 320 96s142 55 156.8 128H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H476.8z\"],\"temperature-low\":[512,512,[],\"f76b\",\"M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V272c0-8.8 7.2-16 16-16s16 7.2 16 16v50.7c18.6 6.6 32 24.4 32 45.3z\"],\"person-biking\":[640,512,[128692,\"biking\"],\"f84a\",\"M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1V416c0 17.7 14.3 32 32 32s32-14.3 32-32V288c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H427.2zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"],broom:[576,512,[129529],\"f51a\",\"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6v29.1L364.3 320h29.1c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z\"],\"shield-heart\":[512,512,[],\"e574\",\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"],gopuram:[512,512,[],\"f664\",\"M120 0c13.3 0 24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h48V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8h40V24c0-13.3 10.7-24 24-24s24 10.7 24 24v8V64v64c17.7 0 32 14.3 32 32v64c17.7 0 32 14.3 32 32v96c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32H416V352H384V224H352V128H320v96h32V352h32V512H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H128V352h32V224h32V128H160v96H128V352H96V512H32c-17.7 0-32-14.3-32-32V384c0-17.7 14.3-32 32-32V256c0-17.7 14.3-32 32-32V160c0-17.7 14.3-32 32-32V64 32 24c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32v48h64V304c0-17.7-14.3-32-32-32zm-32-80v32h64V192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\"earth-oceania\":[512,512,[\"globe-oceania\"],\"e47b\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3H254.8c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16s-7.2 16-16 16H264c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\"square-xmark\":[448,512,[10062,\"times-square\",\"xmark-square\"],\"f2d3\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],hashtag:[448,512,[62098],\"23\",\"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z\"],\"up-right-and-down-left-from-center\":[512,512,[\"expand-alt\"],\"f424\",\"M344 0H488c13.3 0 24 10.7 24 24V168c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512H24c-13.3 0-24-10.7-24-24V344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"],\"oil-can\":[640,512,[],\"f613\",\"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32H192c-17.7 0-32 14.3-32 32s14.3 32 32 32h32v32H144 96 48c-26.5 0-48 21.5-48 48v64.8c0 19 11.2 36.2 28.5 43.9l67.5 30V368c0 26.5 21.5 48 48 48H403.1c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8H288V128h32zM96 208v86.1L48 272.8V208H96z\"],t:[384,512,[116],\"54\",\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96H160V448c0 17.7 14.3 32 32 32s32-14.3 32-32V96H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H192 32z\"],hippo:[640,512,[129435],\"f6ed\",\"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2h32c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64v32c0 8.8-7.2 16-16 16H560c-8.8 0-16-7.2-16-16V320H480v16c0 8.8-7.2 16-16 16H432c-8.8 0-16-7.2-16-16V318.4c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2V352c0 17.7 14.3 32 32 32h32v64c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V372c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12v76c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V329.1L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1h7.2H256h32c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\"chart-column\":[512,512,[],\"e0e3\",\"M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm128-64V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V224c0-17.7 14.3-32 32-32zM480 96V320c0 17.7-14.3 32-32 32s-32-14.3-32-32V96c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],infinity:[640,512,[8734,9854],\"f534\",\"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1v29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9V241.1zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1v29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1V241.1c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"],\"vial-circle-check\":[512,512,[],\"e596\",\"M0 64C0 46.3 14.3 32 32 32H96h64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32V266.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96V96C14.3 96 0 81.7 0 64zM96 96v96h64V96H96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\"person-arrow-down-to-line\":[640,512,[],\"e538\",\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352V352h16v96H184zm-64 0H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H152h80H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H264V256.9l28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6H177.1c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9V448zM464 64V306.7l-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7V64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],voicemail:[640,512,[],\"f897\",\"M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144H496c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80H263.8zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],fan:[512,512,[],\"f863\",\"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224H29.4C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480v2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288h2.6c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32V29.4C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"person-walking-luggage\":[576,512,[],\"e554\",\"M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"],\"up-down\":[256,512,[8597,11021,\"arrows-alt-v\"],\"f338\",\"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160H80V352H24c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4H176V160h56c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"],\"cloud-moon-rain\":[576,512,[],\"f73c\",\"M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96H367.9zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"],calendar:[448,512,[128197,128198],\"f133\",\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"],trailer:[640,512,[],\"e041\",\"M48 32C21.5 32 0 53.5 0 80V336c0 26.5 21.5 48 48 48H65.1c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96H488h8H608c17.7 0 32-14.3 32-32s-14.3-32-32-32H544V80c0-26.5-21.5-48-48-48H48zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21V112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],bahai:[576,512,[\"haykal\"],\"f666\",\"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"],\"sd-card\":[384,512,[],\"f7c2\",\"M320 0H141.3C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 88v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0v48c0 13.3-10.7 24-24 24s-24-10.7-24-24V88c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],dragon:[640,512,[128009],\"f6d5\",\"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"],\"shoe-prints\":[640,512,[],\"f54b\",\"M416 0C352.3 0 256 32 256 32V160c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64h32V32H192c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32V480s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64H96V352H64c-35.3 0-64 28.7-64 64z\"],\"circle-plus\":[512,512,[\"plus-circle\"],\"f055\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\"face-grin-tongue-wink\":[512,512,[128540,\"grin-tongue-wink\"],\"f58b\",\"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448V401.1c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2V448c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6V448c0 35.3-28.7 64-64 64s-64-28.7-64-64V402.6c0-14.7 11.9-26.6 26.6-26.6h2c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9h2c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"hand-holding\":[576,512,[],\"f4bd\",\"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-366.1-8.3a.5 .5 0 1 1 -.9 .2 .5 .5 0 1 1 .9-.2z\"],\"plug-circle-exclamation\":[576,512,[],\"e55d\",\"M96 0C78.3 0 64 14.3 64 32v96h64V32c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32v96h64V32c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32v32c0 77.4 55 142 128 156.8V480c0 17.7 14.3 32 32 32s32-14.3 32-32V412.8c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32H32zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16v80c0 8.8-7.2 16-16 16s-16-7.2-16-16V288c0-8.8 7.2-16 16-16z\"],\"link-slash\":[640,512,[\"chain-broken\",\"chain-slash\",\"unlink\"],\"f127\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM116.6 187.9L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9zM220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3L220.9 270z\"],clone:[512,512,[],\"f24d\",\"M288 448H64V224h64V160H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H288c35.3 0 64-28.7 64-64V384H288v64zm-64-96H448c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H224c-35.3 0-64 28.7-64 64V288c0 35.3 28.7 64 64 64z\"],\"person-walking-arrow-loop-left\":[640,512,[],\"e551\",\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384H480c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96H461.3l25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"],\"arrow-up-z-a\":[576,512,[\"sort-alpha-up-alt\"],\"f882\",\"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400H395.8z\"],\"fire-flame-curved\":[384,512,[\"fire-alt\"],\"f7e4\",\"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"],tornado:[448,512,[127786],\"f76f\",\"M0 32V45.6C0 62.7 1.7 79.6 5 96H357.8c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0H32C14.3 0 0 14.3 0 32zm352.2 96H13.6c12.2 35.9 32.3 68.7 58.8 96H412l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3H445c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9H110.2c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9H288z\"],\"file-circle-plus\":[576,512,[58606],\"e494\",\"M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384v38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v48H368c-8.8 0-16 7.2-16 16s7.2 16 16 16h48v48c0 8.8 7.2 16 16 16s16-7.2 16-16V384h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H448V304z\"],\"book-quran\":[448,512,[\"quran\"],\"f687\",\"M352 0c53 0 96 43 96 96V416c0 53-43 96-96 96H64 32c-17.7 0-32-14.3-32-32s14.3-32 32-32V384c-17.7 0-32-14.3-32-32V32C0 14.3 14.3 0 32 0H64 352zm0 384H96v64H352c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"],anchor:[576,512,[9875],\"f13d\",\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80H224c-17.7 0-32 14.3-32 32s14.3 32 32 32h32V448H208c-53 0-96-43-96-96v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 88.4 71.6 160 160 160h80 80c88.4 0 160-71.6 160-160v-6.1l7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7V352c0 53-43 96-96 96H320V240h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H341.1z\"],\"border-all\":[448,512,[],\"f84c\",\"M384 96V224H256V96H384zm0 192V416H256V288H384zM192 224H64V96H192V224zM64 288H192V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"],\"face-angry\":[512,512,[128544,\"angry\"],\"f556\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\"cookie-bite\":[512,512,[],\"f564\",\"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6v0c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9v0c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"arrow-trend-down\":[576,512,[],\"e097\",\"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32H544c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352H384z\"],rss:[448,512,[\"feed\"],\"f09e\",\"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\"draw-polygon\":[448,512,[],\"f5ee\",\"M96 151.4V360.6c9.7 5.6 17.8 13.7 23.4 23.4H328.6c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1l0 0 32-56 4.5-7.9-.1-.3H119.4c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32H119.4c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4V151.4C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32H328.6c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"],\"scale-balanced\":[640,512,[9878,\"balance-scale\"],\"f24e\",\"M384 32H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H398.4c-5.2 25.8-22.9 47.1-46.4 57.3V448H512c17.7 0 32 14.3 32 32s-14.3 32-32 32H320 128c-17.7 0-32-14.3-32-32s14.3-32 32-32H288V153.3c-23.5-10.3-41.2-31.6-46.4-57.3H128c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288H584.4L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320H199.3L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z\"],\"gauge-simple-high\":[512,512,[61668,\"tachometer\",\"tachometer-fast\"],\"f62a\",\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"],shower:[512,512,[128703],\"f2cc\",\"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9V448c0 17.7 14.3 32 32 32s32-14.3 32-32V131.9zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],desktop:[576,512,[128421,61704,\"desktop-alt\"],\"f390\",\"M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z\"],m:[448,512,[109],\"4d\",\"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.2c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V169.7L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7V448c0 17.7-14.3 32-32 32s-32-14.3-32-32V64C0 49.9 9.2 37.5 22.7 33.4z\"],\"table-list\":[512,512,[\"th-list\"],\"f00b\",\"M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zm64 0v64h64V96H64zm384 0H192v64H448V96zM64 224v64h64V224H64zm384 0H192v64H448V224zM64 352v64h64V352H64zm384 0H192v64H448V352z\"],\"comment-sms\":[512,512,[\"sms\"],\"f7cd\",\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3 0 0 0 0 0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8H152c8.8 0 16 7.2 16 16s-7.2 16-16 16H132.8c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h27.2c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176H392c8.8 0 16 7.2 16 16s-7.2 16-16 16H372.8c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8H352c-8.8 0-16-7.2-16-16s7.2-16 16-16h27.2c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2v96c0 8.8-7.2 16-16 16s-16-7.2-16-16V240l-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240v48c0 8.8-7.2 16-16 16s-16-7.2-16-16V192c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z\"],book:[448,512,[128212],\"f02d\",\"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"user-plus\":[640,512,[],\"f234\",\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM504 312V248H440c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V136c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H552v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],check:[448,512,[10003,10004],\"f00c\",\"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"],\"battery-three-quarters\":[576,512,[\"battery-4\"],\"f241\",\"M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm272 96H96V320H352V192z\"],\"house-circle-check\":[640,512,[],\"e509\",\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1h32v69.7c-.1 .9-.1 1.8-.1 2.8V472c0 22.1 17.9 40 40 40h16c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2H160h24c22.1 0 40-17.9 40-40V448 384c0-17.7 14.3-32 32-32h64l.7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"],\"angle-left\":[320,512,[8249],\"f104\",\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\"diagram-successor\":[512,512,[],\"e47a\",\"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"],\"truck-arrow-right\":[640,512,[],\"e58b\",\"M0 48C0 21.5 21.5 0 48 0H368c26.5 0 48 21.5 48 48V96h50.7c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3V256v32 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H576c0 53-43 96-96 96s-96-43-96-96H256c0 53-43 96-96 96s-96-43-96-96H48c-26.5 0-48-21.5-48-48V48zM416 256H544V237.3L466.7 160H416v96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39H96c-13.3 0-24 10.7-24 24s10.7 24 24 24H262.1l-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"],\"arrows-split-up-and-left\":[512,512,[],\"e4bc\",\"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3V384c0 35.3 28.7 64 64 64h64c17.7 0 32 14.3 32 32s-14.3 32-32 32H416c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64H109.3l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256H224c23.3 0 45.2 6.2 64 17.1V109.3l-41.4 41.4z\"],\"hand-fist\":[448,512,[9994,\"fist-raised\"],\"f6de\",\"M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"],\"cloud-moon\":[640,512,[],\"f6c3\",\"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80H96c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"],briefcase:[512,512,[128188],\"f0b1\",\"M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z\"],\"person-falling\":[512,512,[],\"e546\",\"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0h-1.4l92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32V278.2c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\"image-portrait\":[384,512,[\"portrait\"],\"f3e0\",\"M384 64c0-35.3-28.7-64-64-64H64C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6h86.9c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4H107.4C92.3 384 80 371.7 80 356.6z\"],\"user-tag\":[640,512,[],\"f507\",\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1v-33c-15.9-4.7-32.8-7.2-50.3-7.2H178.3zM384 224c-17.7 0-32 14.3-32 32v82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7H384zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],rug:[640,512,[],\"e569\",\"M24 64H56 80V88v88 80 80 88 24H56 24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V360H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V280H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V200H24c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V112H24C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0H528V448H112V64zM640 88c0 13.3-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v32h8c13.3 0 24 10.7 24 24s-10.7 24-24 24h-8v40h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H584 560V424 336 256 176 88 64h24 32c13.3 0 24 10.7 24 24z\"],\"earth-europe\":[512,512,[\"globe-europe\"],\"f7a2\",\"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1v9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1h1c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24v4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H379.3c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3h11.3c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16H454c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4H251.4c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3v3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3H248c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"],\"cart-flatbed-suitcase\":[640,512,[\"luggage-cart\"],\"f59d\",\"M0 32C0 14.3 14.3 0 32 0H48c44.2 0 80 35.8 80 80V368c0 8.8 7.2 16 16 16H608c17.7 0 32 14.3 32 32s-14.3 32-32 32H541.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H253.3c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16H144c-44.2 0-80-35.8-80-80V80c0-8.8-7.2-16-16-16H32C14.3 64 0 49.7 0 32zM432 96V56c0-4.4-3.6-8-8-8H344c-4.4 0-8 3.6-8 8V96h96zM288 96V56c0-30.9 25.1-56 56-56h80c30.9 0 56 25.1 56 56V96 320H288V96zM512 320V96h16c26.5 0 48 21.5 48 48V272c0 26.5-21.5 48-48 48H512zM240 96h16V320H240c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48z\"],\"rectangle-xmark\":[512,512,[62164,\"rectangle-times\",\"times-rectangle\",\"window-close\"],\"f410\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],\"baht-sign\":[320,512,[],\"e0ac\",\"M144 0c-17.7 0-32 14.3-32 32V64H37.6C16.8 64 0 80.8 0 101.6V224v41.7V288 406.3c0 23 18.7 41.7 41.7 41.7H112v32c0 17.7 14.3 32 32 32s32-14.3 32-32V448h32c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112V32c0-17.7-14.3-32-32-32zM112 128v96H64V128h48zm64 96V128c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64v96H64V288h48zm64 96V288h32c26.5 0 48 21.5 48 48s-21.5 48-48 48H176z\"],\"book-open\":[576,512,[128214,128366],\"f518\",\"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5V78.6c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8V454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5V83.8c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11V456c0 11.4 11.7 19.3 22.4 15.5z\"],\"book-journal-whills\":[448,512,[\"journal-whills\"],\"f66a\",\"M0 96C0 43 43 0 96 0H384h32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"],handcuffs:[640,512,[],\"e4f8\",\"M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1V184c0-13.3 10.7-24 24-24h8c0-17.7 14.3-32 32-32s32 14.3 32 32h8c13.3 0 24 10.7 24 24v16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"triangle-exclamation\":[512,512,[9888,\"exclamation-triangle\",\"warning\"],\"f071\",\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],database:[448,512,[],\"f1c0\",\"M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z\"],share:[512,512,[\"mail-forward\"],\"f064\",\"M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"],\"bottle-droplet\":[320,512,[],\"e4c4\",\"M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8v64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256V448c0 35.3 28.7 64 64 64H224c35.3 0 64-28.7 64-64V256c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1V56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 0 0 0H104l0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z\"],\"mask-face\":[640,512,[],\"e1d7\",\"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1H144 128 56c-30.9 0-56 25.1-56 56v85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269V184c0-30.9-25.1-56-56-56H512 496h-9.2c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269V184c0-4.4 3.6-8 8-8H96v48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3V176h40c4.4 0 8 3.6 8 8v85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16zm16 48H432c8.8 0 16 7.2 16 16s-7.2 16-16 16H208c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16H400c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16z\"],\"hill-rockslide\":[576,512,[],\"e508\",\"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2H293.4c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3V432c0 44.2 35.8 80 80 80H396.7c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9V309.4c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9v53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"right-left\":[512,512,[\"exchange-alt\"],\"f362\",\"M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z\"],\"paper-plane\":[512,512,[61913],\"f1d8\",\"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480V396.4c0-4 1.5-7.8 4.2-10.7L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"],\"road-circle-exclamation\":[640,512,[],\"e565\",\"M213.2 32H288V96c0 17.7 14.3 32 32 32s32-14.3 32-32V32h74.8c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8V224c0-17.7-14.3-32-32-32s-32 14.3-32 32v64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32v64H86.6C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16v80c0 8.8 7.2 16 16 16s16-7.2 16-16V288c0-8.8-7.2-16-16-16z\"],dungeon:[512,512,[],\"f6d9\",\"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9h80c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24h80c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288H24c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V312c0-13.3-10.7-24-24-24H408zM24 416c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H24zm384 0c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V440c0-13.3-10.7-24-24-24H408zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V192zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V224z\"],\"align-right\":[448,512,[],\"f038\",\"M448 64c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z\"],\"money-bill-1-wave\":[576,512,[\"money-bill-wave-alt\"],\"f53b\",\"M0 112.5V422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4V89.7c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416H64V352c35.3 0 64 28.7 64 64zM64 224V160h64c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64v64H448zm64-192c-35.3 0-64-28.7-64-64h64v64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6V276h-4c-11 0-20 9-20 20s9 20 20 20h24 24c11 0 20-9 20-20s-9-20-20-20h-4V208c0-11-9-20-20-20H272c-11 0-20 9-20 20z\"],\"life-ring\":[512,512,[],\"f1cd\",\"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],hands:[576,512,[\"sign-language\",\"signing\"],\"f2a7\",\"M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7v-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8 0 0 0 0 43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4H224 210.7l0 0H179l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352v8c0 83.9-68.1 152-152 152H120c-13.3 0-24-10.7-24-24s10.7-24 24-24h92c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H56c-13.3 0-24-10.7-24-24s10.7-24 24-24H212c6.6 0 12-5.4 12-12s-5.4-12-12-12H88c-13.3 0-24-10.7-24-24s10.7-24 24-24H224l0 0 0 0h93.2L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z\"],\"calendar-day\":[448,512,[],\"f783\",\"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm80 64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80z\"],\"water-ladder\":[576,512,[\"ladder-water\",\"swimming-pool\"],\"f5c5\",\"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V224H384V127.7C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7V361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3h0V288H192v96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1V127.7zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1l0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7l0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"],\"arrows-up-down\":[320,512,[\"arrows-v\"],\"f07d\",\"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3V402.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7V109.3l41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\"face-grimace\":[512,512,[128556,\"grimace\"],\"f57f\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112h-8V360l55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344V304h8c23.8 0 43.5 17.3 47.3 40zM328 344H264V304h64v40zm0 56H264V360h64v40zm-80-96v40l-64 0V304h64zm0 56v40H184V360l64 0zm-80-16H112.7c3.8-22.7 23.6-40 47.3-40h8v40zm0 56h-8c-23.8 0-43.5-17.3-47.3-40H168v40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\"wheelchair-move\":[448,512,[\"wheelchair-alt\"],\"e2ce\",\"M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224h97.4c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288H306.7c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\"turn-down\":[384,512,[10549,\"level-down-alt\"],\"f3be\",\"M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5h88l0-192c0-17.7-14.3-32-32-32H32C14.3 96 0 81.7 0 64V32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192h88c9.6 0 18.2 5.7 22 14.5z\"],\"person-walking-arrow-right\":[640,512,[],\"e552\",\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224H384c-17.7 0-32 14.3-32 32s14.3 32 32 32H530.7l-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"],\"square-envelope\":[448,512,[\"envelope-square\"],\"f199\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144H352c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4V336c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V210.4l136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"],dice:[640,512,[127922],\"f522\",\"M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64H576c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H461.7c11.6 36 3.1 77-25.4 105.5L320 413.8V448zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"bowling-ball\":[512,512,[],\"f436\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],brain:[512,512,[129504],\"f5dc\",\"M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z\"],bandage:[640,512,[129657,\"band-aid\"],\"f462\",\"M480 416h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H480V416zM448 96H192V416H448V96zM64 96C28.7 96 0 124.7 0 160V352c0 35.3 28.7 64 64 64h96V96H64zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"calendar-minus\":[448,512,[],\"f272\",\"M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-13.3 0-24 10.7-24 24s10.7 24 24 24H312z\"],\"circle-xmark\":[512,512,[61532,\"times-circle\",\"xmark-circle\"],\"f057\",\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"],gifts:[640,512,[],\"f79c\",\"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96H48C21.5 96 0 117.5 0 144V464c0 26.5 21.5 48 48 48H200.6c-5.4-9.4-8.6-20.3-8.6-32V256c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96H217.8l28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224H344c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24H272c-26.5 0-48 21.5-48 48v80H416V256h32v96H640V272c0-26.5-21.5-48-48-48h-4.1c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48H416V384H224v80zm224 48H592c26.5 0 48-21.5 48-48V384H448V512zm96-312c0 13.3-10.7 24-24 24H470.9l29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"],hotel:[512,512,[127976],\"f594\",\"M0 32C0 14.3 14.3 0 32 0H480c17.7 0 32 14.3 32 32s-14.3 32-32 32V448c17.7 0 32 14.3 32 32s-14.3 32-32 32H304V464c0-26.5-21.5-48-48-48s-48 21.5-48 48v48H32c-17.7 0-32-14.3-32-32s14.3-32 32-32V64C14.3 64 0 49.7 0 32zm96 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H112c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H240zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V112c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H112zm112 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16H368zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8H328z\"],\"earth-asia\":[512,512,[127759,\"globe-asia\"],\"f57e\",\"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9h2.3c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"],\"id-card-clip\":[576,512,[\"id-card-alt\"],\"f47f\",\"M256 0h64c17.7 0 32 14.3 32 32V96c0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32V32c0-17.7 14.3-32 32-32zM64 64H192v48c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48V64H512c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7H389.3c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3H229.3c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"],\"magnifying-glass-plus\":[512,512,[\"search-plus\"],\"f00e\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24V232h64c13.3 0 24-10.7 24-24s-10.7-24-24-24H232V120c0-13.3-10.7-24-24-24s-24 10.7-24 24v64H120c-13.3 0-24 10.7-24 24s10.7 24 24 24h64v64z\"],\"thumbs-up\":[512,512,[128077,61575],\"f164\",\"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z\"],\"user-clock\":[640,512,[],\"f4fd\",\"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304h91.4c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144H29.7C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16s-7.2-16-16-16H512V304c0-8.8-7.2-16-16-16z\"],\"hand-dots\":[512,512,[\"allergies\"],\"f461\",\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V336c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64H304c97.2 0 176-78.8 176-176V128c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V64c0-17.7-14.3-32-32-32s-32 14.3-32 32V240c0 8.8-7.2 16-16 16s-16-7.2-16-16V32zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\"file-invoice\":[384,512,[],\"f570\",\"M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM80 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H80c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96H288c17.7 0 32 14.3 32 32v64c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V256c0-17.7 14.3-32 32-32zm0 32v64H288V256H96zM240 416h64c8.8 0 16 7.2 16 16s-7.2 16-16 16H240c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\"window-minimize\":[512,512,[128469],\"f2d1\",\"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H32z\"],\"mug-saucer\":[640,512,[\"coffee\"],\"f0f4\",\"M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],brush:[384,512,[],\"f55d\",\"M162.4 6c-1.5-3.6-5-6-8.9-6h-19c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6H48C21.5 0 0 21.5 0 48V224v22.4V256H9.6 374.4 384v-9.6V224 48c0-26.5-21.5-48-48-48H230.5c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],mask:[576,512,[],\"f6fa\",\"M288 64C64 64 0 160 0 272S80 448 176 448h8.4c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4H400c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\"magnifying-glass-minus\":[512,512,[\"search-minus\"],\"f010\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24H280c13.3 0 24-10.7 24-24s-10.7-24-24-24H136z\"],\"ruler-vertical\":[256,512,[],\"f548\",\"M0 48C0 21.5 21.5 0 48 0H208c26.5 0 48 21.5 48 48V96H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v64H176c-8.8 0-16 7.2-16 16s7.2 16 16 16h80v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48z\"],\"user-large\":[512,512,[\"user-alt\"],\"f406\",\"M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7H481.3c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320H161.3z\"],\"train-tram\":[448,512,[128650],\"e5b4\",\"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0H361.2c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15H248V96h40c53 0 96 43 96 96V352c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1H365.3c-8.5 0-16.6-3.4-22.6-9.4L288 448H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H43c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352V192c0-53 43-96 96-96h40V48H86.8zM160 160c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32H288c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32H160zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\"user-nurse\":[448,512,[],\"f82f\",\"M96 128V70.2c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30V128h-.3c.2 2.6 .3 5.3 .3 8v40c0 70.7-57.3 128-128 128s-128-57.3-128-128V136c0-2.7 .1-5.4 .3-8H96zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80V160H144v16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48V64H192c-4.4 0-8 3.6-8 8V88c0 4.4 3.6 8 8 8h16v16c0 4.4 3.6 8 8 8h16c4.4 0 8-3.6 8-8V96h16c4.4 0 8-3.6 8-8V72c0-4.4-3.6-8-8-8H240V48c0-4.4-3.6-8-8-8H216c-4.4 0-8 3.6-8 8z\"],syringe:[512,512,[128137],\"f48e\",\"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4H97.9L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57V325.3c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"],\"cloud-sun\":[640,512,[9925],\"f6c4\",\"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.1-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80H288c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"],\"stopwatch-20\":[448,512,[],\"e06f\",\"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32h16V98.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6V64h16c17.7 0 32-14.3 32-32s-14.3-32-32-32H176zM288 204c28.7 0 52 23.3 52 52v96c0 28.7-23.3 52-52 52s-52-23.3-52-52V256c0-28.7 23.3-52 52-52zm-12 52v96c0 6.6 5.4 12 12 12s12-5.4 12-12V256c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5v2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9H192c11 0 20 9 20 20s-9 20-20 20H128c-11 0-20-9-20-20V368.3c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8v-2.2c0-6.9-5.6-12.5-12.5-12.5z\"],\"square-full\":[512,512,[128997,128998,128999,129e3,129001,129002,129003,11035,11036],\"f45c\",\"M0 0H512V512H0V0z\"],magnet:[448,512,[129522],\"f076\",\"M0 160v96C0 379.7 100.3 480 224 480s224-100.3 224-224V160H320v96c0 53-43 96-96 96s-96-43-96-96V160H0zm0-32H128V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v64zm320 0H448V64c0-17.7-14.3-32-32-32H352c-17.7 0-32 14.3-32 32v64z\"],jar:[320,512,[],\"e516\",\"M32 32C32 14.3 46.3 0 64 0H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64H256c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V160zm96 64c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32H224c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H96z\"],\"note-sticky\":[448,512,[62026,\"sticky-note\"],\"f249\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H288V368c0-26.5 21.5-48 48-48H448V96c0-35.3-28.7-64-64-64H64zM448 352H402.7 336c-8.8 0-16 7.2-16 16v66.7V480l32-32 64-64 32-32z\"],\"bug-slash\":[640,512,[],\"e490\",\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H479.7c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160H264c-8.3 0-16.3 1-24 2.8L38.8 5.1zm392 430.3L336 360.7V479.2c36.6-3.6 69.7-19.6 94.8-43.8zM166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7H96c-17.7 0-32 14.3-32 32s14.3 32 32 32h64c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6V335.5L166.7 227.3zM320 0c-53 0-96 43-96 96v3.6c0 15.7 12.7 28.4 28.4 28.4H387.6c15.7 0 28.4-12.7 28.4-28.4V96c0-53-43-96-96-96z\"],\"arrow-up-from-water-pump\":[576,512,[],\"e4b6\",\"M112 0C85.5 0 64 21.5 64 48V256H48c-26.5 0-48 21.5-48 48v96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400V304c0-26.5-21.5-48-48-48H480l0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256H288V48c0-26.5-21.5-48-48-48H112zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1l0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7l0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"],bone:[576,512,[129460],\"f5d7\",\"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2H384c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336H192c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"],\"user-injured\":[448,512,[],\"f728\",\"M240 80H342.7c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80h81.4l91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16H97c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7V512H243.7L181.5 408.2 124 312.4zm33-7.2L204.3 384H272c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48h82.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512H64V345.4C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48H223.5l57.1 95.2C303 507.2 320 487.6 320 464z\"],\"face-sad-tear\":[512,512,[128546,\"sad-tear\"],\"f5b4\",\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],plane:[576,512,[],\"f072\",\"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"],\"tent-arrows-down\":[576,512,[],\"e581\",\"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V146.1l-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512H240h16c17.7 0 32-14.3 32-32V361.9c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7H464h16c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"],exclamation:[64,512,[10069,10071,61738],\"21\",\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\"arrows-spin\":[512,512,[],\"e4bb\",\"M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9H448c8.8 0 16-7.2 16-16V64c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3V99.2c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8V64c0-8.8-7.2-16-16-16H64c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32H99.2c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224H412.8c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8V448c0 8.8 7.2 16 16 16H448c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9H64c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3V412.8c-10.3 2.1-21 3.2-32 3.2z\"],print:[512,512,[128424,128438,9113],\"f02f\",\"M128 0C92.7 0 64 28.7 64 64v96h64V64H354.7L384 93.3V160h64V93.3c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0H128zM384 352v32 64H128V384 368 352H384zm64 32h32c17.7 0 32-14.3 32-32V256c0-35.3-28.7-64-64-64H64c-35.3 0-64 28.7-64 64v96c0 17.7 14.3 32 32 32H64v64c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V384zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\"turkish-lira-sign\":[384,512,[\"try\",\"turkish-lira\"],\"e2bb\",\"M96 32c17.7 0 32 14.3 32 32V99.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9v29.4l119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9V416h63.8c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480H96c-17.7 0-32-14.3-32-32V280.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6V184.1l-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6V64c0-17.7 14.3-32 32-32z\"],\"dollar-sign\":[320,512,[128178,61781,\"dollar\",\"usd\"],\"24\",\"M160 0c17.7 0 32 14.3 32 32V67.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V445.1c-.4-.1-.9-.1-1.3-.2l-.2 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11V32c0-17.7 14.3-32 32-32z\"],x:[384,512,[120],\"58\",\"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"],\"magnifying-glass-dollar\":[512,512,[\"search-dollar\"],\"f688\",\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20v14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1l0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4V312c0 11 9 20 20 20s20-9 20-20V298.2c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7V104z\"],\"users-gear\":[640,512,[\"users-cog\"],\"f509\",\"M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320H234.7c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7H106.7C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2H261.3C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7H455.2c-2.1-5.2-3.2-10.9-3.2-16.4v-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192H490.7c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3v-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6v3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1v-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9v3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1v3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9v-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"],\"person-military-pointing\":[576,512,[],\"e54a\",\"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25H400c8.8 0 16-7.2 16-16V17.4C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H241.6c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40H224v89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5H240 72zm345.7 20.9L246.6 416H416V369.7l53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448v32c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V448H224z\"],\"building-columns\":[512,512,[\"bank\",\"institution\",\"museum\",\"university\"],\"f19c\",\"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160v8c0 13.3 10.7 24 24 24H456c13.3 0 24-10.7 24-24v-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224H64V420.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512H480c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1V224H384V416H344V224H280V416H232V224H168V416H128V224zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],umbrella:[576,512,[],\"f0e9\",\"M288 0c17.7 0 32 14.3 32 32V49.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7V32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2V430.6c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4V316.2c8.5-7.6 19.7-12.2 32-12.2z\"],trowel:[512,512,[],\"e589\",\"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"],d:[384,512,[100],\"44\",\"M0 96C0 60.7 28.7 32 64 32h96c123.7 0 224 100.3 224 224s-100.3 224-224 224H64c-35.3 0-64-28.7-64-64V96zm160 0H64V416h96c88.4 0 160-71.6 160-160s-71.6-160-160-160z\"],stapler:[640,512,[],\"e5af\",\"M640 299.3V304 432c0 26.5-21.5 48-48 48H512 448 64c-17.7 0-32-14.3-32-32s14.3-32 32-32H448V368H96c-17.7 0-32-14.3-32-32V219.4L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304V288L128 230.9V304H448z\"],\"masks-theater\":[640,512,[127917,\"theater-masks\"],\"f630\",\"M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z\"],\"kip-sign\":[384,512,[],\"e1c4\",\"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4V64c0-17.7-14.3-32-32-32S64 46.3 64 64V224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32H64V448c0 17.7 14.3 32 32 32s32-14.3 32-32V325.6L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H182.5L340.8 88.3z\"],\"hand-point-left\":[512,512,[],\"f0a5\",\"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"],\"handshake-simple\":[640,512,[129309,\"handshake-alt\"],\"f4c6\",\"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352H592c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48H516h-4-.7l-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48H48c-26.5 0-48 21.5-48 48V304c0 26.5 21.5 48 48 48H156.2l91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"],\"jet-fighter\":[640,512,[\"fighter-jet\"],\"f0fb\",\"M160 24c0-13.3 10.7-24 24-24H296c13.3 0 24 10.7 24 24s-10.7 24-24 24H280L384 192H500.4c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1H384L280 464h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24h8V320H160l-54.6 54.6c-6 6-14.1 9.4-22.6 9.4H64c-17.7 0-32-14.3-32-32V288c-17.7 0-32-14.3-32-32s14.3-32 32-32V160c0-17.7 14.3-32 32-32H82.7c8.5 0 16.6 3.4 22.6 9.4L160 192h32V48h-8c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z\"],\"square-share-nodes\":[448,512,[\"share-alt-square\"],\"f1e1\",\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"],barcode:[512,512,[],\"f02a\",\"M24 32C10.7 32 0 42.7 0 56V456c0 13.3 10.7 24 24 24H40c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H24zm88 0c-8.8 0-16 7.2-16 16V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H184zm96 0c-13.3 0-24 10.7-24 24V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H280zM448 56V456c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24H472c-13.3 0-24 10.7-24 24zm-64-8V464c0 8.8 7.2 16 16 16s16-7.2 16-16V48c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"],\"plus-minus\":[384,512,[],\"e43c\",\"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H160V320c0 17.7 14.3 32 32 32s32-14.3 32-32V208H336c17.7 0 32-14.3 32-32s-14.3-32-32-32H224V32zM0 480c0 17.7 14.3 32 32 32H352c17.7 0 32-14.3 32-32s-14.3-32-32-32H32c-17.7 0-32 14.3-32 32z\"],video:[576,512,[\"video-camera\"],\"f03d\",\"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"],\"graduation-cap\":[640,512,[127891,\"mortar-board\"],\"f19d\",\"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9v28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5V291.9c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"],\"hand-holding-medical\":[576,512,[],\"e05c\",\"M224 24V80H168c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h56v56c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V176h56c13.3 0 24-10.7 24-24V104c0-13.3-10.7-24-24-24H320V24c0-13.3-10.7-24-24-24H248c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h16 64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288 272 193.7c-29.1 0-57.3 9.9-80 28L68.8 384H32c-17.7 0-32 14.3-32 32v64c0 17.7 14.3 32 32 32H192 352.5c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0 0 0c-.3 0-.6 0-.9 0z\"],\"person-circle-check\":[576,512,[],\"e53e\",\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"],\"turn-up\":[384,512,[10548,\"level-up-alt\"],\"f3bf\",\"M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5h88l0 192c0 17.7-14.3 32-32 32H32c-17.7 0-32 14.3-32 32v32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192h88c9.6 0 18.2-5.7 22-14.5z\"]};!function(c){try{for(var l=arguments.length,s=new Array(1<l?l-1:0),a=1;a<l;a++)s[a-1]=arguments[a];c.apply(void 0,s)}catch(c){if(!h)throw c}}(function(){d(\"fas\",p),d(\"fa-solid\",p)})}(),function(){\"use strict\";function a(l,c){var s,a=Object.keys(l);return Object.getOwnPropertySymbols&&(s=Object.getOwnPropertySymbols(l),c&&(s=s.filter(function(c){return Object.getOwnPropertyDescriptor(l,c).enumerable})),a.push.apply(a,s)),a}function u(l){for(var c=1;c<arguments.length;c++){var s=null!=arguments[c]?arguments[c]:{};c%2?a(Object(s),!0).forEach(function(c){t(l,c,s[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(s)):a(Object(s)).forEach(function(c){Object.defineProperty(l,c,Object.getOwnPropertyDescriptor(s,c))})}return l}function z(c){return(z=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(c){return typeof c}:function(c){return c&&\"function\"==typeof Symbol&&c.constructor===Symbol&&c!==Symbol.prototype?\"symbol\":typeof c})(c)}function e(c,l){for(var s=0;s<l.length;s++){var a=l[s];a.enumerable=a.enumerable||!1,a.configurable=!0,\"value\"in a&&(a.writable=!0),Object.defineProperty(c,a.key,a)}}function t(c,l,s){return l in c?Object.defineProperty(c,l,{value:s,enumerable:!0,configurable:!0,writable:!0}):c[l]=s,c}function n(c,l){return function(c){if(Array.isArray(c))return c}(c)||function(c,l){var s=null==c?null:\"undefined\"!=typeof Symbol&&c[Symbol.iterator]||c[\"@@iterator\"];if(null!=s){var a,z,e=[],H=!0,t=!1;try{for(s=s.call(c);!(H=(a=s.next()).done)&&(e.push(a.value),!l||e.length!==l);H=!0);}catch(c){t=!0,z=c}finally{try{H||null==s.return||s.return()}finally{if(t)throw z}}return e}}(c,l)||s(c,l)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function M(c){return function(c){if(Array.isArray(c))return H(c)}(c)||function(c){if(\"undefined\"!=typeof Symbol&&null!=c[Symbol.iterator]||null!=c[\"@@iterator\"])return Array.from(c)}(c)||s(c)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function s(c,l){if(c){if(\"string\"==typeof c)return H(c,l);var s=Object.prototype.toString.call(c).slice(8,-1);return\"Map\"===(s=\"Object\"===s&&c.constructor?c.constructor.name:s)||\"Set\"===s?Array.from(c):\"Arguments\"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?H(c,l):void 0}}function H(c,l){(null==l||l>c.length)&&(l=c.length);for(var s=0,a=new Array(l);s<l;s++)a[s]=c[s];return a}function c(){}var l={},V={},r=null,h={mark:c,measure:c};try{\"undefined\"!=typeof window&&(l=window),\"undefined\"!=typeof document&&(V=document),\"undefined\"!=typeof MutationObserver&&(r=MutationObserver),\"undefined\"!=typeof performance&&(h=performance)}catch(c){}var i=(l.navigator||{}).userAgent,m=void 0===i?\"\":i,C=l,v=V,o=r,i=h,f=!!C.document,L=!!v.documentElement&&!!v.head&&\"function\"==typeof v.addEventListener&&\"function\"==typeof v.createElement,d=~m.indexOf(\"MSIE\")||~m.indexOf(\"Trident/\"),l=\"___FONT_AWESOME___\",p=16,b=\"svg-inline--fa\",g=\"data-fa-i2svg\",w=\"data-fa-pseudo-element\",k=\"data-fa-pseudo-element-pending\",y=\"data-prefix\",S=\"data-icon\",A=\"fontawesome-i2svg\",x=\"async\",q=[\"HTML\",\"HEAD\",\"STYLE\",\"SCRIPT\"],Z=function(){try{return!0}catch(c){return!1}}(),O=\"classic\",j=\"sharp\",P=[O,j];function N(c){return new Proxy(c,{get:function(c,l){return l in c?c[l]:c[O]}})}var E=N((t(V={},O,{fa:\"solid\",fas:\"solid\",\"fa-solid\":\"solid\",far:\"regular\",\"fa-regular\":\"regular\",fal:\"light\",\"fa-light\":\"light\",fat:\"thin\",\"fa-thin\":\"thin\",fad:\"duotone\",\"fa-duotone\":\"duotone\",fab:\"brands\",\"fa-brands\":\"brands\",fak:\"kit\",fakd:\"kit\",\"fa-kit\":\"kit\",\"fa-kit-duotone\":\"kit\"}),t(V,j,{fa:\"solid\",fass:\"solid\",\"fa-solid\":\"solid\",fasr:\"regular\",\"fa-regular\":\"regular\",fasl:\"light\",\"fa-light\":\"light\",fast:\"thin\",\"fa-thin\":\"thin\"}),V)),I=N((t(r={},O,{solid:\"fas\",regular:\"far\",light:\"fal\",thin:\"fat\",duotone:\"fad\",brands:\"fab\",kit:\"fak\"}),t(r,j,{solid:\"fass\",regular:\"fasr\",light:\"fasl\",thin:\"fast\"}),r)),T=N((t(h={},O,{fab:\"fa-brands\",fad:\"fa-duotone\",fak:\"fa-kit\",fal:\"fa-light\",far:\"fa-regular\",fas:\"fa-solid\",fat:\"fa-thin\"}),t(h,j,{fass:\"fa-solid\",fasr:\"fa-regular\",fasl:\"fa-light\",fast:\"fa-thin\"}),h)),D=N((t(m={},O,{\"fa-brands\":\"fab\",\"fa-duotone\":\"fad\",\"fa-kit\":\"fak\",\"fa-light\":\"fal\",\"fa-regular\":\"far\",\"fa-solid\":\"fas\",\"fa-thin\":\"fat\"}),t(m,j,{\"fa-solid\":\"fass\",\"fa-regular\":\"fasr\",\"fa-light\":\"fasl\",\"fa-thin\":\"fast\"}),m)),Y=/fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\\-\\ ]/,R=\"fa-layers-text\",F=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,_=N((t(V={},O,{900:\"fas\",400:\"far\",normal:\"far\",300:\"fal\",100:\"fat\"}),t(V,j,{900:\"fass\",400:\"fasr\",300:\"fasl\",100:\"fast\"}),V)),r=[1,2,3,4,5,6,7,8,9,10],h=r.concat([11,12,13,14,15,16,17,18,19,20]),W=[\"class\",\"data-prefix\",\"data-icon\",\"data-fa-transform\",\"data-fa-mask\"],U={GROUP:\"duotone-group\",SWAP_OPACITY:\"swap-opacity\",PRIMARY:\"primary\",SECONDARY:\"secondary\"},m=new Set;Object.keys(I[O]).map(m.add.bind(m)),Object.keys(I[j]).map(m.add.bind(m));var X=[].concat(P,M(m),[\"2xs\",\"xs\",\"sm\",\"lg\",\"xl\",\"2xl\",\"beat\",\"border\",\"fade\",\"beat-fade\",\"bounce\",\"flip-both\",\"flip-horizontal\",\"flip-vertical\",\"flip\",\"fw\",\"inverse\",\"layers-counter\",\"layers-text\",\"layers\",\"li\",\"pull-left\",\"pull-right\",\"pulse\",\"rotate-180\",\"rotate-270\",\"rotate-90\",\"rotate-by\",\"shake\",\"spin-pulse\",\"spin-reverse\",\"spin\",\"stack-1x\",\"stack-2x\",\"stack\",\"ul\",U.GROUP,U.SWAP_OPACITY,U.PRIMARY,U.SECONDARY]).concat(r.map(function(c){return\"\".concat(c,\"x\")})).concat(h.map(function(c){return\"w-\".concat(c)})),B=C.FontAwesomeConfig||{};v&&\"function\"==typeof v.querySelector&&[[\"data-family-prefix\",\"familyPrefix\"],[\"data-css-prefix\",\"cssPrefix\"],[\"data-family-default\",\"familyDefault\"],[\"data-style-default\",\"styleDefault\"],[\"data-replacement-class\",\"replacementClass\"],[\"data-auto-replace-svg\",\"autoReplaceSvg\"],[\"data-auto-add-css\",\"autoAddCss\"],[\"data-auto-a11y\",\"autoA11y\"],[\"data-search-pseudo-elements\",\"searchPseudoElements\"],[\"data-observe-mutations\",\"observeMutations\"],[\"data-mutate-approach\",\"mutateApproach\"],[\"data-keep-original-source\",\"keepOriginalSource\"],[\"data-measure-performance\",\"measurePerformance\"],[\"data-show-missing-icons\",\"showMissingIcons\"]].forEach(function(c){var l=n(c,2),c=l[0],l=l[1],c=\"\"===(c=function(c){var l=v.querySelector(\"script[\"+c+\"]\");if(l)return l.getAttribute(c)}(c))||\"false\"!==c&&(\"true\"===c||c);null!=c&&(B[l]=c)});V={styleDefault:\"solid\",familyDefault:\"classic\",cssPrefix:\"fa\",replacementClass:b,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:\"async\",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};B.familyPrefix&&(B.cssPrefix=B.familyPrefix);var G=u(u({},V),B);G.autoReplaceSvg||(G.observeMutations=!1);var Q={};Object.keys(V).forEach(function(l){Object.defineProperty(Q,l,{enumerable:!0,set:function(c){G[l]=c,K.forEach(function(c){return c(Q)})},get:function(){return G[l]}})}),Object.defineProperty(Q,\"familyPrefix\",{enumerable:!0,set:function(c){G.cssPrefix=c,K.forEach(function(c){return c(Q)})},get:function(){return G.cssPrefix}}),C.FontAwesomeConfig=Q;var K=[];var $=p,J={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};var c1=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";function l1(){for(var c=12,l=\"\";0<c--;)l+=c1[62*Math.random()|0];return l}function s1(c){for(var l=[],s=(c||[]).length>>>0;s--;)l[s]=c[s];return l}function a1(c){return c.classList?s1(c.classList):(c.getAttribute(\"class\")||\"\").split(\" \").filter(function(c){return c})}function z1(c){return\"\".concat(c).replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/</g,\"<\").replace(/>/g,\">\")}function e1(s){return Object.keys(s||{}).reduce(function(c,l){return c+\"\".concat(l,\": \").concat(s[l].trim(),\";\")},\"\")}function H1(c){return c.size!==J.size||c.x!==J.x||c.y!==J.y||c.rotate!==J.rotate||c.flipX||c.flipY}function t1(){var c,l,s=b,a=Q.cssPrefix,z=Q.replacementClass,e=':host,:root{--fa-font-solid:normal 900 1em/1 \"Font Awesome 6 Solid\";--fa-font-regular:normal 400 1em/1 \"Font Awesome 6 Regular\";--fa-font-light:normal 300 1em/1 \"Font Awesome 6 Light\";--fa-font-thin:normal 100 1em/1 \"Font Awesome 6 Thin\";--fa-font-duotone:normal 900 1em/1 \"Font Awesome 6 Duotone\";--fa-font-sharp-solid:normal 900 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-regular:normal 400 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-light:normal 300 1em/1 \"Font Awesome 6 Sharp\";--fa-font-sharp-thin:normal 100 1em/1 \"Font Awesome 6 Sharp\";--fa-font-brands:normal 400 1em/1 \"Font Awesome 6 Brands\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}';return\"fa\"===a&&z===s||(c=new RegExp(\"\\\\.\".concat(\"fa\",\"\\\\-\"),\"g\"),l=new RegExp(\"\\\\--\".concat(\"fa\",\"\\\\-\"),\"g\"),s=new RegExp(\"\\\\.\".concat(s),\"g\"),e=e.replace(c,\".\".concat(a,\"-\")).replace(l,\"--\".concat(a,\"-\")).replace(s,\".\".concat(z))),e}var V1=!1;function r1(){Q.autoAddCss&&!V1&&(function(c){if(c&&L){var l=v.createElement(\"style\");l.setAttribute(\"type\",\"text/css\"),l.innerHTML=c;for(var s=v.head.childNodes,a=null,z=s.length-1;-1<z;z--){var e=s[z],H=(e.tagName||\"\").toUpperCase();-1<[\"STYLE\",\"LINK\"].indexOf(H)&&(a=e)}v.head.insertBefore(l,a)}}(t1()),V1=!0)}m={mixout:function(){return{dom:{css:t1,insertCss:r1}}},hooks:function(){return{beforeDOMElementCreation:function(){r1()},beforeI2svg:function(){r1()}}}},r=C||{};r[l]||(r[l]={}),r[l].styles||(r[l].styles={}),r[l].hooks||(r[l].hooks={}),r[l].shims||(r[l].shims=[]);function M1(){v.removeEventListener(\"DOMContentLoaded\",M1),i1=1,n1.map(function(c){return c()})}var h1=r[l],n1=[],i1=!1;function m1(c){L&&(i1?setTimeout(c,0):n1.push(c))}function o1(c){var s,l=c.tag,a=c.attributes,z=void 0===a?{}:a,a=c.children,a=void 0===a?[]:a;return\"string\"==typeof c?z1(c):\"<\".concat(l,\" \").concat((s=z,Object.keys(s||{}).reduce(function(c,l){return c+\"\".concat(l,'=\"').concat(z1(s[l]),'\" ')},\"\").trim()),\">\").concat(a.map(o1).join(\"\"),\"</\").concat(l,\">\")}function f1(c,l,s){if(c&&c[l]&&c[l][s])return{prefix:l,iconName:s,icon:c[l][s]}}L&&((i1=(v.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(v.readyState))||v.addEventListener(\"DOMContentLoaded\",M1));function C1(c,l,s,a){for(var z,e,H=Object.keys(c),t=H.length,V=void 0!==a?v1(l,a):l,r=void 0===s?(z=1,c[H[0]]):(z=0,s);z<t;z++)r=V(r,c[e=H[z]],e,c);return r}var v1=function(z,e){return function(c,l,s,a){return z.call(e,c,l,s,a)}};function L1(c){c=function(c){for(var l=[],s=0,a=c.length;s<a;){var z,e=c.charCodeAt(s++);55296<=e&&e<=56319&&s<a?56320==(64512&(z=c.charCodeAt(s++)))?l.push(((1023&e)<<10)+(1023&z)+65536):(l.push(e),s--):l.push(e)}return l}(c);return 1===c.length?c[0].toString(16):null}function u1(a){return Object.keys(a).reduce(function(c,l){var s=a[l];return!!s.icon?c[s.iconName]=s.icon:c[l]=s,c},{})}function d1(c,l,s){var a=(2<arguments.length&&void 0!==s?s:{}).skipHooks,s=void 0!==a&&a,a=u1(l);\"function\"!=typeof h1.hooks.addPack||s?h1.styles[c]=u(u({},h1.styles[c]||{}),a):h1.hooks.addPack(c,u1(l)),\"fas\"===c&&d1(\"fa\",l)}var p1=h1.styles,b1=h1.shims,g1=(t(h={},O,Object.values(T[O])),t(h,j,Object.values(T[j])),h),w1=null,k1={},y1={},S1={},A1={},x1={},q1=(t(V={},O,Object.keys(E[O])),t(V,j,Object.keys(E[j])),V);function Z1(c,l){var s=l.split(\"-\"),l=s[0],s=s.slice(1).join(\"-\");return l!==c||\"\"===s||~X.indexOf(s)?null:s}function O1(){function c(a){return C1(p1,function(c,l,s){return c[s]=C1(l,a,{}),c},{})}k1=c(function(l,c,s){return c[3]&&(l[c[3]]=s),c[2]&&c[2].filter(function(c){return\"number\"==typeof c}).forEach(function(c){l[c.toString(16)]=s}),l}),y1=c(function(l,c,s){return l[s]=s,c[2]&&c[2].filter(function(c){return\"string\"==typeof c}).forEach(function(c){l[c]=s}),l}),x1=c(function(l,c,s){c=c[2];return l[s]=s,c.forEach(function(c){l[c]=s}),l});var z=\"far\"in p1||Q.autoFetchSvg,l=C1(b1,function(c,l){var s=l[0],a=l[1],l=l[2];return\"far\"!==a||z||(a=\"fas\"),\"string\"==typeof s&&(c.names[s]={prefix:a,iconName:l}),\"number\"==typeof s&&(c.unicodes[s.toString(16)]={prefix:a,iconName:l}),c},{names:{},unicodes:{}});S1=l.names,A1=l.unicodes,w1=I1(Q.styleDefault,{family:Q.familyDefault})}function j1(c,l){return(k1[c]||{})[l]}function P1(c,l){return(x1[c]||{})[l]}function N1(c){return S1[c]||{prefix:null,iconName:null}}r=function(c){w1=I1(c.styleDefault,{family:Q.familyDefault})},K.push(r),O1();function E1(){return{prefix:null,iconName:null,rest:[]}}function I1(c,l){var s=(1<arguments.length&&void 0!==l?l:{}).family,l=void 0===s?O:s,s=E[l][c],s=I[l][c]||I[l][s],c=c in h1.styles?c:null;return s||c||null}var T1=(t(l={},O,Object.keys(T[O])),t(l,j,Object.keys(T[j])),l);function D1(c,l){var l=(1<arguments.length&&void 0!==l?l:{}).skipLookups,a=void 0!==l&&l,z=(t(l={},O,\"\".concat(Q.cssPrefix,\"-\").concat(O)),t(l,j,\"\".concat(Q.cssPrefix,\"-\").concat(j)),l),e=null,H=O;(c.includes(z[O])||c.some(function(c){return T1[O].includes(c)}))&&(H=O),(c.includes(z[j])||c.some(function(c){return T1[j].includes(c)}))&&(H=j);l=c.reduce(function(c,l){var s=Z1(Q.cssPrefix,l);return p1[l]?(l=g1[H].includes(l)?D[H][l]:l,e=l,c.prefix=l):-1<q1[H].indexOf(l)?(e=l,c.prefix=I1(l,{family:H})):s?c.iconName=s:l!==Q.replacementClass&&l!==z[O]&&l!==z[j]&&c.rest.push(l),!a&&c.prefix&&c.iconName&&(s=\"fa\"===e?N1(c.iconName):{},l=P1(c.prefix,c.iconName),s.prefix&&(e=null),c.iconName=s.iconName||l||c.iconName,c.prefix=s.prefix||c.prefix,\"far\"!==c.prefix||p1.far||!p1.fas||Q.autoFetchSvg||(c.prefix=\"fas\")),c},E1());return(c.includes(\"fa-brands\")||c.includes(\"fab\"))&&(l.prefix=\"fab\"),(c.includes(\"fa-duotone\")||c.includes(\"fad\"))&&(l.prefix=\"fad\"),l.prefix||H!==j||!p1.fass&&!Q.autoFetchSvg||(l.prefix=\"fass\",l.iconName=P1(l.prefix,l.iconName)||l.iconName),\"fa\"!==l.prefix&&\"fa\"!==e||(l.prefix=w1||\"fas\"),l}var h=function(){function c(){!function(c,l){if(!(c instanceof l))throw new TypeError(\"Cannot call a class as a function\")}(this,c),this.definitions={}}var l,s,a;return l=c,(s=[{key:\"add\",value:function(){for(var s=this,c=arguments.length,l=new Array(c),a=0;a<c;a++)l[a]=arguments[a];var z=l.reduce(this._pullDefinitions,{});Object.keys(z).forEach(function(c){s.definitions[c]=u(u({},s.definitions[c]||{}),z[c]),d1(c,z[c]);var l=T[O][c];l&&d1(l,z[c]),O1()})}},{key:\"reset\",value:function(){this.definitions={}}},{key:\"_pullDefinitions\",value:function(z,c){var e=c.prefix&&c.iconName&&c.icon?{0:c}:c;return Object.keys(e).map(function(c){var l=e[c],s=l.prefix,c=l.iconName,a=l.icon,l=a[2];z[s]||(z[s]={}),0<l.length&&l.forEach(function(c){\"string\"==typeof c&&(z[s][c]=a)}),z[s][c]=a}),z}}])&&e(l.prototype,s),a&&e(l,a),Object.defineProperty(l,\"prototype\",{writable:!1}),c}(),V=[],Y1={},R1={},F1=Object.keys(R1);function _1(c,l){for(var s=arguments.length,a=new Array(2<s?s-2:0),z=2;z<s;z++)a[z-2]=arguments[z];return(Y1[c]||[]).forEach(function(c){l=c.apply(null,[l].concat(a))}),l}function W1(c){for(var l=arguments.length,s=new Array(1<l?l-1:0),a=1;a<l;a++)s[a-1]=arguments[a];(Y1[c]||[]).forEach(function(c){c.apply(null,s)})}function U1(c){var l=c,c=Array.prototype.slice.call(arguments,1);return R1[l]?R1[l].apply(null,c):void 0}function X1(c){\"fa\"===c.prefix&&(c.prefix=\"fas\");var l=c.iconName,c=c.prefix||w1;if(l)return l=P1(c,l)||l,f1(B1.definitions,c,l)||f1(h1.styles,c,l)}var B1=new h,G1={noAuto:function(){Q.autoReplaceSvg=!1,Q.observeMutations=!1,W1(\"noAuto\")},config:Q,dom:{i2svg:function(){var c=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return L?(W1(\"beforeI2svg\",c),U1(\"pseudoElements2svg\",c),U1(\"i2svg\",c)):Promise.reject(\"Operation requires a DOM of some kind.\")},watch:function(){var c=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},l=c.autoReplaceSvgRoot;!1===Q.autoReplaceSvg&&(Q.autoReplaceSvg=!0),Q.observeMutations=!0,m1(function(){Q1({autoReplaceSvgRoot:l}),W1(\"watch\",c)})}},parse:{icon:function(c){if(null===c)return null;if(\"object\"===z(c)&&c.prefix&&c.iconName)return{prefix:c.prefix,iconName:P1(c.prefix,c.iconName)||c.iconName};if(Array.isArray(c)&&2===c.length){var l=0===c[1].indexOf(\"fa-\")?c[1].slice(3):c[1],s=I1(c[0]);return{prefix:s,iconName:P1(s,l)||l}}if(\"string\"==typeof c&&(-1<c.indexOf(\"\".concat(Q.cssPrefix,\"-\"))||c.match(Y))){l=D1(c.split(\" \"),{skipLookups:!0});return{prefix:l.prefix||w1,iconName:P1(l.prefix,l.iconName)||l.iconName}}return\"string\"==typeof c?{prefix:w1,iconName:P1(w1,c)||c}:void 0}},library:B1,findIconDefinition:X1,toHtml:o1},Q1=function(){var c=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,c=void 0===c?v:c;(0<Object.keys(h1.styles).length||Q.autoFetchSvg)&&L&&Q.autoReplaceSvg&&G1.dom.i2svg({node:c})};function K1(l,c){return Object.defineProperty(l,\"abstract\",{get:c}),Object.defineProperty(l,\"html\",{get:function(){return l.abstract.map(o1)}}),Object.defineProperty(l,\"node\",{get:function(){if(L){var c=v.createElement(\"div\");return c.innerHTML=l.html,c.children}}}),l}function $1(c){var l=c.icons,s=l.main,a=l.mask,z=c.prefix,e=c.iconName,H=c.transform,t=c.symbol,V=c.title,r=c.maskId,M=c.titleId,h=c.extra,n=c.watchable,i=void 0!==n&&n,m=a.found?a:s,l=m.width,c=m.height,n=\"fak\"===z,m=[Q.replacementClass,e?\"\".concat(Q.cssPrefix,\"-\").concat(e):\"\"].filter(function(c){return-1===h.classes.indexOf(c)}).filter(function(c){return\"\"!==c||!!c}).concat(h.classes).join(\" \"),m={children:[],attributes:u(u({},h.attributes),{},{\"data-prefix\":z,\"data-icon\":e,class:m,role:h.attributes.role||\"img\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 \".concat(l,\" \").concat(c)})},c=n&&!~h.classes.indexOf(\"fa-fw\")?{width:\"\".concat(l/c*16*.0625,\"em\")}:{};i&&(m.attributes[g]=\"\"),V&&(m.children.push({tag:\"title\",attributes:{id:m.attributes[\"aria-labelledby\"]||\"title-\".concat(M||l1())},children:[V]}),delete m.attributes.title);var o,f,C,v,L,c=u(u({},m),{},{prefix:z,iconName:e,main:s,mask:a,maskId:r,transform:H,symbol:t,styles:u(u({},c),h.styles)}),a=a.found&&s.found?U1(\"generateAbstractMask\",c)||{children:[],attributes:{}}:U1(\"generateAbstractIcon\",c)||{children:[],attributes:{}},s=a.children,a=a.attributes;return c.children=s,c.attributes=a,t?(f=(o=c).prefix,C=o.iconName,v=o.children,L=o.attributes,o=!0===(o=o.symbol)?\"\".concat(f,\"-\").concat(Q.cssPrefix,\"-\").concat(C):o,[{tag:\"svg\",attributes:{style:\"display: none;\"},children:[{tag:\"symbol\",attributes:u(u({},L),{},{id:o}),children:v}]}]):(C=(f=c).children,L=f.main,o=f.mask,v=f.attributes,c=f.styles,H1(f=f.transform)&&L.found&&!o.found&&(o=L.width/L.height/2,L=.5,v.style=e1(u(u({},c),{},{\"transform-origin\":\"\".concat(o+f.x/16,\"em \").concat(L+f.y/16,\"em\")}))),[{tag:\"svg\",attributes:v,children:C}])}function J1(c){var l=c.content,s=c.width,a=c.height,z=c.transform,e=c.title,H=c.extra,t=c.watchable,V=void 0!==t&&t,c=u(u(u({},H.attributes),e?{title:e}:{}),{},{class:H.classes.join(\" \")});V&&(c[g]=\"\");t=u({},H.styles);H1(z)&&(t.transform=(H=(V={transform:z,startCentered:!0,width:s,height:a}).transform,z=V.width,a=void 0===(s=V.height)?p:s,V=void 0!==(s=V.startCentered)&&s,s=\"\",s+=V&&d?\"translate(\".concat(H.x/$-(void 0===z?p:z)/2,\"em, \").concat(H.y/$-a/2,\"em) \"):V?\"translate(calc(-50% + \".concat(H.x/$,\"em), calc(-50% + \").concat(H.y/$,\"em)) \"):\"translate(\".concat(H.x/$,\"em, \").concat(H.y/$,\"em) \"),s+=\"scale(\".concat(H.size/$*(H.flipX?-1:1),\", \").concat(H.size/$*(H.flipY?-1:1),\") \"),s+=\"rotate(\".concat(H.rotate,\"deg) \")),t[\"-webkit-transform\"]=t.transform);t=e1(t);0<t.length&&(c.style=t);t=[];return t.push({tag:\"span\",attributes:c,children:[l]}),e&&t.push({tag:\"span\",attributes:{class:\"sr-only\"},children:[e]}),t}var c2=h1.styles;function l2(c){var l=c[0],s=c[1],c=n(c.slice(4),1)[0];return{found:!0,width:l,height:s,icon:Array.isArray(c)?{tag:\"g\",attributes:{class:\"\".concat(Q.cssPrefix,\"-\").concat(U.GROUP)},children:[{tag:\"path\",attributes:{class:\"\".concat(Q.cssPrefix,\"-\").concat(U.SECONDARY),fill:\"currentColor\",d:c[0]}},{tag:\"path\",attributes:{class:\"\".concat(Q.cssPrefix,\"-\").concat(U.PRIMARY),fill:\"currentColor\",d:c[1]}}]}:{tag:\"path\",attributes:{fill:\"currentColor\",d:c}}}}var s2={found:!1,width:512,height:512};function a2(z,e){var H=e;return\"fa\"===e&&null!==Q.styleDefault&&(e=w1),new Promise(function(c,l){var s,a;U1(\"missingIconAbstract\");if(\"fa\"===H&&(a=N1(z)||{},z=a.iconName||z,e=a.prefix||e),z&&e&&c2[e]&&c2[e][z])return c(l2(c2[e][z]));s=z,a=e,Z||Q.showMissingIcons||!s||console.error('Icon with name \"'.concat(s,'\" and prefix \"').concat(a,'\" is missing.')),c(u(u({},s2),{},{icon:Q.showMissingIcons&&z&&U1(\"missingIconAbstract\")||{}}))})}function z2(){}function e2(c){H2.mark(\"\".concat(t2,\" \").concat(c,\" ends\")),H2.measure(\"\".concat(t2,\" \").concat(c),\"\".concat(t2,\" \").concat(c,\" begins\"),\"\".concat(t2,\" \").concat(c,\" ends\"))}var H2=Q.measurePerformance&&i&&i.mark&&i.measure?i:{mark:z2,measure:z2},t2='FA \"6.5.1\"',V2={begin:function(c){return H2.mark(\"\".concat(t2,\" \").concat(c,\" begins\")),function(){return e2(c)}},end:e2},r2=function(){};function M2(c){return\"string\"==typeof(c.getAttribute?c.getAttribute(g):null)}function h2(c){return v.createElementNS(\"http://www.w3.org/2000/svg\",c)}function n2(c){return v.createElement(c)}var i2={replace:function(c){var l=c[0];l.parentNode&&(c[1].forEach(function(c){l.parentNode.insertBefore(function l(s,c){var c=(1<arguments.length&&void 0!==c?c:{}).ceFn,a=void 0===c?\"svg\"===s.tag?h2:n2:c;if(\"string\"==typeof s)return v.createTextNode(s);var z=a(s.tag);return Object.keys(s.attributes||[]).forEach(function(c){z.setAttribute(c,s.attributes[c])}),(s.children||[]).forEach(function(c){z.appendChild(l(c,{ceFn:a}))}),z}(c),l)}),null===l.getAttribute(g)&&Q.keepOriginalSource?(c=v.createComment((c=\" \".concat((c=l).outerHTML,\" \"),c=\"\".concat(c,\"Font Awesome fontawesome.com \"))),l.parentNode.replaceChild(c,l)):l.remove())},nest:function(c){var l=c[0],s=c[1];if(~a1(l).indexOf(Q.replacementClass))return i2.replace(c);var a=new RegExp(\"\".concat(Q.cssPrefix,\"-.*\"));delete s[0].attributes.id,s[0].attributes.class&&(c=s[0].attributes.class.split(\" \").reduce(function(c,l){return(l===Q.replacementClass||l.match(a)?c.toSvg:c.toNode).push(l),c},{toNode:[],toSvg:[]}),s[0].attributes.class=c.toSvg.join(\" \"),0===c.toNode.length?l.removeAttribute(\"class\"):l.setAttribute(\"class\",c.toNode.join(\" \")));s=s.map(o1).join(\"\\n\");l.setAttribute(g,\"\"),l.innerHTML=s}};function m2(c){c()}function o2(s,c){var a=\"function\"==typeof c?c:r2;0===s.length?a():(Q.mutateApproach===x?C.requestAnimationFrame||m2:m2)(function(){var c=!0!==Q.autoReplaceSvg&&i2[Q.autoReplaceSvg]||i2.replace,l=V2.begin(\"mutate\");s.map(c),l(),a()})}var f2=!1;function C2(){f2=!0}function v2(){f2=!1}var L2=null;function u2(c){var e,H,l,t;o&&Q.observeMutations&&(l=c.treeCallback,e=void 0===l?r2:l,l=c.nodeCallback,H=void 0===l?r2:l,l=c.pseudoElementsCallback,t=void 0===l?r2:l,c=void 0===(c=c.observeMutationsRoot)?v:c,L2=new o(function(c){var z;f2||(z=w1,s1(c).forEach(function(c){var l,s,a;\"childList\"===c.type&&0<c.addedNodes.length&&!M2(c.addedNodes[0])&&(Q.searchPseudoElements&&t(c.target),e(c.target)),\"attributes\"===c.type&&c.target.parentNode&&Q.searchPseudoElements&&t(c.target.parentNode),\"attributes\"===c.type&&M2(c.target)&&~W.indexOf(c.attributeName)&&(\"class\"===c.attributeName&&(s=c.target,a=s.getAttribute?s.getAttribute(y):null,s=s.getAttribute?s.getAttribute(S):null,a&&s)?(s=(l=D1(a1(c.target))).prefix,l=l.iconName,c.target.setAttribute(y,s||z),l&&c.target.setAttribute(S,l)):(l=c.target)&&l.classList&&l.classList.contains&&l.classList.contains(Q.replacementClass)&&H(c.target))}))}),L&&L2.observe(c,{childList:!0,attributes:!0,characterData:!0,subtree:!0}))}function d2(c){var l=c.getAttribute(\"data-prefix\"),s=c.getAttribute(\"data-icon\"),a=void 0!==c.innerText?c.innerText.trim():\"\",z=D1(a1(c));return z.prefix||(z.prefix=w1),l&&s&&(z.prefix=l,z.iconName=s),z.iconName&&z.prefix||(z.prefix&&0<a.length&&(z.iconName=(s=z.prefix,a=c.innerText,(y1[s]||{})[a]||j1(z.prefix,L1(c.innerText)))),!z.iconName&&Q.autoFetchSvg&&c.firstChild&&c.firstChild.nodeType===Node.TEXT_NODE&&(z.iconName=c.firstChild.data)),z}function p2(c,l){var s=1<arguments.length&&void 0!==l?l:{styleParser:!0},a=d2(c),z=a.iconName,e=a.prefix,H=a.rest,t=(l=s1((t=c).attributes).reduce(function(c,l){return\"class\"!==c.name&&\"style\"!==c.name&&(c[l.name]=l.value),c},{}),a=t.getAttribute(\"title\"),t=t.getAttribute(\"data-fa-title-id\"),Q.autoA11y&&(a?l[\"aria-labelledby\"]=\"\".concat(Q.replacementClass,\"-title-\").concat(t||l1()):(l[\"aria-hidden\"]=\"true\",l.focusable=\"false\")),l),l=_1(\"parseNodeAttributes\",{},c),V=s.styleParser?(s=(V=c).getAttribute(\"style\"),V=[],V=s?s.split(\";\").reduce(function(c,l){var s=l.split(\":\"),l=s[0],s=s.slice(1);return l&&0<s.length&&(c[l]=s.join(\":\").trim()),c},{}):V):[];return u({iconName:z,title:c.getAttribute(\"title\"),titleId:c.getAttribute(\"data-fa-title-id\"),prefix:e,transform:J,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:H,styles:V,attributes:t}},l)}var b2=h1.styles;function g2(c){var l=\"nest\"===Q.autoReplaceSvg?p2(c,{styleParser:!1}):p2(c);return~l.extra.classes.indexOf(R)?U1(\"generateLayersText\",c,l):U1(\"generateSvgReplacementMutation\",c,l)}var w2=new Set;function k2(c){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;if(!L)return Promise.resolve();function z(c){return l.add(\"\".concat(A,\"-\").concat(c))}function e(c){return l.remove(\"\".concat(A,\"-\").concat(c))}var l=v.documentElement.classList,s=Q.autoFetchSvg?w2:P.map(function(c){return\"fa-\".concat(c)}).concat(Object.keys(b2));s.includes(\"fa\")||s.push(\"fa\");var H=[\".\".concat(R,\":not([\").concat(g,\"])\")].concat(s.map(function(c){return\".\".concat(c,\":not([\").concat(g,\"])\")})).join(\", \");if(0===H.length)return Promise.resolve();s=[];try{s=s1(c.querySelectorAll(H))}catch(c){}if(!(0<s.length))return Promise.resolve();z(\"pending\"),e(\"complete\");var t=V2.begin(\"onTree\"),V=s.reduce(function(c,l){try{var s=g2(l);s&&c.push(s)}catch(c){Z||\"MissingIcon\"===c.name&&console.error(c)}return c},[]);return new Promise(function(l,s){Promise.all(V).then(function(c){o2(c,function(){z(\"active\"),z(\"complete\"),e(\"pending\"),\"function\"==typeof a&&a(),t(),l()})}).catch(function(c){t(),s(c)})})}function y2(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;g2(c).then(function(c){c&&o2([c],l)})}P.map(function(c){w2.add(\"fa-\".concat(c))}),Object.keys(E[O]).map(w2.add.bind(w2)),Object.keys(E[j]).map(w2.add.bind(w2));function S2(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},s=l.transform,a=void 0===s?J:s,z=void 0!==(s=l.symbol)&&s,e=void 0===(s=l.mask)?null:s,H=void 0===(s=l.maskId)?null:s,t=void 0===(s=l.title)?null:s,V=void 0===(s=l.titleId)?null:s,r=void 0===(s=l.classes)?[]:s,M=void 0===(s=l.attributes)?{}:s,h=void 0===(s=l.styles)?{}:s;if(c){var n=c.prefix,i=c.iconName,m=c.icon;return K1(u({type:\"icon\"},c),function(){return W1(\"beforeDOMElementCreation\",{iconDefinition:c,params:l}),Q.autoA11y&&(t?M[\"aria-labelledby\"]=\"\".concat(Q.replacementClass,\"-title-\").concat(V||l1()):(M[\"aria-hidden\"]=\"true\",M.focusable=\"false\")),$1({icons:{main:l2(m),mask:e?l2(e.icon):{found:!1,width:null,height:null,icon:{}}},prefix:n,iconName:i,transform:u(u({},J),a),symbol:z,title:t,maskId:H,titleId:V,extra:{attributes:M,styles:h,classes:r}})})}}var w2=M(w2),r={mixout:function(){return{icon:(a=S2,function(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},s=(c||{}).icon?c:X1(c||{}),c=(c=l.mask)&&((c||{}).icon?c:X1(c||{}));return a(s,u(u({},l),{},{mask:c}))})};var a},hooks:function(){return{mutationObserverCallbacks:function(c){return c.treeCallback=k2,c.nodeCallback=y2,c}}},provides:function(c){c.i2svg=function(c){var l=c.node,c=c.callback;return k2(void 0===l?v:l,void 0===c?function(){}:c)},c.generateSvgReplacementMutation=function(a,c){var z=c.iconName,e=c.title,H=c.titleId,t=c.prefix,V=c.transform,r=c.symbol,l=c.mask,M=c.maskId,h=c.extra;return new Promise(function(s,c){Promise.all([a2(z,t),l.iconName?a2(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(c){var l=n(c,2),c=l[0],l=l[1];s([a,$1({icons:{main:c,mask:l},prefix:t,iconName:z,transform:V,symbol:r,maskId:M,title:e,titleId:H,extra:h,watchable:!0})])}).catch(c)})},c.generateAbstractIcon=function(c){var l,s=c.children,a=c.attributes,z=c.main,e=c.transform,c=e1(c.styles);return 0<c.length&&(a.style=c),H1(e)&&(l=U1(\"generateAbstractTransformGrouping\",{main:z,transform:e,containerWidth:z.width,iconWidth:z.width})),s.push(l||z.icon),{children:s,attributes:a}}}},l={mixout:function(){return{layer:function(c){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},l=s.classes,a=void 0===l?[]:l;return K1({type:\"layer\"},function(){W1(\"beforeDOMElementCreation\",{assembler:c,params:s});var l=[];return c(function(c){Array.isArray(c)?c.map(function(c){l=l.concat(c.abstract)}):l=l.concat(c.abstract)}),[{tag:\"span\",attributes:{class:[\"\".concat(Q.cssPrefix,\"-layers\")].concat(M(a)).join(\" \")},children:l}]})}}}},h={mixout:function(){return{counter:function(z){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},c=e.title,H=void 0===c?null:c,c=e.classes,t=void 0===c?[]:c,c=e.attributes,V=void 0===c?{}:c,c=e.styles,r=void 0===c?{}:c;return K1({type:\"counter\",content:z},function(){return W1(\"beforeDOMElementCreation\",{content:z,params:e}),c={content:z.toString(),title:H,extra:{attributes:V,styles:r,classes:[\"\".concat(Q.cssPrefix,\"-layers-counter\")].concat(M(t))}},l=c.content,s=c.title,a=c.extra,c=u(u(u({},a.attributes),s?{title:s}:{}),{},{class:a.classes.join(\" \")}),0<(a=e1(a.styles)).length&&(c.style=a),(a=[]).push({tag:\"span\",attributes:c,children:[l]}),s&&a.push({tag:\"span\",attributes:{class:\"sr-only\"},children:[s]}),a;var c,l,s,a})}}}},i={mixout:function(){return{text:function(c){var l=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},s=l.transform,a=void 0===s?J:s,s=l.title,z=void 0===s?null:s,s=l.classes,e=void 0===s?[]:s,s=l.attributes,H=void 0===s?{}:s,s=l.styles,t=void 0===s?{}:s;return K1({type:\"text\",content:c},function(){return W1(\"beforeDOMElementCreation\",{content:c,params:l}),J1({content:c,transform:u(u({},J),a),title:z,extra:{attributes:H,styles:t,classes:[\"\".concat(Q.cssPrefix,\"-layers-text\")].concat(M(e))}})})}}},provides:function(c){c.generateLayersText=function(c,l){var s,a=l.title,z=l.transform,e=l.extra,H=null,t=null;return d&&(s=parseInt(getComputedStyle(c).fontSize,10),H=(l=c.getBoundingClientRect()).width/s,t=l.height/s),Q.autoA11y&&!a&&(e.attributes[\"aria-hidden\"]=\"true\"),Promise.resolve([c,J1({content:c.innerHTML,width:H,height:t,transform:z,title:a,extra:e,watchable:!0})])}}},A2=new RegExp('\"',\"ug\"),x2=[1105920,1112319];function q2(m,o){var f=\"\".concat(k).concat(o.replace(\":\",\"-\"));return new Promise(function(s,c){if(null!==m.getAttribute(f))return s();var a,z,e,H,l,t,V,r=s1(m.children).filter(function(c){return c.getAttribute(w)===o})[0],M=C.getComputedStyle(m,o),h=M.getPropertyValue(\"font-family\").match(F),n=M.getPropertyValue(\"font-weight\"),i=M.getPropertyValue(\"content\");if(r&&!h)return m.removeChild(r),s();h&&\"none\"!==i&&\"\"!==i?(t=M.getPropertyValue(\"content\"),l=~[\"Sharp\"].indexOf(h[2])?j:O,a=~[\"Solid\",\"Regular\",\"Light\",\"Thin\",\"Duotone\",\"Brands\",\"Kit\"].indexOf(h[2])?I[l][h[2].toLowerCase()]:_[l][n],i=(M=(M=(i=t).replace(A2,\"\"),l=0,t=(n=M).length,V=55296<=(i=n.charCodeAt(l))&&i<=56319&&l+1<t&&56320<=(V=n.charCodeAt(l+1))&&V<=57343?1024*(i-55296)+V-56320+65536:i,i=x2[0]<=V&&V<=x2[1],{value:L1((V=2===M.length&&M[0]===M[1])?M[0]:M),isSecondary:i||V})).value,V=M.isSecondary,M=h[0].startsWith(\"FontAwesome\"),h=j1(a,i),z=h,M&&(i=A1[M=i],M=j1(\"fas\",M),(M=i||(M?{prefix:\"fas\",iconName:M}:null)||{prefix:null,iconName:null}).iconName&&M.prefix&&(h=M.iconName,a=M.prefix)),!h||V||r&&r.getAttribute(y)===a&&r.getAttribute(S)===z?s():(m.setAttribute(f,z),r&&m.removeChild(r),(H=(e={iconName:null,title:null,titleId:null,prefix:null,transform:J,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}).extra).attributes[w]=o,a2(h,a).then(function(c){var l=$1(u(u({},e),{},{icons:{main:c,mask:E1()},prefix:a,iconName:z,extra:H,watchable:!0})),c=v.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");\"::before\"===o?m.insertBefore(c,m.firstChild):m.appendChild(c),c.outerHTML=l.map(o1).join(\"\\n\"),m.removeAttribute(f),s()}).catch(c))):s()})}function Z2(c){return Promise.all([q2(c,\"::before\"),q2(c,\"::after\")])}function O2(c){return!(c.parentNode===document.head||~q.indexOf(c.tagName.toUpperCase())||c.getAttribute(w)||c.parentNode&&\"svg\"===c.parentNode.tagName)}function j2(z){if(L)return new Promise(function(c,l){var s=s1(z.querySelectorAll(\"*\")).filter(O2).map(Z2),a=V2.begin(\"searchPseudoElements\");C2(),Promise.all(s).then(function(){a(),v2(),c()}).catch(function(){a(),v2(),l()})})}function P2(c){return c.toLowerCase().split(\" \").reduce(function(c,l){var s=l.toLowerCase().split(\"-\"),l=s[0],a=s.slice(1).join(\"-\");if(l&&\"h\"===a)return c.flipX=!0,c;if(l&&\"v\"===a)return c.flipY=!0,c;if(a=parseFloat(a),isNaN(a))return c;switch(l){case\"grow\":c.size=c.size+a;break;case\"shrink\":c.size=c.size-a;break;case\"left\":c.x=c.x-a;break;case\"right\":c.x=c.x+a;break;case\"up\":c.y=c.y-a;break;case\"down\":c.y=c.y+a;break;case\"rotate\":c.rotate=c.rotate+a}return c},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})}var N2=!1,E2={x:0,y:0,width:\"100%\",height:\"100%\"};function I2(c){return c.attributes&&(c.attributes.fill||(!(1<arguments.length&&void 0!==arguments[1])||arguments[1]))&&(c.attributes.fill=\"black\"),c}var T2;T2={mixoutsTo:G1}.mixoutsTo,V=[m,r,l,h,i,{hooks:function(){return{mutationObserverCallbacks:function(c){return c.pseudoElementsCallback=j2,c}}},provides:function(c){c.pseudoElements2svg=function(c){c=c.node;Q.searchPseudoElements&&j2(void 0===c?v:c)}}},{mixout:function(){return{dom:{unwatch:function(){C2(),N2=!0}}}},hooks:function(){return{bootstrap:function(){u2(_1(\"mutationObserverCallbacks\",{}))},noAuto:function(){L2&&L2.disconnect()},watch:function(c){c=c.observeMutationsRoot;N2?v2():u2(_1(\"mutationObserverCallbacks\",{observeMutationsRoot:c}))}}}},{mixout:function(){return{parse:{transform:P2}}},hooks:function(){return{parseNodeAttributes:function(c,l){l=l.getAttribute(\"data-fa-transform\");return l&&(c.transform=P2(l)),c}}},provides:function(c){c.generateAbstractTransformGrouping=function(c){var l=c.main,s=c.transform,a=c.containerWidth,z=c.iconWidth,e={transform:\"translate(\".concat(a/2,\" 256)\")},c=\"translate(\".concat(32*s.x,\", \").concat(32*s.y,\") \"),a=\"scale(\".concat(s.size/16*(s.flipX?-1:1),\", \").concat(s.size/16*(s.flipY?-1:1),\") \"),s=\"rotate(\".concat(s.rotate,\" 0 0)\"),z={outer:e,inner:{transform:\"\".concat(c,\" \").concat(a,\" \").concat(s)},path:{transform:\"translate(\".concat(z/2*-1,\" -256)\")}};return{tag:\"g\",attributes:u({},z.outer),children:[{tag:\"g\",attributes:u({},z.inner),children:[{tag:l.icon.tag,children:l.icon.children,attributes:u(u({},l.icon.attributes),z.path)}]}]}}}},{hooks:function(){return{parseNodeAttributes:function(c,l){var s=l.getAttribute(\"data-fa-mask\"),s=s?D1(s.split(\" \").map(function(c){return c.trim()})):E1();return s.prefix||(s.prefix=w1),c.mask=s,c.maskId=l.getAttribute(\"data-fa-mask-id\"),c}}},provides:function(c){c.generateAbstractMask=function(c){var l=c.children,s=c.attributes,a=c.main,z=c.mask,e=c.maskId,H=c.transform,t=a.width,V=a.icon,r=z.width,c=z.icon,H=(z=(a={transform:H,containerWidth:r,iconWidth:t}).transform,H=a.containerWidth,r=a.iconWidth,t={transform:\"translate(\".concat(H/2,\" 256)\")},a=\"translate(\".concat(32*z.x,\", \").concat(32*z.y,\") \"),H=\"scale(\".concat(z.size/16*(z.flipX?-1:1),\", \").concat(z.size/16*(z.flipY?-1:1),\") \"),z=\"rotate(\".concat(z.rotate,\" 0 0)\"),{outer:t,inner:{transform:\"\".concat(a,\" \").concat(H,\" \").concat(z)},path:{transform:\"translate(\".concat(r/2*-1,\" -256)\")}}),z={tag:\"rect\",attributes:u(u({},E2),{},{fill:\"white\"})},r=V.children?{children:V.children.map(I2)}:{},r={tag:\"g\",attributes:u({},H.inner),children:[I2(u({tag:V.tag,attributes:u(u({},V.attributes),H.path)},r))]},H={tag:\"g\",attributes:u({},H.outer),children:[r]},r=\"mask-\".concat(e||l1()),e=\"clip-\".concat(e||l1()),H={tag:\"mask\",attributes:u(u({},E2),{},{id:r,maskUnits:\"userSpaceOnUse\",maskContentUnits:\"userSpaceOnUse\"}),children:[z,H]},H={tag:\"defs\",children:[{tag:\"clipPath\",attributes:{id:e},children:\"g\"===(c=c).tag?c.children:[c]},H]};return l.push(H,{tag:\"rect\",attributes:u({fill:\"currentColor\",\"clip-path\":\"url(#\".concat(e,\")\"),mask:\"url(#\".concat(r,\")\")},E2)}),{children:l,attributes:s}}}},{provides:function(c){var e=!1;C.matchMedia&&(e=C.matchMedia(\"(prefers-reduced-motion: reduce)\").matches),c.missingIconAbstract=function(){var c=[],l={fill:\"currentColor\"},s={attributeType:\"XML\",repeatCount:\"indefinite\",dur:\"2s\"};c.push({tag:\"path\",attributes:u(u({},l),{},{d:\"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z\"})});var a=u(u({},s),{},{attributeName:\"opacity\"}),z={tag:\"circle\",attributes:u(u({},l),{},{cx:\"256\",cy:\"364\",r:\"28\"}),children:[]};return e||z.children.push({tag:\"animate\",attributes:u(u({},s),{},{attributeName:\"r\",values:\"28;14;28;28;14;28;\"})},{tag:\"animate\",attributes:u(u({},a),{},{values:\"1;0;1;1;0;1;\"})}),c.push(z),c.push({tag:\"path\",attributes:u(u({},l),{},{opacity:\"1\",d:\"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z\"}),children:e?[]:[{tag:\"animate\",attributes:u(u({},a),{},{values:\"1;0;0;0;0;1;\"})}]}),e||c.push({tag:\"path\",attributes:u(u({},l),{},{opacity:\"0\",d:\"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z\"}),children:[{tag:\"animate\",attributes:u(u({},a),{},{values:\"0;0;1;1;0;0;\"})}]}),{tag:\"g\",attributes:{class:\"missing\"},children:c}}}},{hooks:function(){return{parseNodeAttributes:function(c,l){l=l.getAttribute(\"data-fa-symbol\");return c.symbol=null!==l&&(\"\"===l||l),c}}}}],Y1={},Object.keys(R1).forEach(function(c){-1===F1.indexOf(c)&&delete R1[c]}),V.forEach(function(c){var l,s=c.mixout?c.mixout():{};Object.keys(s).forEach(function(l){\"function\"==typeof s[l]&&(T2[l]=s[l]),\"object\"===z(s[l])&&Object.keys(s[l]).forEach(function(c){T2[l]||(T2[l]={}),T2[l][c]=s[l][c]})}),c.hooks&&(l=c.hooks(),Object.keys(l).forEach(function(c){Y1[c]||(Y1[c]=[]),Y1[c].push(l[c])})),c.provides&&c.provides(R1)}),function(c){try{for(var l=arguments.length,s=new Array(1<l?l-1:0),a=1;a<l;a++)s[a-1]=arguments[a];c.apply(void 0,s)}catch(c){if(!Z)throw c}}(function(c){f&&(C.FontAwesome||(C.FontAwesome=G1),m1(function(){Q1(),W1(\"bootstrap\")})),h1.hooks=u(u({},h1.hooks),{},{addPack:function(c,l){h1.styles[c]=u(u({},h1.styles[c]||{}),l),O1(),Q1()},addPacks:function(c){c.forEach(function(c){var l=n(c,2),c=l[0],l=l[1];h1.styles[c]=u(u({},h1.styles[c]||{}),l)}),O1(),Q1()},addShims:function(c){var l;(l=h1.shims).push.apply(l,M(c)),O1(),Q1()}})})}();","import * as i18n from '../i18n'\n\nexport const i18nMixin = {\n computed: {\n $locales() {\n return i18n.locales\n },\n currentLanguage () {\n return this.$storex.currentLanguage\n }\n },\n methods: {\n $i18n(key) {\n return i18n.translate(key)\n },\n setLanguage (language) {\n this.$storex.setCurrentLanguage(language)\n },\n getCurrentLanguage() {\n return i18n.getCurrentLanguage()\n }\n }\n}","import { createApp } from 'vue'\nimport './style.css'\n\nimport { router } from './router'\nimport store, { $storex } from \"./store\";\n\nimport App from './App.vue'\nimport Modal from './components/Modal.vue'\nimport Markdown from './components/Markdown.vue'\nimport * as fontawesome from './assets/fontawesome-free-6.5.1-web/js/all.min.js'\n\nimport { i18nMixin } from './mixins/i18n.js';\n\nconst app = createApp(App)\n .use(store)\n .use(router)\n .component('Modal', Modal)\n .component('Markdown', Markdown)\n .mixin({\n computed: {\n $storex () {\n return $storex\n },\n $user () {\n return $storex.user.user\n },\n }\n })\n .mixin(i18nMixin)\n\n app.mount('#app')\n"],"file":"assets/index-BS3cYF2C.js"}